Hello, net-fs/openafs-1.6.0 handles self shared libs in a tricky way: some symbols are removed compared to static versions of the same libs, because they may be not a thread safe. But the very same functions are available in static versions of the libraries, thus forcing application to use static libraries instead of shared. This in turn leads to errors due to relocation issues: afs compiles static libs without -fPIC. One of such forcefully hidden symbols is ka_GetAFSTicket, required for sci-physics/root[afs] to build (it fails to build with static version due to relocation issue). This function is used by net/auth/src/TAFS.cxx in the ROOT distribution. Proposed patch add this symbol to the export table.
Created attachment 294657 [details, diff] openafs-1.6.0-afsauthent-symbols.patch Add ka_GetAFSTicket symbol to the libafsauthent.so library (it is already present in the libafsauthent.a). Without this patch: $ nm -C /usr/lib/libafsauthent.a | grep ka_GetAFSTicket 00000000 T ka_GetAFSTicket $ nm -D /usr/lib/libafsauthent.so | grep ka_GetAFSTicket $ After applying the patch: $ nm -C /usr/lib/libafsauthent.a | grep ka_GetAFSTicket 00000000 T ka_GetAFSTicket $ nm -D /usr/lib/libafsauthent.so | grep ka_GetAFSTicket 00016720 T ka_GetAFSTicket And sci-physics/root-5.32.00[afs] build well. See bug 374709 for additional details.
Created attachment 294659 [details] emerge --info It is not really needed here, but in order to avoid pointless complains...
And this is an error by ROOT's build without this patch: g++ -shared -Wl,-soname,libAFSAuth.so.5.32 -m64 -march=core2 -m64 --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size= 3072 -O2 -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -ftree-loop-linear -ftree-loop-im -fweb -frename-register s -fomit-frame-pointer -fexcess-precision=fast -pipe -march=core2 -O3 -fno-inline-functions -fno-ipa-cp-clone -pipe -Wl,-O1 -Wl,--as-needed -Wl ,--no-undefined -o lib/libAFSAuth.so.5.32 net/auth/src/AFSAuth.o net/auth/src/TAFS.o net/auth/src/G__AFSAuth.o /usr/lib64/libafsauthent.a /usr/ lib64/libafsrpc.a -lresolv -Llib -lCore -lCint -ldl /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libafsauthent.a(client.o): relocation R_X86_64_32 aga inst `grmutex' can not be used when making a shared object; recompile with -fPIC /usr/lib64/libafsauthent.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [lib/libAFSAuth.so] Error 1
Looks like this patch is included in openafs gentoo patches as 015_all_afsauthent-symbols.patch. Thanks! Closing this bug then...