You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add --exclude-libs=ALL for libtcl and libtk on Linux
In general, if libX.so depends on libY.a, we don't want libY's symbols
dynamically exported by libX. We want libX's use of libY to be private.
We use two mechanisms for making this happen. -fvisibility=hidden, which
works on the build of libY to mark the symbols themselves as hidden in
the object file, and -Wl,--exclude-libs=ALL, which works on the build of
libX to instruct the linker not to re-export symbols from static
libraries.
We set -fvisibility=hidden on some platforms but not all. We use
-Wl,--exclude-libs=ALL on the build of Python itself on all platforms,
which up to this point built our only dynamic objects (bin/python and
libpython). Now that libtcl and libtk are dynamic, we need to do the
same thing.
I'm not sure if -fvisibility=hidden actually does anything useful for
us, given the use of -Wl,--exclude-libs=ALL, and I think the fact that
it's only set on some platforms is an oversight and demonstrates that
it's not needed. See #735, which removes it; the builds pass vaildation.
0 commit comments