Print

Print


Thanks Jan - that clears it up.

You are right and it looks like root was compiled with C++14 so it will have to be a compatible lib as well.

regards,
Asoka

> On Jun 7, 2017, at 11:35 PM, Jan Iven <[log in to unmask]> wrote:
> 
> 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