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
|