Flurry of GMP check failures

Torbjörn Granlund tg at gmplib.org
Tue Nov 8 15:20:16 UTC 2016


There are a few cycles lost for each call to PIC code and a few cycles
lost for each read/write of a PIC variable.

Currently, we pay these costs also for calls/variables *within* GMP.
The symbol hiding stuff will help, but only for calls, while variable
access still needs extra code (although not a memory reference through
the GOT) as these things are implemented (in Debian; I haven't checked
other environments yet).

Inconsequentially, symbol hiding does not let us use 32-bit offsets for
load-time patching, which would save some of the costs I don't see any
reason bahind that, except perhaps the people don't understand these
things properly.

It is not clear to me what to do here.  I dislike the heavy handed
approach taken by Debian and others; if people want PIE binaries,
compile with -fPIC/-fPIE and link them to shared libs!

One approach is to pass -static when compiling our test executables for
the problem systems.

As Niels said, we need a (robust) configure test for detecting the
Debian behaviour.

-- 
Torbjörn
Please encrypt, key id 0xC8601622


More information about the gmp-devel mailing list