Fedora 21, 64bit, Root-6.02/05 Compilation Error

Hi Everyone,

I am compiling Root-6.02/05 on Fedora 21 64-bit latest. I install all of the pre-requisites listed, run cmake with the default settings, and there are no errors in this process. CMake version is latest from fedora repository, 3.0.2

I generate the makefiles, go into my build directory and use ‘make -j4’,

It gets until the end of compiling TCling that I encounter this error,

[ 44%] Building CXX object core/meta/CMakeFiles/MetaLLVM.dir/src/TCling.cxx.o
/home/anowack/.local/src/root-6.02.05/core/meta/src/TCling.cxx:63:25: fatal error: compiledata.h: No such file or directory
 #include "compiledata.h"
                         ^
compilation terminated.
core/meta/CMakeFiles/MetaLLVM.dir/build.make:123: recipe for target 'core/meta/CMakeFiles/MetaLLVM.dir/src/TCling.cxx.o' failed
make[2]: *** [core/meta/CMakeFiles/MetaLLVM.dir/src/TCling.cxx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 44%] Building CXX object core/metautils/CMakeFiles/MetaUtilsLLVM.dir/src/Scanner.cxx.o
[ 44%] Building CXX object core/metautils/CMakeFiles/MetaUtilsLLVM.dir/src/SelectionRules.cxx.o
[ 44%] Building CXX object core/metautils/CMakeFiles/MetaUtilsLLVM.dir/src/XMLReader.cxx.o
CMakeFiles/Makefile2:11406: recipe for target 'core/meta/CMakeFiles/MetaLLVM.dir/all' failed
make[1]: *** [core/meta/CMakeFiles/MetaLLVM.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 44%] Built target MetaUtilsLLVM
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

There are no other errors in the build, if anyone has built on Fedora 21, or encountered a similar error (I didnt see anything about compiledata.h on forum or bug tracker).

If it’s useful my CMake configuration output is as follows

The C compiler identification is GNU 4.9.2 The CXX compiler identification is GNU 4.9.2 Check for working C compiler: /usr/bin/cc Check for working C compiler: /usr/bin/cc -- works Detecting C compiler ABI info Detecting C compiler ABI info - done Check for working CXX compiler: /usr/bin/c++ Check for working CXX compiler: /usr/bin/c++ -- works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done The Fortran compiler identification is GNU Check for working Fortran compiler: /usr/bin/gfortran Check for working Fortran compiler: /usr/bin/gfortran -- works Detecting Fortran compiler ABI info Detecting Fortran compiler ABI info - done Checking whether /usr/bin/gfortran supports Fortran 90 Checking whether /usr/bin/gfortran supports Fortran 90 -- yes Found GCC. Major version 4, minor version 9 CMAKE_BUILD_TYPE: RelWithDebInfo Found a 64bit system Found GNU compiler collection ROOT Platform: linux ROOT Architecture: linuxx8664gcc Build Type: RelWithDebInfo Compiler Flags: -pipe -m64 -Wall -W -Woverloaded-virtual -fPIC -pthread -std=c++11 -Wno-deprecated-declarations Looking for ZLib Looking for Freetype Looking for PCRE Looking for LZMA Found LZMA includes at /usr/include Found LZMA library at /usr/lib64/liblzma.so Looking for X11 Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR) Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) Looking for Python Found Python interpreter version 2.7 Looking for OpenGL Looking for Graphviz Looking for Bonjour Checking whether Bonjour/Avahi is supported Looking for Kerberos 5 Looking for LibXml2 Looking for OpenSSL Looking for MySQL Looking for FFTW3 Looking for CFITSIO Found CFITSIO version: 3.37 Enabled support for: asimage astiff bonjour builtin_afterimage builtin_ftgl builtin_glew builtin_llvm cxx11 cling exceptions explicitlink fftw3 fitsio fortran gviz genvector krb5 memstat mysql opengl python shadowpw shared ssl thread tmva xft xml x11 Target triple: x86_64-unknown-linux-gnu Native target architecture is X86 Threads enabled. Doxygen disabled. Sphinx disabled. Building with -fPIC Constructing LLVMBuild project information Targeting X86 Clang version: 3.6.0 Configuring done Generating done

EDIT: Interesting, same problem with root-5.34.28

[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TToggleGroup.cxx.o
[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TIsAProxy.cxx.o
[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TDataMember.cxx.o
[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TInterpreter.cxx.o
[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TCint.cxx.o
[ 24%] Building CXX object core/CMakeFiles/Core.dir/meta/src/TMethod.cxx.o
/home/anowack/.local/src/root-5.34.28/core/meta/src/TCint.cxx:45:25: fatal error: compiledata.h: No such file or directory
 #include "compiledata.h"
                         ^
compilation terminated.
core/CMakeFiles/Core.dir/build.make:1940: recipe for target 'core/CMakeFiles/Core.dir/meta/src/TCint.cxx.o' failed
make[2]: *** [core/CMakeFiles/Core.dir/meta/src/TCint.cxx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:2591: recipe for target 'core/CMakeFiles/Core.dir/all' failed
make[1]: *** [core/CMakeFiles/Core.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

Thanks for reporting the problem. We haven’t tested yet with Fedora21, so this is why it fails both versions. We will add a Fedora21 node in our test system as soon as possible.
The problem may occurs because the script in build/unix/compiledata.sh is not running in Fedora21 for some reason. Can you help us and try to run it by hand to see what is the problem. A typical execution will be like this one:

build/unix/compiledata.sh include/compiledata.h 'c++' '' '-O2 -DNDEBUG' ' -pipe -m64 -Wall -W -Woverloaded-virtual -fPIC -pthread -std=c++11 -Wno-deprecated-declarations' '-shared' '' 'so' '-lm -ldl -lpthread -rdynamic' '$ROOTSYS/lib' '-lCore' '-lRint' '$ROOTSYS/include' '' '' 'linuxx8664gcc' '' 'yes'

Hi,

I just encountered the same problem on Linux Mint 18.
Problem was in fact caused by not executing compiledata.sh script - I’m using fish instead of bash as my shell. Changing it to bash fixed problem.

Regards,
Nikodem