ROOT Version: 6.26/05 Platform: Linux Compiler: g++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0
Hello all,
Having built ROOT from source several times now, I am flummoxed that I have been unable to upgrade and build the latest version of ROOT. Moreover, I am attempting to build on two machines with the same parameters above, but they appear to fail at two different points. The difference appears to be that one is able to find a directory associated with R, while the other does not. How I build ROOT follows the latest instructions found here under “Build from source”, but with the following modifications:
Relative to my home directory, I create a directory named ROOT. Inside of it I have root_src, root_build, and root_include.
From inside of ROOT/root_build I issue the commands
while the machine which does find an R directory fails earlier in the build with the output
[ 83%] Built target Rint
[ 83%] Generating G__MathMore.cxx, ../../lib/MathMore.pcm
<<< cling interactive line includer >>>: fatal error: module file '/home/john/ROOT/root_build/lib/Rint.pcm' is out of date and needs to be rebuilt: could not read module signature
<<< cling interactive line includer >>>: note: imported by module 'MathCore' in '/home/john/ROOT/root_build/lib/MathCore.pcm'
Error: Module 'MathCore.pcm' failed to load.
Error: Error loading the default rootcling header files.
gmake[2]: *** [math/mathmore/CMakeFiles/G__MathMore.dir/build.make:142: math/mathmore/G__MathMore.cxx] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:26656: math/mathmore/CMakeFiles/G__MathMore.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
With this second message I tried deleting the lib/*.pcm files as suggested here, but that didn’t work. Nor did deleting and rebuilding the root_build and root_include directories.
Thank you in advance for any help in resolving these build issues!
resolves the issues I have been having on my machine where R was found by cmake. What I am unsure of now though is what @Wile_E_Coyote means when they say
Then execute “make install”, rename the original “<builddir>” (so that the newly installed libraries will NOT find the originals) and try “ldd” on all newly installed libraries.
And how it applies to the steps I am describing above? What would I be renaming? root_build? Does this mean I would temporarily rename root_build to something else, then rename it back after issuing the command
cmake --build . -- install -j$(nproc)
Where would I find the libraries I would need to “ldd”?
This isn’t necessarily caused by the R bindings: the crash is in the generation of module.idx where apparently a memory error happens. Can you (after the build step has stopped with the error) run make VERBOSE=1 and show the output? There will be a call to root which fails; I’d like to see what that is.
@Axel In case I am misunderstanding and you would just like to see the entire output, from the root_build on my other machine I have run the command
make VERBOSE=1 > axel.log 2>&1
and have attached the output here. Here I haven’t done anything with LD_LIBRARY_PATH. axel.txt (491.6 KB)
I had run cp axel.log axel.txt
in order to upload it here.
I should have probably called out that I added the argument -e 'gDebug=7' to the root.exe invocation… I don’t seem to find that in your invocation? That will make the logs way larger btw - if you cannot attach it here, please gzip it and send it to me axel@cern.ch
The only output I got from that was a single line of text: axel.txt (34 Bytes)
I will see if recreating the directories root_build and root_include and then rerunning the above commands changes results, but due to time constraints it will first have to be on the machine where R was found.
EDIT: I have recreated the directories on both machines, but still got the above results.
So now both my machines have found R as they build, it turns out the one which didn’t was missing either Rcpp or RInside.
Having the same configuration on both machines, I then tried removing the pcm extension files as described here. Doing this I was able to complete the builds on both machines and now am able to access ROOT on both of them.