Hi Stefaan, I just noticed that linking of sci-physics/root-5.16.00-r1 against libafsauthent.so and libafsrpc.so fails with missing symbols like so g++ -D_ALL_SOURCE -D_REENTRANT -D_GNU_SOURCE -fPIC -rdynamic -Wall -Wno-deprecated -D__linux__ -O2 ../../obj/XrdSecpwdSrvAdmin.o -lcrypt -lafsauthent -lafsrpc -L../../lib -lXrdCrypto -lXrdSut -lXrdOuc -lXrdSys -lresolv -lnsl -lpthread -lrt -ldl -lc -o ../../bin/xrdpwdadmin /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `strcompose' /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `ucstring' /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `afs_add_to_error_table' /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `AssertionFailed' /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `stolower' /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../lib64/libafsauthent.so: undefined reference to `lcstring' collect2: ld returned 1 exit status and g++ -m64 -march=opteron -O2 -fomit-frame-pointer -pipe -DAFS_OLD_COM_ERR -o bin/rootd rootd/src/rootd.o rpdutils/src/daemon.o rpdutils/src/error.o rpdutils/src/net.o rpdutils/src/netpar.o rpdutils/src/rpdutils.o rpdutils/src/ssh.o \ auth/src/rsaaux.o auth/src/rsalib.o auth/src/rsafun.o auth/src/AFSAuth.o clib/src/snprintf.o -lcrypt -lafsauthent -lafsrpc -lssl -lcrypto -L/lib64 -lcom_err -lresolv -lm -ldl -pthread -rdynamic auth/src/AFSAuth.o: In function `GetAFSToken': AFSAuth.cxx:(.text+0x211): undefined reference to `ka_GetAFSTicket' I had a little closer look and the missing symbols (for the first error posted) come from util/assert.c util/casestrcpy.c However, it looks like even though the PIC objects corresponding to the above files are linked into the *.so initially, the symbols are stripped from the final dynamic library because they are not declared in the mapfile that openafs's makefile uses during linking. The second linking error posted above is caused by a similar issue. I will post a patch below that fixes this problem by simply ignoring these mapfiles. With this patch, root compiles smoothly against openafs. One could instead also add the missing symbols to the map files I presume but I haven't tried this. cheers, Markus
Created attachment 138637 [details, diff] patch to add missing symbols to shared objects
This is still broken in 1.4.6 as well.
(In reply to comment #2) > This is still broken in 1.4.6 as well. That's because 1.4.6 is a security bugfix only with fast stabilization (bug #203573). I will try to fix this in a subsequent revision.
Should be fixed in net-fs/openafs-1.4.6_p20080222. Thanks.