Richard Sandiford wrote:
Zack Weinberg <[EMAIL PROTECTED]> writes:

Richard Sandiford <[EMAIL PROTECTED]> writes:

The only reliable way to get what you want is to either (a) add -G0
multilibs or (b) change the default -G setting.  Perhaps a configure
option would be useful here.  Maybe something like --with-sdata-limit,
to go alongside options like --with-arch and --with-tune?

Or perhaps an -m option to put stuff in .sdata as normal, but generate code as if nothing is in there?


Maybe (and I realise other ports do) but in some ways it gives the worst
of both worlds.  libsupc++ and libstdc++ will end up eating chunks of the
small data area without getting any real benefit from it.

A configure-time option is likely to be more convenient for folks who
use -G0 because you don't have to coerce every build system to add it
on the command line.  And it wouldn't penalise those who want to use
the usual -G8.

Unfortunately the decision to use or not use -G 0 isn't taken on a per-compiler basis usually, but a per-application one. A -G 0 multilib doesn't seem good either because someone may have an application that doesn't link with -G 8, but might with -G 4, and at least get some benefit from small data. Or arguably -G 2.


I think for what is in effect a system library, Zack's proposal seems least bad, even though it has drawbacks. And potentially no drawbacks if someone ever implements linker relaxation for MIPS.

Jifl



Reply via email to