Install Root v5.34.34

I don’t know if this will help, but I recently installed 5.34/38 on Ubuntu 22.04, by using:

./configure --with-cxx=g++-7 --with-cc=gcc-7 --with-ld=g++-7 --prefix=/opt/root/root-5.34.38-install --disable-builtin-afterimage --disable-asimage

and by hacking/commenting a couple of lines in the file misc/memstat/src/TMemStatHook.cxx that were giving errors.

(I had to install g++-7 by temporarily enabling the apt source list of focal instead of jammy)

Hello, 5.34/38 works for us. Thanks!

Wei

You’d better take the head of the v5-34-00-patches branch.

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

Are these understood for this version?

Wei

v5-34-00-patches instead of 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: