Trouble building ROOT 6.16 on CentOS7 gcc 4.8.5 due to missing LZMA symbols

Hi,


ROOT Version: 6.16.00
Platform: CentOS7
Compiler: gcc 4.8.5


I am building ROOT 6.16.00 from source on CentOS7 with gcc 4.8.5. Here are the explicit settings I add, where I am purposely trying to use the system provided LZMA:

 -Dxrootd=OFF \
-Dbuiltin_xrootd=OFF \
-Dbuiltin_fftw3=ON \
-Dminuit2=ON \
-Droofit=ON \
-Dcastor=OFF \
-Drfio=OFF \
-DGSL_DIR=$(MYGSLDIR) 

Early on I see the LZMA lib is found:

24215 [ROOT-conf] -- Found LZMA library at /usr/lib64/liblzma.so

However there are undefined references and the build fails:

31831 [R../lib/libCore.so: undefined reference to `lzma_lzma_preset@XZ_5.0'
31832 ../lib/libCore.so: undefined reference to `lzma_code@XZ_5.0'
31833 ../lib/libCore.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
31834 ../lib/libCore.so: undefined reference to `lzma_stream_encoder@XZ_5.0'
31835 ../lib/libCore.so: undefined reference to `lzma_end@XZ_5.0'

I also tried using the ROOT provided LZMA, but that results in a library mismatch with my system libxml2:

34356 [ROOT-install] Processing hsimple.C...
34357 [ROOT-install] hsimple   : Real Time =   0.37 seconds Cpu Time =   0.19 se      conds
34358 [ROOT-install] (TFile *) 0x3185ec0
34359 [ROOT-install] [ 91%] Built t//usr/lib64/libxml2.so.2: undefined reference       to `lzma_auto_decoder@XZ_5.0'
34360 //usr/lib64/libxml2.so.2: undefined reference to `lzma_code@XZ_5.0'
34361 //usr/lib64/libxml2.so.2: undefined reference to `lzma_properties_decode@X      Z_5.0'
34362 //usr/lib64/libxml2.so.2: undefined reference to `lzma_end@XZ_5.0'
34363 collect2: error: ld returned 1 exit status
34364 make[2]: *** [bin/hist2workspace] Error 1
34365 make[1]: *** [roofit/histfactory/CMakeFiles/hist2workspace.dir/all] Error       2
34366 make: *** [all] Error 2

It looks like gcc 4.8.5 is a supported compiler for 6.16.00. Any recommendations to work around this? Should I pursue an updated system lzma library? Is it possible to provide a built-in libxml2 that is compatible with the built-in lzma?

Thank you,
Heather

Hello @heather625a,

@oshadura might be able to help here.

Just to ask the maybe obvious:
Would moving to ROOT 6.20 be an option? Maybe these things got addressed/updated over the past year.

Thank you, StephanH.
Unfortunately, our group is currently fixed on 6.16.00. I may be able to get them to push onward to a more recent release - if all else fails, I’ll go that route.

In the meantime, I tried a build with devltoolset-7 and that fails in the same way with reports of missing symbols in my /usr/lib64/liblzma.so I’m also going to contact my local system admins to understand this local lzma install better.

Take care,
Heather

@heather625a I am sure we tested this combination for 6.16 for Centos7, can you please check that XML and LZMA is properly installed? (so you have lzma-devel installed as well as libxml2-devel). Thanks!

@oshadura Thank you for your response. I’m working with SLAC’s system admins to get them to install lzma-devel. They seem to think they have to search for a “credible source such as CentOS 7 repo or EPEL repo to find this rpm.” gosh… I’ll see if I can make any headway with them.

Take care,
Heather

For “lzma”, you need to install the “xz-devel” package (from the standard “base” CentOS 7 repository).
For “xml2”, you need to install the “libxml2-devel” package (from the standard “base” CentOS 7 repository).

1 Like

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