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.
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
I tried two installation methods and both die with the same error.
[url=https://root-forum.cern.ch/t/installing-root-from-source/13647/1 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.
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
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).
thanks to you being the only person still compiling with one core at a time 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
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.
I confirm that I am able to build it now using [url=https://root-forum.cern.ch/t/installing-root-from-source/13647/1 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] #define ABOUT PRGNAME" “VERSION”\n"
^
./XSGui.h:28:12: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
AUTHOR" "DATE
^
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());
^
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).