Ever Since the Upgrade, ROOT and any of my programs based on ROOT don't work

Howdy,

So on my system I use ROOT and some other programs I use refer back to ROOT for their functions. Ever since a recent OS update none of them work.

What I suspect has happened is that the OS update messed with / updated my c++ compiler which now can’t read my ROOT. Everything else is just a consequence of that.

I installed my ROOT from Source, so what I suspect is that if I go back through those instructions and repeat the compiler-related steps I might get lucky and that will fix everything. What’s more likely though is that I’ll have to uninstall/reinstall the new ROOT and all my other programs that reference ROOT.

Have I missed anything? Is there a strategy I could use between those two extremes? Or something even less invasive to my system?

Any help would be appreciated.


Please read tips for efficient and successful posting and posting code

ROOT Version: 6.24/06
Platform: Ubuntu 21.10
Compiler: 11.2.0


Yes, after a “major” upgrade of the operating system and / or the compiler, you need to configure and build everything from scratch again (i.e., ROOT and all your additional libraries and executables).

I bit of a bummer but not completely unexpected. So I don’t have to uninstall and reinstall everything, just redo the configuration and compiling steps of installing everything?

Still really annoying, but not as horrible.

Okay, so I tried to just recompile my ROOT with the new compiler and I got the following errors that I don’t recognize. It gets to about 51% before it does this. Warning, it’s a lot but I think a lot of it repeats the basics.

