ROOT v6-00-00

First a general note.
Could you please rename the “ROOT Support” forum to something like “ROOT v5 Support” and create a SEPARATE “ROOT v6 Support” forum. Otherwise, when messages related to “v5” (CINT / rootcint based) will mix with “v6” (CLANG / rootcling based) this forum will become unusable for users.

Then, well, I tried to compile it on a Ubuntu 14.04 LTS / x86_64 with gcc 4.8.2. Make died: g++ -m64 -O2 -Wl,--no-undefined -Wl,--as-needed -o core/utils/src/rootcling_tmp core/utils/src/rootcling_tmp.o core/utils/src/DictSelectionReader.o core/utils/src/LinkdefReader.o core/utils/src/TModuleGenerator.o \ core/metautils/src/RConversionRuleParser.o core/metautils/src/TClassEdit.o core/metautils/src/TMetaUtils.o core/metautils/src/BaseSelectionRule.o core/metautils/src/ClassSelectionRule.o core/metautils/src/VariableSelectionRule .o core/metautils/src/RStl.o core/metautils/src/Scanner.o core/metautils/src/SelectionRules.o core/metautils/src/XMLReader.o core/clib/src/snprintf.o core/clib/src/strlcpy.o core/clib/src/strlcat.o \ interpreter/cling/lib/Interpreter/AutoSynthesizer.o interpreter/cling/lib/Interpreter/BackendPass.o interpreter/cling/lib/Interpreter/CheckEmptyTransactionTransformer.o interpreter/cling/lib/Interpreter/CIFactory.o interpreter/cling/lib/Interpreter/ClangInternalState.o interpreter/cling/lib/Interpreter/DeclCollector.o interpreter/cling/lib/Interpreter/DeclExtractor.o interpreter/cling/lib/Interpreter/DynamicExprInfo.o interpreter/cling/lib/Interpreter/DynamicLibraryManager.o interpreter/cling/lib/Interpreter/DynamicLookup.o interpreter/cling/lib/Interpreter/IncrementalExecutor.o interpreter/cling/lib/Interpreter/IncrementalParser.o interpreter/cling/lib/Interpreter/InterpreterCallbacks.o interpreter/cling/lib/Interpreter/Interpreter.o interpreter/cling/lib/Interpreter/InvocationOptions.o interpreter/cling/lib/Interpreter/LookupHelper.o interpreter/cling/lib/Interpreter/NullDerefProtectionTransformer.o interpreter/cling/lib/Interpreter/RequiredSymbols.o interpreter/cling/lib/Interpreter/RuntimeException.o interpreter/cling/lib/Interpreter/Transaction.o interpreter/cling/lib/Interpreter/TransactionTransformer.o interpreter/cling/lib/Interpreter/TransactionUnloader.o interpreter/cling/lib/Interpreter/Value.o interpreter/cling/lib/Interpreter/ValueExtractionSynthesizer.o interpreter/cling/lib/Interpreter/ValuePrinter.o interpreter/cling/lib/Interpreter/ValuePrinterSynthesizer.o interpreter/cling/lib/MetaProcessor/Display.o interpreter/cling/lib/MetaProcessor/InputValidator.o interpreter/cling/lib/MetaProcessor/MetaLexer.o interpreter/cling/lib/MetaProcessor/MetaParser.o interpreter/cling/lib/MetaProcessor/MetaProcessor.o interpreter/cling/lib/MetaProcessor/MetaSema.o interpreter/cling/lib/Utils/AST.o -L/opt/ROOT/build/v6-00-00/interpreter/llvm/inst/lib -lclangFrontend -lclangSerialization -lclangDriver -lclangCodeGen -lclangParse -lclangSema -lclangAnalysis -lclangRewriteCore -lclangAST -lclangEdit -lclangLex -lclangBasic -lLLVMObjCARCOpts -lLLVMInstrumentation -lLLVMipo -lLLVMVectorize -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMBitReader -lLLVMBitWriter -lLLVMCore -lLLVMSupport -L/opt/ROOT/build/v6-00-00/interpreter/llvm/inst/lib -lz -lpthread -ltinfo -ldl -lm -lm -ldl -rdynamic g++: error: core/metautils/src/RConversionRuleParser.o: No such file or directory g++: error: core/metautils/src/TClassEdit.o: No such file or directory make: *** [core/utils/src/rootcling_tmp] Error 1

Hello Wile,

thanks for the suggestion about the diversification in the forum. We’ll certainly discuss it.
As for the error you report, could you share the configure command ? (it does not look like cmake)
This looks strange as Ubuntu 14.04 is one of the platform which are included in the continuous integration builds :frowning:


I tried two installation methods and both die with the same error.

