Print

Print


On 06/08/2017 03:37 AM, Asoka De Silva wrote:
> Dear xrootd experts,
> 
> I need help to understand why this error happens with ROOT 6.08.06 in 
> LCG_88 for gcc62 but not for gcc49 versions.  As you can see in my 
> attached files, there is an undefined symbol for the gcc62 version when 
> the rpm version of xrootd is used:
> /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.08.06-c8fb4/x86_64-slc6-gcc62-opt/bin/root.exe: 
> <http://sft.cern.ch/lcg/releases/ROOT/6.08.06-c8fb4/x86_64-slc6-gcc62-opt/bin/root.exe:> 
> symbol lookup error: 
> /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.08.06-c8fb4/x86_64-slc6-gcc62-opt/lib/libNetxNG.so: 
> <http://sft.cern.ch/lcg/releases/ROOT/6.08.06-c8fb4/x86_64-slc6-gcc62-opt/lib/libNetxNG.so:> 
> undefined symbol: 
> _ZN5XrdCl3URLC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

(i.e "XrdCl::URL::URL(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)")

the "cxx11" thing to me looks like the C++ ABI version change introduced 
by the gcc people to support C++11. Mixing C++ libraries and executables 
from C++11 and C++98 does not work, unfortunately the dynamic linker is 
unaware of this (the library name or SOVERSION does not change), so 
attempts to load the "wrong" library and runs into missing symbols.

(we've recently seen the same thing between /usr/bin/eos and Xrootd 
libraries from CVMFS).
Cheers
jan

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1