RDataFrame compilation fails due to davix linker errors

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


Hello Jon,

it might be due to how the LCG build is configured. I invite @Axel to have a look.

Hi,
there were in fact some issues with davix linking at some point, but they have since been fixed (at the best of my knowledge). I see there is a LCG_95a, which I think is a patch release of the release. Can you check if you still see the problem with that view?

Cheers,
Enrico

Hi Enrico,

Aha! Perfect, using LCG_95a links without issue.
I can roll back my ugly hacks and just use this fixed version.

Cheers,
Jon

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.