ROOT 6 and Fedora 24 / GCC 6

My Linux box is running Fedora 24, and I am trying to build ROOT 6.06.08. The distribution ships with GCC 6.2.1. And I run into this:

-- Found GCC. Major version 6, minor version 2
-- Performing Test CXX_SUPPORTS_OLD_ABI
-- Performing Test CXX_SUPPORTS_OLD_ABI - Failed
CMake Error at cmake/modules/CheckCompiler.cmake:61 (message):
  Found GCC compiler with new ABI.  Cling does not support the GCC 5 ABI yet
Call Stack (most recent call first):
  CMakeLists.txt:35 (include)


-- Configuring incomplete, errors occurred!
See also "/home/gluex/gluex_top/root/root-6.06.08/build_dir/CMakeFiles/CMakeOutput.log".
See also "/home/gluex/gluex_top/root/root-6.06.08/build_dir/CMakeFiles/CMakeError.log".
/home/gluex/gluex_top/build_scripts/Makefile_root_6_inc:30: recipe for target 'root-6.06.08/.cmake_done' failed

Now if GCC 5 is not supported, I’m thinking it might be a while before GCC 6 is supported. I’ve also heard that installing GCC from source is no picnic. It seems like the easiest thing to do is to downgrade my Linux box to CentOS7 or some such, which is kind of disruptive. Any other advice out there?

OK. So I dropped back to 5.34.36 to avoid Cling. Here I get:

g++ -O2 -pipe -m64 -Wall -W -Woverloaded-virtual -fPIC -Iinclude   -DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__OSFDLL -DG__ROOT -DG__REDIRECTIO -DG__STD_EXCEPTION -DG__64BIT  -DG__HAVE_CONFIG -DG__NOMAKEINFO -DG__CINTBODY  -I/home/gluex/gluex_top/root/root_5.34.36/cint/cint/inc -I/home/gluex/gluex_top/root/root_5.34.36/cint/cint/src -I/home/gluex/gluex_top/root/root_5.34.36/cint/cint/src/dict -pthread -Icint/cint/lib/libstrm -Icint/cint/lib/stream -I. -o cint/cint/src/dict/libstrm.o -c cint/cint/src/dict/libstrm.cxx
In file included from cint/cint/src/dict/libstrm.h:37:0,
                 from cint/cint/src/dict/libstrm.cxx:14:
cint/cint/lib/stream/iostrm.h:24:22: fatal error: iostream.h: No such file or directory
 #include <iostream.h>
                      ^
compilation terminated.
Makefile:631: recipe for target 'cint/cint/src/dict/libstrm.o' failed
make[2]: *** [cint/cint/src/dict/libstrm.o] Error 1
make[2]: Leaving directory '/home/gluex/gluex_top/root/root_5.34.36'

I found the following post:

[url]Build failure with gcc 5.1.0: trying to include iostream.h

One piece of advice given there is that ROOT 5 will not ever support GCC 5 and so one should move to ROOT 6.

There is also a patch at the end which I will try next, though it only claims to work for 5.34.00 <= Root < 5.34.30 and is untested.

[quote]My Linux box is running Fedora 24, and I am trying to build ROOT 6.06.08. The distribution ships with GCC 6.2.1.[/quote]Please try v6.08/00 which fixes this problem.

[quote]OK. So I dropped back to 5.34.36 to avoid Cling.[/quote]v5.34 is not actively developed and in particular is not being ported to new platforms.

Cheers,
Philippe.

OK. That worked. Thanks Philippe! :smiley:

I had to install the mesa-libGLU-devel package. I don’t think I needed that before, but am not sure.