[ 51%] Linking CXX shared library ../../lib/libRooFitCore.so
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `Roo1DTable::printClassName(std::ostream&) const':
Roo1DTable.cxx:(.text+0x262): undefined reference to `Roo1DTable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `non-virtual thunk to Roo1DTable::printClassName(std::ostream&) const':
Roo1DTable.cxx:(.text+0x313): undefined reference to `Roo1DTable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `Roo1DTable::IsA() const':
Roo1DTable.cxx:(.text._ZNK10Roo1DTable3IsAEv[_ZNK10Roo1DTable3IsAEv]+0x5): undefined reference to `Roo1DTable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `non-virtual thunk to Roo1DTable::IsA() const':
Roo1DTable.cxx:(.text._ZNK10Roo1DTable3IsAEv[_ZNK10Roo1DTable3IsAEv]+0x15): undefined reference to `Roo1DTable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `Roo1DTable::ShowMembers(TMemberInspector&) const':
Roo1DTable.cxx:(.text._ZNK10Roo1DTable11ShowMembersER16TMemberInspector[_ZNK10Roo1DTable11ShowMembersER16TMemberInspector]+0x12): undefined reference to `Roo1DTable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o:Roo1DTable.cxx:(.text._ZNK10Roo1DTable11ShowMembersER16TMemberInspector[_ZNK10Roo1DTable11ShowMembersER16TMemberInspector]+0x42): more undefined references to `Roo1DTable::Class()' follow
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o: in function `_GLOBAL__sub_I_Roo1DTable.cxx':
Roo1DTable.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(Roo1DTable const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o:(.data.rel.ro._ZTV10Roo1DTable[_ZTV10Roo1DTable]+0x1e0): undefined reference to `Roo1DTable::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/Roo1DTable.cxx.o:(.data.rel.ro._ZTV10Roo1DTable[_ZTV10Roo1DTable]+0x2e8): undefined reference to `non-virtual thunk to Roo1DTable::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooAbsAnaConvPdf.cxx.o: in function `RooTemplateProxy<RooAbsReal>::IsA() const':
RooAbsAnaConvPdf.cxx:(.text._ZNK16RooTemplateProxyI10RooAbsRealE3IsAEv[_ZNK16RooTemplateProxyI10RooAbsRealE3IsAEv]+0x5): undefined reference to `RooTemplateProxy<RooAbsReal>::Class()'
...
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o: in function `RooNumCdf::ShowMembers(TMemberInspector&) const':
RooNumCdf.cxx:(.text._ZNK9RooNumCdf11ShowMembersER16TMemberInspector[_ZNK9RooNumCdf11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooNumCdf::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o: in function `non-virtual thunk to RooNumCdf::ShowMembers(TMemberInspector&) const':
RooNumCdf.cxx:(.text._ZNK9RooNumCdf11ShowMembersER16TMemberInspector[_ZNK9RooNumCdf11ShowMembersER16TMemberInspector]+0x42): undefined reference to `RooNumCdf::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o: in function `RooNumCdf::CheckTObjectHashConsistency() const':
RooNumCdf.cxx:(.text._ZNK9RooNumCdf27CheckTObjectHashConsistencyEv[_ZNK9RooNumCdf27CheckTObjectHashConsistencyEv]+0x78): undefined reference to `RooNumCdf::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o:RooNumCdf.cxx:(.text._ZNK9RooNumCdf27CheckTObjectHashConsistencyEv[_ZNK9RooNumCdf27CheckTObjectHashConsistencyEv]+0x11c): more undefined references to `RooNumCdf::Class()' follow
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o: in function `_GLOBAL__sub_I_RooNumCdf.cxx':
RooNumCdf.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooNumCdf const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o:(.data.rel.ro._ZTV9RooNumCdf[_ZTV9RooNumCdf]+0x1e0): undefined reference to `RooNumCdf::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooNumCdf.cxx.o:(.data.rel.ro._ZTV9RooNumCdf[_ZTV9RooNumCdf]+0x5b0): undefined reference to `non-virtual thunk to RooNumCdf::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooPlotable.cxx.o: in function `RooPlotable::IsA() const':
RooPlotable.cxx:(.text._ZNK11RooPlotable3IsAEv[_ZNK11RooPlotable3IsAEv]+0x5): undefined reference to `RooPlotable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooPlotable.cxx.o: in function `RooPlotable::ShowMembers(TMemberInspector&) const':
RooPlotable.cxx:(.text._ZNK11RooPlotable11ShowMembersER16TMemberInspector[_ZNK11RooPlotable11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooPlotable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooPlotable.cxx.o: in function `RooPlotable::CheckTObjectHashConsistency() const':
RooPlotable.cxx:(.text._ZNK11RooPlotable27CheckTObjectHashConsistencyEv[_ZNK11RooPlotable27CheckTObjectHashConsistencyEv]+0x75): undefined reference to `RooPlotable::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooPlotable.cxx.o: in function `_GLOBAL__sub_I_RooPlotable.cxx':
RooPlotable.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooPlotable const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooPlotable.cxx.o:(.data.rel.ro._ZTV11RooPlotable[_ZTV11RooPlotable]+0x98): undefined reference to `RooPlotable::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooProofDriverSelector.cxx.o: in function `RooProofDriverSelector::SlaveBegin(TTree*)':
RooProofDriverSelector.cxx:(.text+0x213): undefined reference to `typeinfo for RooStudyPackage'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooProofDriverSelector.cxx.o: in function `RooProofDriverSelector::IsA() const':
RooProofDriverSelector.cxx:(.text._ZNK22RooProofDriverSelector3IsAEv[_ZNK22RooProofDriverSelector3IsAEv]+0x5): undefined reference to `RooProofDriverSelector::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooProofDriverSelector.cxx.o: in function `RooProofDriverSelector::ShowMembers(TMemberInspector&) const':
RooProofDriverSelector.cxx:(.text._ZNK22RooProofDriverSelector11ShowMembersER16TMemberInspector[_ZNK22RooProofDriverSelector11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooProofDriverSelector::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooProofDriverSelector.cxx.o: in function `RooProofDriverSelector::CheckTObjectHashConsistency() const':
RooProofDriverSelector.cxx:(.text._ZNK22RooProofDriverSelector27CheckTObjectHashConsistencyEv[_ZNK22RooProofDriverSelector27CheckTObjectHashConsistencyEv]+0x78): undefined reference to `RooProofDriverSelector::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooProofDriverSelector.cxx.o:(.data.rel.ro._ZTV22RooProofDriverSelector[_ZTV22RooProofDriverSelector]+0x1e0): undefined reference to `RooProofDriverSelector::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooQuasiRandomGenerator.cxx.o: in function `RooQuasiRandomGenerator::IsA() const':
RooQuasiRandomGenerator.cxx:(.text._ZNK23RooQuasiRandomGenerator3IsAEv[_ZNK23RooQuasiRandomGenerator3IsAEv]+0x5): undefined reference to `RooQuasiRandomGenerator::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooQuasiRandomGenerator.cxx.o: in function `RooQuasiRandomGenerator::ShowMembers(TMemberInspector&) const':
RooQuasiRandomGenerator.cxx:(.text._ZNK23RooQuasiRandomGenerator11ShowMembersER16TMemberInspector[_ZNK23RooQuasiRandomGenerator11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooQuasiRandomGenerator::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooQuasiRandomGenerator.cxx.o: in function `RooQuasiRandomGenerator::CheckTObjectHashConsistency() const':
RooQuasiRandomGenerator.cxx:(.text._ZNK23RooQuasiRandomGenerator27CheckTObjectHashConsistencyEv[_ZNK23RooQuasiRandomGenerator27CheckTObjectHashConsistencyEv]+0x75): undefined reference to `RooQuasiRandomGenerator::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooQuasiRandomGenerator.cxx.o: in function `_GLOBAL__sub_I_RooQuasiRandomGenerator.cxx':
RooQuasiRandomGenerator.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooQuasiRandomGenerator const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooQuasiRandomGenerator.cxx.o:(.data.rel.ro._ZTV23RooQuasiRandomGenerator[_ZTV23RooQuasiRandomGenerator]+0x38): undefined reference to `RooQuasiRandomGenerator::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRealAnalytic.cxx.o: in function `RooRealAnalytic::IsA() const':
RooRealAnalytic.cxx:(.text._ZNK15RooRealAnalytic3IsAEv[_ZNK15RooRealAnalytic3IsAEv]+0x5): undefined reference to `RooRealAnalytic::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRealAnalytic.cxx.o: in function `RooRealAnalytic::ShowMembers(TMemberInspector&) const':
RooRealAnalytic.cxx:(.text._ZNK15RooRealAnalytic11ShowMembersER16TMemberInspector[_ZNK15RooRealAnalytic11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooRealAnalytic::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRealAnalytic.cxx.o: in function `RooRealAnalytic::CheckTObjectHashConsistency() const':
RooRealAnalytic.cxx:(.text._ZNK15RooRealAnalytic27CheckTObjectHashConsistencyEv[_ZNK15RooRealAnalytic27CheckTObjectHashConsistencyEv]+0x75): undefined reference to `RooRealAnalytic::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRealAnalytic.cxx.o: in function `_GLOBAL__sub_I_RooRealAnalytic.cxx':
RooRealAnalytic.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooRealAnalytic const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRealAnalytic.cxx.o:(.data.rel.ro._ZTV15RooRealAnalytic[_ZTV15RooRealAnalytic]+0x78): undefined reference to `RooRealAnalytic::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRefCountList.cxx.o: in function `RooRefCountList::IsA() const':
RooRefCountList.cxx:(.text._ZNK15RooRefCountList3IsAEv[_ZNK15RooRefCountList3IsAEv]+0x5): undefined reference to `RooRefCountList::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRefCountList.cxx.o: in function `RooRefCountList::ShowMembers(TMemberInspector&) const':
RooRefCountList.cxx:(.text._ZNK15RooRefCountList11ShowMembersER16TMemberInspector[_ZNK15RooRefCountList11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooRefCountList::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRefCountList.cxx.o: in function `RooRefCountList::CheckTObjectHashConsistency() const':
RooRefCountList.cxx:(.text._ZNK15RooRefCountList27CheckTObjectHashConsistencyEv[_ZNK15RooRefCountList27CheckTObjectHashConsistencyEv]+0x78): undefined reference to `RooRefCountList::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRefCountList.cxx.o: in function `_GLOBAL__sub_I_RooRefCountList.cxx':
RooRefCountList.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooRefCountList const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooRefCountList.cxx.o:(.data.rel.ro._ZTV15RooRefCountList[_ZTV15RooRefCountList]+0x1e0): undefined reference to `RooRefCountList::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooScaledFunc.cxx.o: in function `_GLOBAL__sub_I_RooScaledFunc.cxx':
RooScaledFunc.cxx:(.text.startup+0xb): undefined reference to `ROOT::GenerateInitInstance(RooScaledFunc const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooSetPair.cxx.o: in function `RooSetPair::IsA() const':
RooSetPair.cxx:(.text._ZNK10RooSetPair3IsAEv[_ZNK10RooSetPair3IsAEv]+0x5): undefined reference to `RooSetPair::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooSetPair.cxx.o: in function `RooSetPair::ShowMembers(TMemberInspector&) const':
RooSetPair.cxx:(.text._ZNK10RooSetPair11ShowMembersER16TMemberInspector[_ZNK10RooSetPair11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooSetPair::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooSetPair.cxx.o: in function `RooSetPair::CheckTObjectHashConsistency() const':
RooSetPair.cxx:(.text._ZNK10RooSetPair27CheckTObjectHashConsistencyEv[_ZNK10RooSetPair27CheckTObjectHashConsistencyEv]+0x78): undefined reference to `RooSetPair::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooSetPair.cxx.o: in function `_GLOBAL__sub_I_RooSetPair.cxx':
RooSetPair.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooSetPair const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooSetPair.cxx.o:(.data.rel.ro._ZTV10RooSetPair[_ZTV10RooSetPair]+0x1e0): undefined reference to `RooSetPair::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooTObjWrap.cxx.o: in function `_GLOBAL__sub_I_RooTObjWrap.cxx':
RooTObjWrap.cxx:(.text.startup+0x1c): undefined reference to `ROOT::GenerateInitInstance(RooTObjWrap const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooTreeData.cxx.o: in function `_GLOBAL__sub_I_RooTreeData.cxx':
RooTreeData.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooTreeData const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooWrapperPdf.cxx.o: in function `_GLOBAL__sub_I_RooWrapperPdf.cxx':
RooWrapperPdf.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooWrapperPdf const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `RooCatType::printClassName(std::ostream&) const':
RooCatTypeLegacy.cxx:(.text+0x1b2): undefined reference to `RooCatType::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `non-virtual thunk to RooCatType::printClassName(std::ostream&) const':
RooCatTypeLegacy.cxx:(.text+0x2e3): undefined reference to `RooCatType::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `RooCatType::IsA() const':
RooCatTypeLegacy.cxx:(.text._ZNK10RooCatType3IsAEv[_ZNK10RooCatType3IsAEv]+0x5): undefined reference to `RooCatType::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `non-virtual thunk to RooCatType::IsA() const':
RooCatTypeLegacy.cxx:(.text._ZNK10RooCatType3IsAEv[_ZNK10RooCatType3IsAEv]+0x15): undefined reference to `RooCatType::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `RooCatType::ShowMembers(TMemberInspector&) const':
RooCatTypeLegacy.cxx:(.text._ZNK10RooCatType11ShowMembersER16TMemberInspector[_ZNK10RooCatType11ShowMembersER16TMemberInspector]+0x12): undefined reference to `RooCatType::Class()'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o:RooCatTypeLegacy.cxx:(.text._ZNK10RooCatType11ShowMembersER16TMemberInspector[_ZNK10RooCatType11ShowMembersER16TMemberInspector]+0x42): more undefined references to `RooCatType::Class()' follow
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o: in function `_GLOBAL__sub_I_RooCatTypeLegacy.cxx':
RooCatTypeLegacy.cxx:(.text.startup+0x42): undefined reference to `ROOT::GenerateInitInstance(RooCatType const*)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o:(.data.rel.ro._ZTV10RooCatType[_ZTV10RooCatType]+0x1e0): undefined reference to `RooCatType::Streamer(TBuffer&)'
/usr/bin/ld: CMakeFiles/RooFitCore.dir/src/RooFitLegacy/RooCatTypeLegacy.cxx.o:(.data.rel.ro._ZTV10RooCatType[_ZTV10RooCatType]+0x2a0): undefined reference to `non-virtual thunk to RooCatType::Streamer(TBuffer&)'
collect2: error: ld returned 1 exit status
gmake[2]: *** [roofit/roofitcore/CMakeFiles/RooFitCore.dir/build.make:3268: lib/libRooFitCore.so] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:27586: roofit/roofitcore/CMakeFiles/RooFitCore.dir/all] Error 2
gmake: *** [Makefile:171: all] Error 2

Had to do a bunch of skipping as it’s too many characters but I think there’s enough here to get the gist. Starting to think I’ll have to do sone uninstall and reinstall afterall.
Any help would be appreciated.

Hi @Jason_Forson ,
those compilation errors look weird :slight_smile: Especially considering that Ubuntu 21.10 should just work. Did you delete the contents of the build directory before reconfiguring and rebuilding, i.e. is it an incremental build or a build from scratch?

Also consider installing a pre-built packages, e.g. via conda or snap, see Installing ROOT - ROOT .

Cheers,
Enrico

Come to think of it, I had not. I’ve since then done a full uninstall-reinstall that seems to be working just fine but in hindsight that would have made things easier.

Thank you.

1 Like

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