root-project / root

The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
https://root.cern
Other
2.66k stars 1.26k forks source link

Cannot compile ROOT master with Ubuntu 24.10 with gcc 14 (Ubuntu 14.2.0-4ubuntu2) #16654

Open TomasDado opened 1 day ago

TomasDado commented 1 day ago

Check duplicate issues.

Description

Building from source with:

cmake -Droofit_multiprocess=ON -DCMAKE_INSTALL_PREFIX=../root_install/ ../root_src/
cmake --build . --target install -j6

Results in

CMake Error at /home/tomas/ROOT/build/TBB-prefix/src/TBB-stamp/TBB-build-Release.cmake:37 (message):
  Command failed: 2

   '/usr/bin/cmake' '--build' '.'

  See also

    /home/tomas/ROOT/build/TBB-prefix/src/TBB-stamp/TBB-build-*.log

-- stdout output is:
[  3%] Building CXX object src/tbb/CMakeFiles/tbb.dir/address_waiter.cpp.o

-- stderr output is:
gmake[4]: *** read jobs pipe: Bad file descriptor.  Stop.
gmake[4]: *** Waiting for unfinished jobs....
gmake[5]: *** read jobs pipe: Bad file descriptor.  Stop.
gmake[5]: *** Waiting for unfinished jobs....
In file included from /usr/include/c++/14/atomic:50,
                 from /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/../../include/oneapi/tbb/detail/_utils.h:22,
                 from /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/address_waiter.cpp:17:
In member function ‘void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]’,
    inlined from ‘void std::atomic<bool>::store(bool, std::memory_order)’ at /usr/include/c++/14/atomic:109:20,
    inlined from ‘void tbb::detail::r1::concurrent_monitor_base<Context>::abort_all_relaxed() [with Context = tbb::detail::r1::address_context]’ at /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/concurrent_monitor.h:430:53,
    inlined from ‘void tbb::detail::r1::concurrent_monitor_base<Context>::abort_all() [with Context = tbb::detail::r1::address_context]’ at /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/concurrent_monitor.h:413:26,
    inlined from ‘void tbb::detail::r1::concurrent_monitor_base<Context>::destroy() [with Context = tbb::detail::r1::address_context]’ at /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/concurrent_monitor.h:446:24,
    inlined from ‘void tbb::detail::r1::clear_address_waiter_table()’ at /home/tomas/ROOT/build/TBB-prefix/src/TBB/src/tbb/address_waiter.cpp:60:40:
/usr/include/c++/14/bits/atomic_base.h:477:25: warning: ‘void __atomic_store_1(volatile void*, unsigned char, int)’ writing 1 byte into a region of size 0 overflows the destination [-Wstringop-overflow=]
  477 |         __atomic_store_n(&_M_i, __i, int(__m));
      |         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In function ‘void tbb::detail::r1::clear_address_waiter_table()’:
cc1plus: note: destination object is likely at address zero
gmake[4]: *** [CMakeFiles/Makefile2:134: src/tbb/CMakeFiles/tbb.dir/all] Error 2
gmake[3]: *** [Makefile:156: all] Error 2

Reproducer

See above

ROOT version

ROOT master (October 11, 9 am CERN time), commit hash: 9f8c9ca67224c283652d5db45b81e66cb6aad8a9

Installation method

build from source

Operating system

Ubuntu 24.10

Additional context

No response

guitargeek commented 1 day ago

The builtin tbb version is 2021.9, maybe that's too old for the newest Ubuntu?

Can you install tbb on the system and build root with builtin_tbb=OFF?

TomasDado commented 1 day ago

Hi, Indeed, updating to the latest TBB solved that issue, thanks! Just to add, I also had to disable: clad, xrootd and davix to make the code compile.

guitargeek commented 1 day ago

Thanks for the report! Maybe we should consider updating the builtin TBB version, so that other people won't run into the same issue.

dpiparo commented 11 hours ago

Hi @TomasDado , thanks for the report. We started integrating Ubuntu 24.10 (#16611) and confirm that with system packages the compilation is successful, even if some debugging is still needed for a few tests - you should be able to use xrootd and davix from the system. We'll come up with a solution for clad and the builtins soon.