Speeding internal GMP calls

Kevin Ryde user42@zip.com.au
Sun, 01 Dec 2002 08:27:57 +1000


Torbjorn Granlund <tege@swox.com> writes:
>
> Anybody want to work in improving the GMP build system to
> get rid of the stubs?  It requires reading compiler/linker
> docs for some systems, and check libtool's capabilities in
> this area.

On svr4 style x86, ld -Bsymbolic will send internal calls direct to
their target, rather than via the PLT.  gcc and maybe some other
compilers have -symbolic to pass that option.

It'd be pretty easy to set that up via configure, and would apply to a
number of other CPUs I imagine (m68k definitely, sparc probably, ...).

Per notes in x86/README, this will still leave a setup of the GOT
register (%ebx), which is unnecessary if all calls are only to
internal routines.

I don't think gcc has a way to be told that certain routines can be
called without the PLT and let it figure out if %ebx is needed,
unfortunately.

Compiling objects non-PIC would probably work, but would probably mean
compiling once as PIC to check that all external references were
within libgmp, then recompiling as non-PIC if permitted.