Looking at this output, it seems that at “$42” the “rs” has a proper value in “fLong” (“fShort” is empty), but then, several lines below, inside of “gSystem->DirName(rs)”, at “233” the “TString::GetShortPointer” is called. It seems that the “TString::IsLong” at "216 misbehaved.
@Axel / @pcanal Can it be that the problem originates in “R__BYTESWAP”? Is something missing in “core/base/inc/RConfig.h” for the “linuxppc64gcc” target?
@weishi A desperate trial …start from scratch again (in a different directory so that you do not destroy your current setup), and before running “./configure”, modify “core/base/inc/RConfig.h” adding one line inside (before the line 327 with “R__ppc64”):
This desperate trial works! (with ./configure --disable-unuran --disable-vc --enable-soversion --build=debug & make) I can open root and browse root files.
For our analysis though, we need to add a few more options (--enable-minuit2 --enable-roofit --enable-python --disable-x11 --disable-mysql). With this:
I can’t see the root binary built unfortunately. Does any of the extra option conflict with --disable-unuran --disable-vc?
PS. With these options root binary can be built: ./configure --disable-unuran --disable-vc --enable-soversion --build=debug --enable-minuit2 --enable-roofit
Can you post the output of: : | gcc -dM -E -x c - | grep -i endian
If you want the “--enable-python” feature, you need to have the “python” executable and its corresponding “python-devel” package installed.
If “python --version” says you have no “python” executable, try. e.g.: ln -sf /usr/bin/python2 ${HOME}/bin/python
You may then also need to install the “python2-devel” package, of course,
Note: I do not know how good or bad the support for a modern “python3” is.
BTW. Use “--build=debug” only for debugging purposes (your “production” version should be built without it). Also, I think, “--disable-x11 --disable-mysql” should not generate any problems (in this case, attach both “*.out.txt” files for inspection).
You can try to build and test ROOT with the first three (forget “*anaconda*”) in separate directories.
Note: you may need to use the same compiler version that was used to build these “python” distributions (with new C++17 compilers, use “./configure --enable-cxx11 ...” or “./configure --enable-cxx14 ...”).
[wshi@login1.summit ~]$ gcc --version
gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 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@login1.summit ~]$ cc --version
IBM XL C/C++ for Linux, V16.1.1 (5725-C73, 5765-J13)
Version: 16.01.0001.0010
[wshi@login1.summit ~]$ g++ --version
g++ (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 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@login1.summit ~]$ c++ --version
c++ (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 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@login1.summit ~]$ gfortran --version
GNU Fortran (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 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.
So, “cc --version” is a bit worrying.
Quite sometimes, software unconditionally calls “cc” (“c++”), expecting that it is the same as “gcc” (“g++”).
So, “cc” (“c++”) should be a symbolic link to “gcc” (“g++”).
Maybe you could try to talk to your system administrators.
Well, try (it returns “cc” for me): root-config --cc
It means that ROOT considers “gcc” to be the C compiler.
However, other software which uses ROOT libraries often defaults to “cc” (I’ve had it many times).
I would ask administrators to make a symbolic link from “gcc” to “cc” (there already exists the link from “g++” to “c++”).
When writing my own makefiles, I always use: CC=$(shell root-config --cc) CXX=$(shell root-config --cxx)
When running “./configure”, the first several lines will tell you which C, C++, and F77 compilers it will try to use.
BTW. @pcanal committed the fix. Try to get the newest source code and build it from scratch (just to make sure it works fine).