Install Root v5.34.34

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

Weird…

Does it work if you call root.exe ?

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 and do you get exactly the same error with root.exe when comparing with 5.34/38 and 5.34/34 and 5.34-00-patches?

Yes, exactly the same error as above for 5.34/38 and 5.34-00-patches, I can’t get 5.34/34 installed.

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

See also Error in installing root 5.34.05

This is a cluster at OakRidge. I don’t see any error from the config step. compile shows a cpuid error. See logs:

configure.out.txt (7.2 KB)
make.out.txt (681.3 KB)

If use the way we normally config in above thread, there is no such error.

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

Remove the --with-cxx and --with-cc flags, as you have already loaded them as default.

So I loaded gcc7, both errors are still there.

See attached log.
configure.out.txt (7.2 KB)
make.out.txt (655.7 KB)

Do you think the root executable is not there due to these two errors?
Or, should I try even older g++/gcc?

I can only locate this g77 piece in the ROOT makefile

ifeq ($(GCC_MAJOR),3)
NOUNDEF      := -Wl,--no-undefined
LDFLAGS      := $(filter-out $(NOUNDEF),$(LDFLAGS))
ifneq ($(GCC_MINOR),0)
ifeq ($(F77),g77)
LIBFRTBEGIN  := $(shell $(F77) -print-file-name=libfrtbegin.a)
F77LIBS      := $(LIBFRTBEGIN) $(F77LIBS)
endif
endif
endif
ifeq ($(GCC_MAJOR),4)
ifeq ($(F77),g77)
LIBFRTBEGIN  := $(shell $(F77) -print-file-name=libfrtbegin.a)
F77LIBS      := $(LIBFRTBEGIN) $(F77LIBS)
endif
endif

Try to add: --disable-unruan --disable-vc

With these options, I do see the root binary appears

[wshi@login1.summit bin]$ ll
total 2100
-rwxrwxr-x 1 wshi wshi  85736 Oct 29 17:45 genmap
-rwxrwxr-x 1 wshi wshi    176 Oct 29 17:17 genreflex
-rwxrwxr-x 1 wshi wshi     92 Oct 29 17:17 genreflex-rootcint
-rwxrwxr-x 1 wshi wshi  78400 Oct 29 17:45 hadd
-rwxr-xr-x 1 wshi wshi   8447 Oct 29 17:17 memprobe
-rwxrwxr-x 1 wshi wshi 160496 Oct 29 17:45 pq2
-rwxrwxr-x 1 wshi wshi 237976 Oct 29 17:45 proofd
-rwxr-xr-x 1 wshi wshi   2868 Oct 29 17:45 proofserv
-rwxrwxr-x 1 wshi wshi  78736 Oct 29 17:45 proofserv.exe
-rwxrwxr-x 1 wshi wshi  80424 Oct 29 17:20 rlibmap
-rwxrwxr-x 1 wshi wshi  83232 Oct 29 17:18 rmkdepend
-rwxrwxr-x 1 wshi wshi  84512 Oct 29 17:45 root
-rwxr-xr-x 1 wshi wshi  27200 Oct 29 17:17 root-config
-rwxrwxr-x 1 wshi wshi  76544 Oct 29 17:45 root.exe
-rwxrwxr-x 1 wshi wshi 387936 Oct 29 17:20 rootcint
-rwxrwxr-x 1 wshi wshi 306832 Oct 29 17:45 rootd
-rwxrwxr-x 1 wshi wshi  76544 Oct 29 17:45 rootn.exe
-rwxr-xr-x 1 wshi wshi    821 Oct 29 17:45 roots
-rwxrwxr-x 1 wshi wshi  78440 Oct 29 17:45 roots.exe
-rw-rw-r-- 1 wshi wshi   3834 Oct 29 17:17 setxrd.csh
-rwxrwxr-x 1 wshi wshi   3046 Oct 29 17:17 setxrd.sh
-rwxrwxr-x 1 wshi wshi  77048 Oct 29 17:45 ssh2rpd
-rw-rw-r-- 1 wshi wshi   6058 Oct 29 17:17 thisroot.csh
-rw-rw-r-- 1 wshi wshi   4335 Oct 29 17:17 thisroot.sh
-rwxrwxr-x 1 wshi wshi  80664 Oct 29 17:45 xpdtest
[wshi@login1.summit bin]$ pwd
/ccs/home/wshi/ROOT/v5-34-00-patches/bin

This error disappeared: autoconf/config.guess: unable to guess system type
this error persists: make: g77: Command not found

When open a file, it shows similar error

[wshi@login1.summit bin]$ source /ccs/home/wshi/ROOT/v5-34-00-patches/bin/thisroot.sh 
...
[wshi@login1.summit ~]$ root -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 /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib:/ccs/home/wshi/ROOT/v5-34-00-patches/lib:/sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-7.5.0/spectrum-mpi-10.4.0.3-20210112-puowkoejepfjtm22sk2dxb6eeup5w447/lib:/sw/summit/gcc/7.5.0-2/lib64:/sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-8.3.1/darshan-runtime-3.3.0-mu6tnxlhxfplrq3srkkgi5dvly6wenwy/lib:/opt/ibm/spectrumcomputing/lsf/10.1.0.11/linux3.10-glibc2.17-ppc64le-csm/lib:.:./lib:

 *** Break *** segmentation violation
Error in <TUnixSystem::StackTrace> script ./etc/gdb-backtrace.sh is missing

Attached are logs.
configure.out.txt (6.8 KB)
make.out.txt (2.1 MB)

I never met the “no file name specified” error, but I assume you do have:
ls -al /ccs/home/wshi/ROOT/v5-34-00-patches/lib/libMathCore*

BTW. Can it be that you have a “rootlogon.C” somewhere? Try: root -n -l

