GMP work on symbol visibility

Marc Glisse marc.glisse at inria.fr
Wed Aug 31 21:50:31 UTC 2016


On Wed, 31 Aug 2016, Torbjörn Granlund wrote:

> There are several complex issues I need to understand and resolve.  One
> issue is how to handle (unit) testing of hidden functions.  I will
> probably resolve that with alias symbols such as foo_for_testing as an
> alias for foo.

Would that be only in a temporary, testing-only libgmp.so, or also in the 
installed libgmp.so? I am guessing the second, but it seems a bit sad that 
the exported symbol list remains polluted.

> Another issue is with libgmpxx.so and its dependency on libgmp.so.  As
> separate shared libs, hidden symbols of libgmp.so will not be reachable
> from libgmpxx.so, which of course means we cannot hide them.  Also,
> there will be no performance wins for any libgmpxx.so references to
> libgmp.so.
>
> I see two solutions:
>
> (1) If we really want to discourage external use, arrange an alias to
> something wierd, making libgmpxx reach the symbol foo as fuckhead_foo.
>
> (2) Put (allmost) all of libgmp.so in libgmpxx.so.  This gives the best
> performance.

Does libgmpxx.so use that many private functions from libgmp.so and are 
they performance critical? To me, libgmpxx.so is very small and only 
contains I/O functions, where the overhead of a few calls shouldn't matter 
that much.

-- 
Marc Glisse


More information about the gmp-devel mailing list