Error in TUnixSystem.cxx

Dear ROOT experts,

I am installing ROOT 6.08.06 on Linux machine with gcc 4.9.3. I am getting this error:

gmake[2]: Warning: File `core/unix/CMakeFiles/Unix.dir/depend.make’ has modification time 0.0034 s in the future
[ 40%] Building CXX object core/unix/CMakeFiles/Unix.dir/src/TUnixSystem.cxx.o
[ 40%] Building CXX object core/meta/CMakeFiles/Meta.dir/src/TDictionary.cxx.o
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx: In member function ‘virtual Int_t TUnixSystem::GetFPEMask()’:
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:892:32: error: ‘fegetexcept’ was not declared in this scope
Int_t oldmask = fegetexcept();
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:905:18: error: ‘FE_INVALID’ was not declared in this scope
if (oldmask & FE_INVALID ) mask |= kInvalid;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:906:18: error: ‘FE_DIVBYZERO’ was not declared in this scope
if (oldmask & FE_DIVBYZERO) mask |= kDivByZero;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:907:18: error: ‘FE_OVERFLOW’ was not declared in this scope
if (oldmask & FE_OVERFLOW ) mask |= kOverflow;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:908:18: error: ‘FE_UNDERFLOW’ was not declared in this scope
if (oldmask & FE_UNDERFLOW) mask |= kUnderflow;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx: In member function ‘virtual Int_t TUnixSystem::SetFPEMask(Int_t)’:
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:975:37: error: ‘FE_INVALID’ was not declared in this scope
if (mask & kInvalid ) newm |= FE_INVALID;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:976:37: error: ‘FE_DIVBYZERO’ was not declared in this scope
if (mask & kDivByZero) newm |= FE_DIVBYZERO;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:977:37: error: ‘FE_OVERFLOW’ was not declared in this scope
if (mask & kOverflow ) newm |= FE_OVERFLOW;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:978:37: error: ‘FE_UNDERFLOW’ was not declared in this scope
if (mask & kUnderflow) newm |= FE_UNDERFLOW;
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:986:18: error: ‘FE_ALL_EXCEPT’ was not declared in this scope
feclearexcept(FE_ALL_EXCEPT);
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:986:31: error: ‘feclearexcept’ was not declared in this scope
feclearexcept(FE_ALL_EXCEPT);
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:987:33: error: ‘fedisableexcept’ was not declared in this scope
fedisableexcept(FE_ALL_EXCEPT);
^
/home/abouibrahim.a/root-6.08.06/core/unix/src/TUnixSystem.cxx:988:23: error: ‘feenableexcept’ was not declared in this scope
feenableexcept(newm);
^
gmake[2]: *** [core/unix/CMakeFiles/Unix.dir/src/TUnixSystem.cxx.o] Error 1
gmake[1]: *** [core/unix/CMakeFiles/Unix.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs…

Not sure what’s causing it.

Thanks for the help,
Amin

This seems to be a problem in your system configuration. Please give us more information about your environment, the current information is insufficient to diagnose the problem.

Hi,

Running uname -a on the cluster gives:

Linux discovery2.neu.edu 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux.
It uses cmake 3.10.0. The login nodes and compute nodes are RHEL 6.3, i.e. CentOS 6.3.

Hope this is enough?

Best,
Amin

Sorry, that is not enough. You also need to add how you are configuring ROOT (i.e. the CMake command line and respective output). You may attach the full build log as well, that would be most helpful. If you can try to install the latest version rather than 6.08, it probably has fixes for old issues. Please try 6.12/04 if you can. Cheers,

Hi,

Thanks for the recommendation. I tried installing 6.12/04 and I got also an error.
I’m following the build instructions given here: https://root.cern.ch/building-root
Attached are the output of the cmake command and error occurring.

Thank you again,buildOut.txt (10.3 KB)
rooterror.txt (2.5 KB)

Amin

From the attached files, the problem seems to be with the custom compiler installation. You need to tell the compiler where to find the standard library headers, where FE_INVALID, etc are defined: http://en.cppreference.com/w/cpp/numeric/fenv/FE_exceptions. This is not a problem with ROOT.

I had to upgrade to gnu-7.2.0 compiler. I don’t have the older problems anymore and libraries were located properly. Now I have gone up to 82% of the installation and it failed again. I know it is not a ROOT issue but I hope you can give me your expert opinion. I believe it is related to python. This is the error:

[ 82%] Linking CXX shared library …/…/lib/libPyROOT.so
[ 82%] Building CXX object hist/hist/CMakeFiles/Hist.dir/src/TLimitDataSource.cxx.o
[ 82%] Building CXX object hist/hist/CMakeFiles/Hist.dir/src/TMultiDimFit.cxx.o
CMakeFiles/PyROOT.dir/src/Pythonize.cxx.o: In function (anonymous namespace)::StlSequenceIter(_object*)': /home/abouibrahim.a/root-6.12.04/bindings/pyroot/src/Pythonize.cxx:1088: undefined reference toPyUnicodeUCS2_FromString’
collect2: error: ld returned 1 exit status
gmake[2]: *** [lib/libPyROOT.so] Error 1
gmake[1]: *** [bindings/pyroot/CMakeFiles/PyROOT.dir/all] Error 2

Thank you again.
Amin

Are you using Anaconda? You may be hitting a problem like this: ROOT-9145. This happens usually when the compiler that compiled your Python and the compiler you are using for ROOT are not ABI-compatible with each other. Since libPyROOT has to link to both Python and ROOT code, it doesn’t work, because the libraries are incompatible. My recommendation is that you try to use the same compiler for both Python and ROOT.

The other possibility is that you are not configuring ROOT to pick up the right Python executable. To make sure you are picking the right one, I recommend that you add -DPYTHON_EXECUTABLE=$(which python) to your CMake configuration flags or replace $(which python) with the full path to a Python interpreter.

One more thing, please pay atention to the lines below that appear when you configure with CMake, and make sure that the version of Python is consistent everywhere.

-- Looking for Python
-- Found PythonInterp: /shared/apps/python/Python-2.7.5/INSTALL/bin/python (found version "2.7.5")
-- Found Python interpreter version 2.7
-- Found PythonLibs: /shared/apps/python/Python-2.7.5/INSTALL/lib/libpython2.7.so (found version "2.7.5")
-- Found NUMPY: /shared/apps/python/Python-2.7.5/INSTALL/lib/python2.7/site-packages/numpy-1.11.2-py2.7-linux-x86_64.egg/n…umpy/core/include (found version "1.11.2")

I hope this is enough to solve your problem.

Yes those lines appear correctly when I configure. I think what you said about incompatibility of compilers may be the issue. I am not using Anaconda, but recently the cluster upgraded to the new compiler and I believe python 2.7 has been installed using an older compiler.
Thank you so much for the help. I will try to resolve the issue.

Best,
Amin

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.