Compiling latest ROOT failed

Dear all,

I am trying to test the latest ROOT… 7bdb76d3af8e6acc1e555e865be3ef8bb367d0d7 from this morning (Monday 7th April)

Configure script is not working anymore… It’s looping Ad vitam æternam… With

./configure linuxx8664gcc --prefix=$LOCAL --etcdir=$LOCAL/etc/root --all --enable-xrootd --with-xrootd=$LOCAL --enable-fftw3 --enable-gsl-shared --enable-mathmore --enable-minuit2 --enable-roofit

I obtain

Checking for source directory ... /home/mylogin/data/paquets/rootnew
Configuring for linuxx8664gcc
INFO: --enable-xrootd: already enabled by default.
INFO: --enable-fftw3: already enabled by default.
INFO: --enable-mathmore: already enabled by default.
INFO: --enable-minuit2: already enabled by default.
INFO: --enable-roofit: already enabled by default.
Checking for GNU Make version >= 3.80 ... ok
Checking for C compiler ... gcc
Checking for C++ compiler ... g++
Checking for linker (LD) ... g++
[ ...............................................................................]
Writing config.status ... done

Enabled support for asimage, astiff, builtin_afterimage, builtin_ftgl, builtin_glew, builtin_lzma, builtin_llvm, explicitlink, fftw3, gdml, genvector, gsl_shared, krb5, ldap, mathmore, memstat, minuit2, mysql, opengl, pgsql, python, qt, qtgsi, roofit, shadowpw, shared, sqlite, ssl, table, tmva, unuran, vc, vdt, x11, xft, xml.

To build ROOT type:

   make 
   make  install

