Failed to compile root newer than v6.20/04: "fatal error: ROOT/RLogger.hxx: No such file or directory"

With the above-mentioned (explicit) settings, f597803 of the v6-22-00-patches built fine (make -j10):

   ------------------------------------------------------------------
  | Welcome to ROOT 6.21/03                        https://root.cern |
  | (c) 1995-2020, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Jun 03 2020, 08:35:00                 |
  | From heads/v6-22-00-patches@v6-21-02-62-gf597803869              |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

But a (also parallel) build of 46e8785 in the v6-20-00-patches failed, saying…

/usr/bin/ld: CMakeFiles/NetxNG.dir/src/TNetXNGSystem.cxx.o:(.data.rel.ro._ZTV13TNetXNGSystem[_ZTV13TNetXNGSystem]+0x410): undefined reference to `TSystem::GetDirName(char const*)'
collect2: error: ld returned 1 exit status
make[2]: *** [net/netxng/CMakeFiles/NetxNG.dir/build.make:143: lib/libNetxNG.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:23551: net/netxng/CMakeFiles/NetxNG.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Following the failed parallel build I did another make (not parallel, not fresh, i.e. started just after the failure) and got the following:

In module 'std' imported from input_line_1:1:
/usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/bits/unique_ptr.h:207:12: error: 'std::__uniq_ptr_data<RooDataSet, std::default_delete<RooDataSet>, true, true>' has different
      definitions in different modules; defined here
    struct __uniq_ptr_data : __uniq_ptr_impl<_Tp, _Dp>
           ^
/usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/bits/unique_ptr.h:207:12: note: definition in module 'std.condition_variable' is here
Error: /home/furutaka/work/root/root-build-v6-20-00-patches-46e8785/bin/rootcling: compilation failure (/home/furutaka/work/root/root-build-v6-20-00-patches-46e8785/lib/libRooStats1e22a9ec0b_dictUmbrella.h)
make[2]: *** [roofit/roostats/CMakeFiles/G__RooStats.dir/build.make:223: roofit/roostats/G__RooStats.cxx] Error 1
make[1]: *** [CMakeFiles/Makefile2:28391: roofit/roostats/CMakeFiles/G__RooStats.dir/all] Error 2
make: *** [Makefile:172: all] Error 2

Kazuyoshi

Hi, does configuring with -Druntime_cxxmodules=OFF help?

Cheers,
Enrico

Hi @eguiraud! Thanks for your help, but it didn’t… At this moment, I had to avoid cxx1[47]

Kazuyoshi

I meant for the v6.20 patches, as it looks like a problem with modules (@vvassilev or @oshadura might know more).

Thanks for an investigation! I will check now and I will submit fix (I will let you know here)

Hi, @eguiraud!

Sorry, I misunderstood…
At home I did a try to build v6-20-00-patches 80f1451b9695f56df65f606915fc21e10abafdc0 (HEAD -> v6-20-00-patches, origin/v6-20-00-patches) with the flag you suggested, and the build was successful! :slight_smile:

set(gdml       ON CACHE BOOL "")
set(minuit2    ON CACHE BOOL "")
set(python     ON CACHE BOOL "")
set(roofit     ON CACHE BOOL "")
set(gsl_shared ON CACHE BOOL "")
set(vmc        ON CACHE BOOL "")
set(imt       OFF CACHE BOOL "")
set(runtime_cxxmodules OFF CACHE BOOL "")
set(LLVM_ENABLE_DOXYGEN ON CACHE BOOL "")
set(LLVM_ENABLE_SPHINX ON CACHE BOOL "")
set(CMAKE_INSTALL_PREFIX    /usr/local/root CACHE PATH "")
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
1 Like

Hi @furutaka

Let’s start from scratch. There are too many dead ends, and there is no way we can be certain that any of us know what exactly we are talking about. Your report is super important to us, you’re not the only one, but we fail to reproduce the problem. I.e. we really appreciate your help with this.

So:

  • take v6-20-00-patches, the current HEAD, commit hash 80f1451b9695f56df65f606915fc21e10abafdc0. No additional patches or modification, please.
  • configure the way you do; please share how exactly you invoked cmake. Please do not cut anything out. (Note that -Dimt=Off should not be needed anymore.)
  • Please share your CMakeLists.txt by uploading it, instead of quoting from it.
  • Please share the complete build log ... > make.log 2>&1, not just the end. Just upload the log file.

Thanks for your help!
Cheers, Axel.

2 Likes

Hi @Axel.

So I did another build of 80f1451b9695f56df65f606915fc21e10abafdc0. I’ll attach some files (my cmake setting, cmake output, CMakeCache.txt, and the log of make), but in essence:

  • make sure the cloned git repo,
  • Dig a directory and cd into it,
  • cmake -C ../RootBuildOptions.cmake ../root.git (uploaded as RootBuildOptions.txt because the extention .cmake is told not authorized)
  • `script -c “make -j10” make.log (uploaded gzip’ed one)

The build was successful.

Kazuyoshi

20200604_1.txt (17.8 KB) RootBuildOptions.txt (752 Bytes) CMakeCache.txt (137.7 KB) make.log.gz (75.4 KB)

And still another build, the only difference to the previous post/build being runtime_cxxmodules:

--- ../RootBuildOptions.cmake	2020-06-04 08:35:51.996787619 +0900
+++ RootBuildOptions.cmake	2020-06-04 08:51:45.943235079 +0900
@@ -12,7 +12,7 @@
 # https://root-forum.cern.ch/t/fail-to-compile-root-6-20-04-on-fedora-32/38990/2
 #set(imt       OFF CACHE BOOL "")
 
-set(runtime_cxxmodules OFF CACHE BOOL "")
+set(runtime_cxxmodules ON CACHE BOOL "")
 
 set(LLVM_ENABLE_DOXYGEN ON CACHE BOOL "")
 set(LLVM_ENABLE_SPHINX ON CACHE BOOL "")

This build (runtime_cxxmodules ON) ended with Error 2; again attach a few files.

Kazuyoshi

CMakeCache.txt (137.8 KB) make.log.gz (74.1 KB)

Hi Kazuyoshi,

Excellent, thank you! That failure with runtime_cxxmodules=On is tracked here: https://sft.its.cern.ch/jira/browse/ROOT-10701 and was also reported at Issues building with v6.20.04 with GCC 10.1.1

Btw, your initial report on RLogger.hxx is fixed by https://github.com/root-project/root/pull/5775 Thanks for your report!

Cheers, Axel.

1 Like

…and if you find any other issue please open a new topic - it’s much easier for us to work on a dedicated issue per topic, and for everyone to find things back if the original topic’s title still matches what the topic is about in the end :wink:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.