Hi all,
I’ve been having some issues getting some simple RDataFrame based code to compile. The issues seem to stem from it attempting to link Davix but failing.
/cvmfs/sft.cern.ch/lcg/views/LCG_95/x86_64-slc6-gcc62-opt/lib/libROOTDataFrame.so: undefined reference to `Davix::DavixError::getErrMsg[abi:cxx11]() const'
/cvmfs/sft.cern.ch/lcg/views/LCG_95/x86_64-slc6-gcc62-opt/lib/libROOTDataFrame.so: undefined reference to `Davix::DavPosix::stat(Davix::RequestParams const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, stat*, Davix::DavixError**)'
/cvmfs/sft.cern.ch/lcg/views/LCG_95/x86_64-slc6-gcc62-opt/lib/libROOTDataFrame.so: undefined reference to `Davix::DavPosix::open(Davix::RequestParams const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, Davix::DavixError**)'
I have been able to reproduce this with a very simple program
|-build/
|-source/
|-CMakeLists.txt
|-util/
|-rdf-test.txt
source/CMakeLists.txt
cmake_minimum_required( VERSION 3.9 )
find_package( ROOT 6.16 REQUIRED COMPONENTS ROOTDataFrame )
include(${ROOT_USE_FILE})
add_executable(rdf-test)
target_sources(rdf-test PRIVATE util/rdf-test.cxx)
target_link_libraries(rdf-test PRIVATE ROOT::RDataFrame)
source/util/rdf-test.cxx
#include <TChain.h>
#include <ROOT/RDataFrame.hxx>
int main(int argc, char* argv[]) {
TChain input;
ROOT::RDataFrame rdf(input);
return 0;
}
Trying to compile this gives me the error I quoted above.
Now, I’m suspecting that this might be an issue specifically with the ROOT build I am using. When I use the CERN LCG ‘view’ environment (for ATLAS code set up with lsetup "views LCG_95 x86_64-slc6-gcc62-opt
) I get this problem. When I use the version of ROOT on my laptop (also 6.16/00 but using homebrew) I do not.
I can get around this issue by also setting up davix and manually linking it. However a) this is rather inelegant and b) it breaks the set up on my home computer.
Does anyone have any ideas on what I might be doing wrong? Alternatively is this due to an issue with this LCG version?
Cheers,
Jon
ROOT Version: 6.16/00
Platform: SLC6
Compiler: GCC 6.2