[url= one that I’ve been using for ages and which produces a “consistent” binary distribution[/url]:

cd /opt/ROOT/build/v6-00-00 export ROOTSYS=/opt/ROOT/v6-00-00 ./configure --enable-explicitlink --enable-soversion --all make make install
The one that I never use as it produces an “inconsistent” binary distribution:

cd /opt/ROOT/build/v6-00-00 unset ROOTSYS ./configure --prefix=/opt/ROOT/v6-00-00 --etcdir=/opt/ROOT/v6-00-00/etc/root --enable-explicitlink --enable-soversion --all make make install
Just to make it clear. I refuse to use cmake as I’ve only had problems with different versions running on different systems.

Hi WIle,

I cannot reproduce this on a fresh build in Ubuntu 14.04, using the same configure options, btw the option --enable-explicitlink is on by default so you can leave it off.

Do you use make -j n. What is n?
Do you perform the build in a totally fresh directory? If not make it fresh by first doing:

make maintainer-clean
./configure --all --enable-soversion
make -j n

Cheers, Fons.

Hi Wile,

I confirm the post of Fons.
On a fresh ubuntu 14.04 (gcc48 + build prerequisites only), the directory structure and commands you describe I get a successful installation.


You can’t “make maintainer-clean” before running configure because:
Makefile:20: config/Makefile.config: No such file or directory

One more thing that came to my mind. Can it be that we start with a different source code?
I unpack the official root_v6.00.00.source.tar.gz file, then I “mv root v6-00-00”, I “cd v6-00-00” and try to build it (I always make it with just 1 “make job”).

BTW. I think “–enable-explicitlink” is not really the default. In the “./configure” script, I explicitly find the default setting “enable_explicitlink=no” and, when I configure it, I do NOT get any message in form “INFO: --enable-:explicitlink already enabled by default.” (Well, maybe now for some reason it’s later switched “on” by default, but I prefer to be on the “safe” side).

Hi Wile,

thanks to you being the only person still compiling with one core at a time :wink: you indeed found a bug that I could reproduce. If you do make -j 2 or more the missing files get, by chance, build in time and the linking and build will succeed. We all use make -j n as all machines have more than one core and it makes a huge time difference. Try it :wink:

But I’ll fix the problem right now.

Cheers, Fons.

Well, I remember I had problems when using more CPUs for “make” (some time ago), and that’s the first time I hear a 1 “make job” built fails.
Anyhow, my main development machine is a small laptop with a single Intel Core2 Duo CPU and 4 GB RAM, and in the time something is being built I really want to do another things on it as well.

Hi Wile,

I’ve fixed the problem. Can you download again the source tar and repeat your install procedure. It should now work.

Cheers, Fons.

I confirm that I am able to build it now using [url= favorite build method[/url].

I tried to build “test” applications (I did NOT try to execute them, though).
They all build fine, except “test/periodic” which dies: [code]rootcling -f NdbDict.cxx -c XSElementDlg.h XSElementList.h XSElements.h XSGraph.h XSGui.h XSPeriodicTable.h XSReactionDlg.h XSStepButton.h XSVarious.h NdbAngularDist.h NdbDataCovariances.h NdbDCAngularDist.h NdbDCEnergyDist.h NdbDCNuBar.
h NdbDCRadioXS.h NdbDCRadioYield.h NdbDCReactionXS.h NdbDCResParam.h NdbEndfIO.h NdbEnergyAngleDist.h NdbEnergyDist.h NdbFissionYield.h NdbFormFactors.h NdbGeneralInfo.h NdbMaterial.h NdbMF.h NdbMT.h NdbMTDir.h NdbMTReacDesc.h NdbMTReact
ionXS.h NdbParticle.h NdbParticleList.h NdbPhotonAngleDist.h NdbPhotonEnergyDist.h NdbPhotonInteractionXS.h NdbPhotonMult.h NdbPhotonProdXS.h NdbRadioMult.h NdbRadioXS.h NdbReaction.h NdbResParam.h NdbThermalNeutron.h NdbLinkDef.h
In file included from input_line_11:1:
In file included from ././NdbDict112a466013_dictUmbrella.h:10:
./XSGui.h:27:25: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]

./XSGui.h:28:12: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]

Error: rootcling: compilation failure (./NdbDict112a466013_dictUmbrella.h)
make: *** [NdbDict.cxx] Error 1[/code]
I tried to run “tutorials” (all from the control bar created by “root [0] .x demos.C”).
The “geom/geometry.C” takes about 100 s CPU time (i.e. “root.exe” uses 100% CPU time for about one hundred seconds), but then it claims: na49 : Real Time = 0.03 seconds Cpu Time = 0.03 seconds geometry : Real Time = 0.25 seconds Cpu Time = 0.04 seconds and two another fail (“io/fildir.C” and “tree/tree.C”, note that “io/file.C” has been executed just before them): /.../io/fildir.C:10:15: error: redefinition of 'title' TPaveLabel title(4,23,16,24.2,"ROOT File/Directory/Key description"); ^ /.../io/file.C:11:15: note: previous definition is here TPaveLabel title(5,12,15,13.7,c1->GetTitle()); ^ /.../tree/tree.C:17:15: error: redefinition of 'title' TPaveLabel title(.3,1.05,.8,1.13,c1->GetTitle()); ^ /.../io/file.C:11:15: note: previous definition is here TPaveLabel title(5,12,15,13.7,c1->GetTitle()); ^

Hi Wile,

thanks for the feedback.
I already fixed the “periodic” tutorial (nice catch!). We are meanwhile following up the other issues you pointed out.


Hi Wile E.,

I’ve fixed io/fildir.C and tree/tree.C. We are aware of the slow geometry.C; that will be fixed by our next import of llvm (i.e. it was a bug in clang).

Cheers, Axel.