Some more ideas:

  • Did you ‘make clean’ before rebulding?
  • Did you try with make install to see if there is any difference? Starting root v5.13.01

Or:

Here is the output of libMathCore, it’s there:

[wshi@login4.summit v5-34-00-patches]$ ls -al /ccs/home/wshi/ROOT/v5-34-00-patches/lib/libMathCore*
-rw-rw-r-- 1 wshi wshi    6437 Oct 29 17:45 /ccs/home/wshi/ROOT/v5-34-00-patches/lib/libMathCore.rootmap
-rwxrwxr-x 1 wshi wshi 3489368 Oct 29 17:27 /ccs/home/wshi/ROOT/v5-34-00-patches/lib/libMathCore.so

root -n -l shows basically the same:

[wshi@login4.summit v5-34-00-patches]$ source /ccs/home/wshi/ROOT/v5-34-00-patches/bin/thisroot.sh 
[wshi@login4.summit v5-34-00-patches]$ root -n -l
Error in <UnknownClass::ReadFile>: no file name specified
Error in <UnknownClass::ReadFile>: no file name specified
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 

 *** Break *** segmentation violation

===========================================================
There was a crash (#6 0x00007fff97dfb0b4 in SigHandler(ESignals) () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so).
This is the entire stack trace of all threads:
===========================================================
#0  0x00007fff96cb9c34 in waitpid () from /lib64/power9/libc.so.6
#1  0x00007fff96c24340 in do_system () from /lib64/power9/libc.so.6
#2  0x00007fff96df8ec8 in system_compat () from /lib64/power9/libpthread.so.0
#3  0x00007fff97df38e4 in TUnixSystem::Exec(char const*) () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so
#4  0x00007fff97df8988 in TUnixSystem::StackTrace() () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so
#5  0x00007fff97dfaf70 in TUnixSystem::DispatchSignals(ESignals) () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so
#6  0x00007fff97dfb0b4 in SigHandler(ESignals) () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so
#7  0x00007fff97df1d60 in sighandler(int) () from /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/lib/libCore.so
#8  <signal handler called>
#9  0x0002206e69207470 in ?? ()
#10 0x0002206e69207473 in ?? ()
===========================================================


The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#9  0x0002206e69207470 in ?? ()
#10 0x0002206e69207473 in ?? ()
===========================================================

Execute “make distclean” then configure it adding (“gdb” will be more helpful): --enable-soversion --build=debug
Run it using (note “root.exe”): gdb bin/root.exe

To be clear, I did these

module load gcc/7.5.0
make distclean
./configure --disable-unuran --disable-vc --enable-soversion --build=debug
make
gdb bin/root.exe

Here is what it says

(gdb) run
Starting program: /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/bin/root.exe 
Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-101.el8.ppc64le
warning: File "/autofs/nccs-svm1_sw/summit/gcc/7.5.0-2/lib64/libstdc++.so.6.0.24-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
	add-auto-load-safe-path /autofs/nccs-svm1_sw/summit/gcc/7.5.0-2/lib64/libstdc++.so.6.0.24-gdb.py
line to your configuration file "/ccs/home/wshi/.gdbinit".
To completely disable this security protection add
	set auto-load safe-path /
line to your configuration file "/ccs/home/wshi/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
	info "(gdb)Auto-loading safe path"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/power9/libthread_db.so.1".
Error in <UnknownClass::ReadFile>: no file name specified
Error in <UnknownClass::ReadFile>: no file name specified
Error in <TEnv::ReadFile>: no file name specified
Error in <TEnv::ReadFile>: no file name specified
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   5.34/39     12 March 2018   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

ROOT 5.34/39 (@, Oct 30 2022, 13:45:00 on linuxppc64gcc)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
Error in <TUnixSystem::DynamicPathName>: libMathCore[.so | .dll | .dylib | .sl | .dl | .a] does not exist in 
aborting
[Detaching after fork from child process 1343351]

Program received signal SIGABRT, Aborted.
0x00007ffff6413618 in raise () from /lib64/power9/libc.so.6
Missing separate debuginfos, use: yum debuginfo-install libxcrypt-4.1.1-4.el8.ppc64le pcre-8.42-4.el8.ppc64le sssd-client-2.2.3-20.el8.ppc64le xz-libs-5.2.4-3.el8.ppc64le zlib-1.2.11-16.el8_2.ppc64le

Type “where” at the “gdb” prompt (after “root.exe” died).
Maybe @Axel can help then.

Here is the output:

(gdb) where
#0  0x00007ffff6413618 in raise () from /lib64/power9/libc.so.6
#1  0x00007ffff63f3a2c in abort () from /lib64/power9/libc.so.6
#2  0x00007ffff7861a48 in TUnixSystem::Abort (this=0x1005c650) at /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/core/unix/src/TUnixSystem.cxx:2223
#3  0x00007ffff7751eec in DefaultErrorHandler (level=773880864, abort_bool=100, location=0x206c732e207c2062 <error: Cannot access memory at address 0x206c732e207c2062>, 
    msg=0x207c206c642e207c <error: Cannot access memory at address 0x207c206c642e207c>) at /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/core/base/src/TError.cxx:193
#4  0x00007ffff775231c in ErrorHandler (level=<error reading variable: Cannot access memory at address 0x206e69207503>, 
    location=<error reading variable: Cannot access memory at address 0x206e6920750b>, fmt=<error reading variable: Cannot access memory at address 0x206e69207513>, 
    ap=<error reading variable: Cannot access memory at address 0x206e6920751b>) at /autofs/nccs-svm1_home1/wshi/ROOT/v5-34-00-patches/core/base/src/TError.cxx:245
Backtrace stopped: previous frame inner to this frame (corrupt stack?)