Dear ROOTers,
I recently updated my ROOT5 and ROOT6 versions to 5.34.32 and 6.02.12 respectively and I noticed that now the ‘‘configure’’ options include also the flag cxx14, provided that your compiler supports it.
Apparently my ‘‘configure’’:
./configure --all --with-clang --enable-cxx14 --enable-soversion --fail-on-missing |& tee configure.output
thinks that my system (cern centos 7.1 linux x86_64) supports c++14, and in fact clang should support it as version 3.4
However ‘‘make’’ encounters at least the following error (I also attached the full output):
[...]
clang++ -O2 -DNDEBUG -pipe -m64 -std=c++1y -Wshadow -Wall -W -Woverloaded-virtual -fPIC -Iinclude -Wno-deprecated-declarations -pthread -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".o\" -o build/rmkdepend/mainroot.o -c /tmp/malfonsi/ROOT6/root-6.02.12/build/rmkdepend/mainroot.cxx
In file included from /tmp/malfonsi/ROOT6/root-6.02.12/build/rmkdepend/mainroot.cxx:28:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/string:52:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:2815:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/ext/string_conversions.h:43:
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/cstdio:120:11: error: no member named 'gets' in the global namespace
using ::gets;
~~^
1 error generated.
[...]
As far as I remember gets() was deprecated some time ago and maybe it is now completely removed from the std.
I am not sure if this error means that clang on linux is still using libstdc.so from GNU gcc and this is not yet fully compliant to c++14…
… anyway is this error easily fixable? Otherwise for the time being I will just stick to c++11…
Thanks a lot,
Matteo
make.output.txt (9.99 KB)
configure.output.txt (7.64 KB)