The reason I’m posting this on the ROOT forum is that I’m seeing a mismatch between what ROOT reports as the libraries it knows about and the files in the libs/ directory:
@Wile_E_Coyote oh yikes you’re exactly right. My build log indicates issues with building ROOTDataFrame against sqlite3:
/cdms/app/home/nexusdaq/packages/root/tree/dataframe/src/RSqliteDS.cxx: In function ‘int {anonymous}::VfsRdOnlyOpen(sqlite3_vfs*, const char*, sqlite3_file*, int, int*)’:
/cdms/app/home/nexusdaq/packages/root/tree/dataframe/src/RSqliteDS.cxx:195:4: error: too many initializers for ‘const sqlite3_io_methods’
};
Hi,
if you don’t need support for sqlite files in ROOT, you can build with -Dsqlite=OFF, that should avoid compilation errors in RSqliteDS.cxx. Now about why you get those errors, I think it’s because the sqlite version you have installed is too old for ROOT. @jblomer can confirm (if that’s the case, should/can/do we diagnose too old sqlite versions in our cmake configuration?).
Thanks for the problem report! Yes, it is a problem with older versions of sqlite. I think the code could be easily changed to work with older sqlite versions, too. Ticket created.
However, I’ve been getting a slew of “error adding symbols: File in wrong format” issues, with
/usr/lib/libgif.so
/usr/lib/libtiff.so
/usr/lib/libgl.so
I think the issue may be that it’s trying to link against libraries in /usr/lib rather than /usr/lib64 but I’m not sure how to force it to change where it’s linking.
For the gif and tiff libraries I installed recent versions with spack, but I’m not able to install the gl libraries with spack.
Uhm I’m afraid I do not have enough experience with SL6 to help with libgl.
As an alternative to building ROOT yourself, however, I can suggest installing ROOT in a conda environment – if it works for your usecase/platform. It’s easy and quick to get it up, and it just works on 99% of the linux platforms. More information in this blog post.
I guess I would appreciate a “renewed” official statement from @Axel concerning building and using ROOT 6 with “devtoolset-8” and “devtoolset-7” on SL[C]6 / CentOS6 and SL7 / CentOS7 (e.g. maybe some “devtoolset” is known to work on one of them). Even if these system may seem outdated, there are still many batch clusters which use them. The old statement:
Nothing changed: we have not received a PR (or an offer to work on one with our guidance), and CERN isn’t increasing its investment in cling. As is, devtoolset is not supported in cling. Instead, one can install the full compiler (GCC >= 4.8) and use that on SLC6.