We need to install (see below the cmake command we use) a specific ROOT version v5.34.34 on a computing cluster (OakRidge Summit Summit User Guide — OLCF User Documentation) as a user. Their machine processor is not supported by cmake. See printout at the end.
The error is coming here looking at the file cmake/modules/SetUpLinux.cmake
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES ppc64)
message(STATUS "Found a 64bit PPC system (ppc64/ppc64le)")
if(CMAKE_COMPILER_IS_GNUCXX)
message(STATUS "Found GNU compiler collection")
set(ROOT_ARCHITECTURE linuxppc64gcc)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
message(STATUS "Found CLANG compiler")
set(ROOT_ARCHITECTURE linuxppc64gcc)
else()
message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.")
endif()
Do you have any suggestions what’s the best way going forward to install this version of ROOT?
Untarring ROOT install to /autofs/nccs-svm1_home1/wshi/MaCh3/root-source
mkdir: created directory '/autofs/nccs-svm1_home1/wshi/MaCh3/root-source'
Please be patient, untarring ROOT takes a while...
Untarred ROOT
Making root in /autofs/nccs-svm1_home1/wshi/MaCh3/root with Minuit2, ROOfit, pyROOT with 8 threads
mkdir: created directory '/autofs/nccs-svm1_home1/wshi/MaCh3/root'
Loading cmake module...
Trying to load saved and generic cmake version...
Building ROOT with cmake...
CMake Deprecation Warning at CMakeLists.txt:2 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is XLClang 16.1.1.10
-- The CXX compiler identification is XLClang 16.1.1.10
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /sw/summit/xl/16.1.1-10/xlC/16.1.1/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /sw/summit/xl/16.1.1-10/xlC/16.1.1/bin/xlC - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at cmake/modules/RootNewMacros.cmake:8 (cmake_policy):
The OLD behavior for policy CMP0022 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
CMakeLists.txt:32 (include)
-- The Fortran compiler identification is XL 16.1.1
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /sw/summit/xl/16.1.1-10/xlf/16.1.1/bin/xlf - skipped
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- Performing Test CXX_HAS_Wno-array-bounds
-- Performing Test CXX_HAS_Wno-array-bounds - Success
-- Performing Test CXX_HAS_Wno-strict-aliasing
-- Performing Test CXX_HAS_Wno-strict-aliasing - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found a 32bit system
CMake Error at cmake/modules/SetUpLinux.cmake:34 (message):
There is no Setup for this compiler up to now. Don't know what to do.
Stop cmake at this point.
Call Stack (most recent call first):
cmake/modules/CheckCompiler.cmake:102 (include)
CMakeLists.txt:33 (include)
ROOT Version:v5.34.34
Platform:
NAME="Red Hat Enterprise Linux"
VERSION="8.2 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.2"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.2 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.2:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.2
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.2"
Do you mean install v5.34.38 plus these v5-34-00-patches patches? is the v5.34.38 expected not going to work alone?
We do see some errors when invoking the root.exe
[wshi@login1.summit bin]$ root.exe -l
Error in <UnknownClass::ReadFile>: no file name specified
Error in <UnknownClass::ReadFile>: no file name specified
Error: cannot open file "iostream" (tmpfile):2:
*** Interpreter error recovered ***
Error in <TEnv::ReadFile>: no file name specified
Error in <TEnv::ReadFile>: no file name specified
Error in <TUnixSystem::DynamicPathName>: libMathCore[.so | .dll | .dylib | .sl | .dl | .a] does not exist in .:./lib:
*** Break *** segmentation violation
Error in <TUnixSystem::StackTrace> script ./etc/gdb-backtrace.sh is missing
So the v5.34.38 can be compiled fine on this machine. But after sourcing, it says can’t find root command:
source ../root/bin/thisroot.sh
[wshi@login1.summit MaCh3]$ root -l
-bash: root: command not found
I can see the environment path is all correct, but in the bin folder it doesn’t contain the root binary that’s normally seen in linux, any idea why this happens?
[wshi@login5.summit bin]$ ll
total 2108
-rwxrwxr-x 1 wshi wshi 85800 Oct 25 21:05 genmap
-rwxrwxr-x 1 wshi wshi 176 Oct 25 20:36 genreflex
-rwxrwxr-x 1 wshi wshi 92 Oct 25 20:36 genreflex-rootcint
-rwxrwxr-x 1 wshi wshi 78912 Oct 25 21:05 hadd
-rwxrwxr-x 1 wshi wshi 87928 Oct 25 21:05 hist2workspace
-rwxr-xr-x 1 wshi wshi 8447 Oct 25 20:36 memprobe
-rwxrwxr-x 1 wshi wshi 160560 Oct 25 21:05 pq2
-rwxrwxr-x 1 wshi wshi 2078 Oct 25 21:05 prepareHistFactory
-rwxrwxr-x 1 wshi wshi 238112 Oct 25 21:05 proofd
-rwxr-xr-x 1 wshi wshi 2868 Oct 25 21:05 proofserv
-rwxrwxr-x 1 wshi wshi 78808 Oct 25 21:05 proofserv.exe
-rwxrwxr-x 1 wshi wshi 80624 Oct 25 20:37 rlibmap
-rwxrwxr-x 1 wshi wshi 83488 Oct 25 20:36 rmkdepend
-rwxr-xr-x 1 wshi wshi 27225 Oct 25 20:36 root-config
-rwxrwxr-x 1 wshi wshi 76608 Oct 25 21:05 root.exe
-rwxrwxr-x 1 wshi wshi 388208 Oct 25 20:37 rootcint
-rwxrwxr-x 1 wshi wshi 306968 Oct 25 21:05 rootd
-rwxrwxr-x 1 wshi wshi 76608 Oct 25 21:05 rootn.exe
-rwxr-xr-x 1 wshi wshi 821 Oct 25 21:05 roots
-rwxrwxr-x 1 wshi wshi 78504 Oct 25 21:05 roots.exe
-rw-rw-r-- 1 wshi wshi 3834 Oct 25 20:36 setxrd.csh
-rwxrwxr-x 1 wshi wshi 3046 Oct 25 20:36 setxrd.sh
-rwxrwxr-x 1 wshi wshi 77112 Oct 25 21:05 ssh2rpd
-rw-rw-r-- 1 wshi wshi 6058 Oct 25 20:36 thisroot.csh
-rw-rw-r-- 1 wshi wshi 4335 Oct 25 20:36 thisroot.sh
-rwxrwxr-x 1 wshi wshi 80736 Oct 25 21:05 xpdtest
[wshi@login5.summit bin]$ vi thisroot.sh
[wshi@login5.summit bin]$ vi thisroot.sh
[wshi@login5.summit bin]$ echo $ROOTSYS
/ccs/home/wshi/MaCh3/root
I also tried a separate install of v5-34-00-patches:
git clone -b v5-34-00-patches http://root.cern.ch/git/root.git v5-34-00-patches
cd v5-34-00-patches
./configure --enable-soversion --enable-minuit2 --enable-roofit --enable-python --disable-x11 --disable-mysql
make
But I am seeing the same error,
[wshi@login4.summit testROOT]$ root -l
-bash: root: command not found
[wshi@login4.summit testROOT]$ echo $ROOTSYS
/ccs/home/wshi/testROOT/v5-34-00-patches
No, it doesn’t, that’s what I posted two threads above
[wshi@login1.summit bin]$ root.exe -l
Error in <UnknownClass::ReadFile>: no file name specified
Error in <UnknownClass::ReadFile>: no file name specified
Error: cannot open file "iostream" (tmpfile):2:
*** Interpreter error recovered ***
Error in <TEnv::ReadFile>: no file name specified
Error in <TEnv::ReadFile>: no file name specified
Error in <TUnixSystem::DynamicPathName>: libMathCore[.so | .dll | .dylib | .sl | .dl | .a] does not exist in .:./lib:
*** Break *** segmentation violation
Error in <TUnixSystem::StackTrace> script ./etc/gdb-backtrace.sh is missing
Hmm not sure what’s going on then for 5.34/38 (or patches).
Did you install the dependencies beforehand? Dependencies - ROOT
Did you get any error messages while compiling?
You can post the logs here, using this command:
./configure --enable-soversion --all > configure.out.txt 2>&1
make > make.out.txt 2>&1
Oh, if “make” leads to an error, then it is normal that you do not get any “root” executable. So it does not compile.
(Use always “make” instead of “make -j4” at the end to verify a correct compilation.)
I see two errors before:
make: g77: Command not found
autoconf/config.guess: unable to guess system type
but maybe the problem comes from the fact that you are using g++ v8 instead of v7 as I suggested above.
Try installing locally g+±7 and gcc-7 and try again using this configure step: --with-cxx=g++-7 --with-cc=gcc-7 --with-ld=g++-7
Hi, on the cluster there is a gcc7 vailavle, I did this
module load gcc/7.5.0
And then the version shows its correctly loaded,
[wshi@login5.summit v5-34-00-patches]$ gcc --version
gcc (GCC) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[wshi@login5.summit v5-34-00-patches]$ g++ --version
g++ (GCC) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
But when do the configure, it complains no C compiler gcc-7, I don’t understand:
[wshi@login5.summit v5-34-00-patches]$ ./configure --with-cxx=g++-7 --with-cc=gcc-7 --with-ld=g++-7
Checking for source directory ... /ccs/home/wshi/testROOT/v5-34-00-patches
Configuring for linuxppc64gcc
Checking for GNU Make version >= 3.80 ... ok
Checking for C compiler ... no C compiler gcc-7 found
configure: C compiler MUST be installed
See http://root.cern.ch/drupal/content/build-prerequisites