*** Cleaning up previous non-C++11 build products, using:
*** make  maintainer-clean;./configure linuxx8664gcc --prefix=/home/kulam/local --etcdir=/home/kulam/local/etc/root --all --enable-xrootd --with-xrootd=/home/kulam/local --enable-fftw3 --enable-gsl-shared --enable-mathmore --enable-minuit2 --enable-roofit
make[1]: Entering directory `/home/kulam/data/paquets/rootnew/math/genetic/test'
make[1]: Leaving directory `/home/kulam/data/paquets/rootnew/math/genetic/test'
make[1]: Entering directory `/home/kulam/data/paquets/rootnew/math/genvector/test'
make[1]: Leaving directory `/home/kulam/data/paquets/rootnew/math/genvector/test'
make[1]: Entering directory `/home/kulam/data/paquets/rootnew/math/mathcore/test'
make[1]: Leaving directory `/home/kulam/data/paquets/rootnew/math/mathcore/test'
make[1]: Entering directory `/home/kulam/data/paquets/rootnew/math/mathcore/test/fit'
Makefile:27: /home/kulam/local/config/Makefile.config: No such file or directory
make[1]: *** No rule to make target `/home/kulam/local/config/Makefile.config'.  Stop.
make[1]: Leaving directory `/home/kulam/data/paquets/rootnew/math/mathcore/test/fit'
make: *** [distclean-mathcore] Error 2
Checking for source directory ... /home/kulam/data/paquets/rootnew
Configuring for linuxx8664gcc
INFO: --enable-xrootd: already enabled by default.
INFO: --enable-fftw3: already enabled by default.
INFO: --enable-mathmore: already enabled by default.
INFO: --enable-minuit2: already enabled by default.
INFO: --enable-roofit: already enabled by default.
Checking for GNU Make version >= 3.80 ... ok
Checking for C compiler ... gcc
Checking for C++ compiler ... g++
Checking for linker (LD) ... g++
[...................................................................................................]

… so I tried cmake (but I have never been able to compile root with cmake, not even one single time) … With

cmake -DCMAKE_INSTALL_PREFIX=/home/mylogin/local/root -Dbuiltin_gsl=ON -Dgsl_shared=ON -Dminuit2=ON -Dmathmore=ON ../rootnew/ 

I obtain :

Scanning dependencies of target Matrix
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTSparse.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TVectorT.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompChol.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompBase.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTUtils.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixT.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixDSymEigen.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompQRH.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompSparse.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompBK.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompLU.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTSymCramerInv.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TDecompSVD.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixDEigen.cxx.o
[ 23%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTCramerInv.cxx.o
[ 24%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTBase.cxx.o
[ 24%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTLazy.cxx.o
[ 24%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/TMatrixTSym.cxx.o
[ 24%] Building CXX object math/matrix/CMakeFiles/Matrix.dir/src/G__Matrix.cxx.o
/home/kulam/data/paquets/rootnew/math/matrix/src/G__Matrix.cxx: In function ‘void {anonymous}::TriggerDictionaryInitialization_libMatrix_Impl()’:
/home/kulam/data/paquets/rootnew/math/matrix/src/G__Matrix.cxx:6537:55: error: no matching function for call to ‘TROOT::RegisterModule(const char [10], const char* [48], const char* [187], const char* [2], const char*&, void (&)())’
/home/kulam/data/paquets/rootnew/math/matrix/src/G__Matrix.cxx:6537:55: note: candidate is:
In file included from /home/kulam/data/paquets/rootnew/math/matrix/src/G__Matrix.cxx:17:0:
/home/kulam/data/paquets/rootnew/core/base/inc/TROOT.h:269:22: note: static void TROOT::RegisterModule(const char*, const char**, const char**, const char**, const char*, void (*)(), const FwdDeclArgsToKeepCollection_t&)
/home/kulam/data/paquets/rootnew/core/base/inc/TROOT.h:269:22: note:   candidate expects 7 arguments, 6 provided
make[2]: *** [math/matrix/CMakeFiles/Matrix.dir/src/G__Matrix.cxx.o] Error 1
make[1]: *** [math/matrix/CMakeFiles/Matrix.dir/all] Error 2
make: *** [all] Error 2

My System is :

Thanks for your advices…

Clingcurious

ps : please tell me that you are not all Apple-Mac-iOS dev… :slight_smile:

Is your $LOCAL variable = /home/kulam/local?

Seems that the makefile in math/mathcore/test/fit expects the config directory to be present in the $ROOTSYS directory. I assume you run into this issue prior to finishing the make install command.

Do you really need --all? I would attempt to configure without that first.

./configure script is looping without the -all flag

and I am only trying to compile with cmake Minuit Rootfit Mathmore TProof GSL … packages I really really need for my analysis code…

and I consider also myself as a lambda-beta-tester (not very useful I agree, I have more questions than answers, I’am still at the beginning of my ROOT learning curve) …so remove the -all flag is not really satisfactory. I am trying to migrate to root6.0 since September2013… but with the poor reactivity of this forum… it’s not really easy… Constructors for TGraphErrors are memory leaking with valgrind, Fitting with Minuit is memory leaking… TFile::Open with root6.0 is memory leaking…

Thanks very much anyway for your attention…

Advices are very welcome :slight_smile:

I’ll continue for a while with ROOT5.34 branch which fill my needs for the moment.

and sorry for the poor english…

Just in case, I tried this morning with commit b8739ad5a10690c3a1da2324026ff057089a21ae but I still have the error :

[ 26%] Building CXX object math/smatrix/CMakeFiles/Smatrix.dir/src/G__Smatrix.cxx.o
/home/kulam/data/paquets/rootnew/math/smatrix/src/G__Smatrix.cxx: In function ‘void {anonymous}::TriggerDictionaryInitialization_libSmatrix_Impl()’:
/home/kulam/data/paquets/rootnew/math/smatrix/src/G__Smatrix.cxx:8660:56: error: no matching function for call to ‘TROOT::RegisterModule(const char [11], const char* [5], const char* [184], const char* [2], const char*&, void (&)())’
/home/kulam/data/paquets/rootnew/math/smatrix/src/G__Smatrix.cxx:8660:56: note: candidate is:
In file included from /home/kulam/data/paquets/rootnew/math/smatrix/src/G__Smatrix.cxx:17:0:
/home/kulam/data/paquets/rootnew/core/base/inc/TROOT.h:269:22: note: static void TROOT::RegisterModule(const char*, const char**, const char**, const char**, const char*, void (*)(), const FwdDeclArgsToKeepCollection_t&, const char**)
/home/kulam/data/paquets/rootnew/core/base/inc/TROOT.h:269:22: note:   candidate expects 8 arguments, 6 provided
make[2]: *** [math/smatrix/CMakeFiles/Smatrix.dir/src/G__Smatrix.cxx.o] Error 1
make[1]: *** [math/smatrix/CMakeFiles/Smatrix.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

I also tried to install the latest root on an Intel Cluster… there, the configure script is not looping… but I can’t compile there either (cmake / configure) so I 'll probably open a new thread when I have some time…

Just in case, I tried this afternoon the same commit b8739ad5a10690c3a1da2324026ff057089a21ae but I still have the error but with debian sid this time …

./configure script is also looping

and the cmake compilation is also failing but not at the same point :

[ 24%] Built target RIO
[ 24%] Building CXX object core/utils/CMakeFiles/rootcling.dir/src/rootclingTCling.cxx.o
/home/kulam/data/paquets/rootnew/core/utils/src/rootclingTCling.cxx:17:19: fatal error: TFile.h: No such file or directory
 #include "TFile.h"
                   ^
compilation terminated.
core/utils/CMakeFiles/rootcling.dir/build.make:146: recipe for target 'core/utils/CMakeFiles/rootcling.dir/src/rootclingTCling.cxx.o' failed
make[2]: *** [core/utils/CMakeFiles/rootcling.dir/src/rootclingTCling.cxx.o] Error 1
CMakeFiles/Makefile2:1873: recipe for target 'core/utils/CMakeFiles/rootcling.dir/all' failed
make[1]: *** [core/utils/CMakeFiles/rootcling.dir/all] Error 2
Makefile:133: recipe for target 'all' failed
make: *** [all] Error 2

So now I have three machines where ROOT 5.34 compile and ROOT 6.0 does not compile (at 3 different stages…)

Dont know why but today, I can compile :

ROOT 5.99/06 (heads/myconfigure@v5-99-06-869-gf517a9f, May 27 2014, 11:41:56 on linuxx8664gcc)
gcc-4.9 (Debian 4.9.0-4) 4.9.0
x86_64 Debian sid GNU Linux 3.14.4-1 (2014-05-13)

if I comment some lines of the configure script that are causing the loop

#if [ "x$run_maintainer_clean" = "xyes" ]; then
#   result "*** Cleaning up previous non-C++11 build products, using:"
#   result "*** $gnumake maintainer-clean;$0 `cat config.status 2>/dev/null`"
#   $gnumake maintainer-clean
#   $0 `cat config.status 2>/dev/null`
#fi

and then

./configure linuxx8664gcc --prefix=$LOCAL --etcdir=$LOCAL/etc/root --with-gcc-toolchain=/usr --with-cc=gcc-4.9 --with-cxx=g++-4.9 --with-ld=g++-4.9 --enable-mathmore --enable-minuit2

But cmake as usual failed… today with :

cmake -DCMAKE_INSTALL_PREFIX=$LOCAL -DCMAKE_C_COMPILER=gcc-4.9 -DCMAKE_CXX_COMPILER=g++-4.9 -DCMAKE_LINKER=g++-4.9 -Dmathmore=ON -Dminuit2=ON ../rootnewsid/

it failed at this stage :

[  0%] Built target LLVM
[  1%] Built target CLING
[  1%] Built target LLVMRES
[  2%] Built target Clib
[  2%] Built target MetaUtils
[  2%] Built target MetaUtilsLLVM
Linking CXX executable ../../bin/rootcling_tmp
CMakeFiles/rootcling_tmp.dir/src/rootcling_tmp.cxx.o: In function `EmitTypedefs':
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:286: undefined reference to `AddTypedefToROOTFile'
CMakeFiles/rootcling_tmp.dir/src/rootcling_tmp.cxx.o: In function `GenerateFullDict(std::ostream&, cling::Interpreter&, RScanner&, SelectionRules&, std::list<ROOT::TMetaUtils::RConstructorType, std::allocator<ROOT::TMetaUtils::RConstructorType> > const&, bool, bool, bool, bool)':
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:2982: undefined reference to `CloseStreamerInfoROOTFile'
CMakeFiles/rootcling_tmp.dir/src/rootcling_tmp.cxx.o: In function `EmitStreamerInfo':
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:282: undefined reference to `AddStreamerInfoToROOTFile'
CMakeFiles/rootcling_tmp.dir/src/rootcling_tmp.cxx.o: In function `RootCling(int, char**, bool, bool)':
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:3844: undefined reference to `TROOT__GetExtraInterpreterArgs'
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:3846: undefined reference to `TCling__GetInterpreter'
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:3973: undefined reference to `AddAncestorPCMROOTFile'
/home/kulam/data/paquets/rootnewsid/core/utils/src/rootcling_tmp.cxx:4299: undefined reference to `InitializeStreamerInfoROOTFile'
collect2: error: ld returned 1 exit status
core/utils/CMakeFiles/rootcling_tmp.dir/build.make:297: recipe for target 'bin/rootcling_tmp' failed
make[2]: *** [bin/rootcling_tmp] Error 1
CMakeFiles/Makefile2:2032: recipe for target 'core/utils/CMakeFiles/rootcling_tmp.dir/all' failed
make[1]: *** [core/utils/CMakeFiles/rootcling_tmp.dir/all] Error 2
Makefile:133: recipe for target 'all' failed
make: *** [all] Error 2

But as last, I can try ROOT 6.0 with the modified configure script… :slight_smile: