-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update ROOT and Cling to LLVM18 #15696
Conversation
Test Results 13 files 13 suites 3d 2h 28m 40s ⏱️ Results for commit a52d34d. ♻️ This comment has been updated with latest results. |
I know this is totally not relevant for you, but I am still wondering: does this allow me to use system clang or are there still downstream patches required? |
Hi Stephan, no we still require downstream patches. Their number gets reduced on every upgrade, you can track the status for LLVM 18 here: https://github.com/root-project/llvm-project/commits/ROOT-llvm18. More importantly, and not yet reflected in |
Thanks for the update! |
Here is the stack trace on Windows:
|
FWIW the current state compiles fine on RISC-V and is at least able to run |
81d5c1b
to
d79963e
Compare
@smuzaffar, @devajithvs and @hahnjo have everything working reasonably with the llvm18 upgrade. Can you check this PR against cmssw? |
@iarspider, could you give us a hand? |
I allow myself to add @aandvalenzuela to perhaps get some help. |
Changes similar to: llvm/llvm-project@8b1771b
Changes similar to: llvm/llvm-project@8b1771b
Matching the change in: - llvm/llvm-project#78463
- Include `StringExtras.h` This is now needed due to: llvm/llvm-project@3ff3af3
In LLVM 18 with incremental extensions enabled, the Preprocessor will never report tok::eof, but tok::annot_repl_input_end instead.
Prevents failures such as: ``` Processing roottest/root/meta/runnamespace.C... Error in cling::MetaProcessor: cannot read from binary input: 'runnamespace.C' ``` This is needed for macros that start with `{` after the rebase
C++20 builds were failing due to the commit: llvm-project/commit/574ee1c02ef73b66c5957cf93888234b0471695f with an error `imported non C++20 importable modules`
This makes them run after the <Platform> library: It provides the __cxa_atexit function, which must not be found in the process.
LLVM now defines multiple Dylibs, and __cxa_atexit is provided in the <Platform> library.
We started seeing an assertion failure in ~FinalizedAlloc when we moved the generators to ProcessSymbols JITDylib: [cling] Move generators to ProcessSymbols JITDylib This ikely changed the destruction order that caused the assertion to trigger.
This fixes the Cling test Driver/E.C.
This applies the upstream changes in commit llvm/llvm-project@9992b38 to a copy of the modulemap from MacOSX14.2.sdk.
This fixes the failing python enum tests like: - `roottest-python-cpp-cpp` - `roottest-python-cmdLineUtils-ROOT_8197` Also remove `R__BYTESWAP` which should not be needed anymore. The leak was fixed with: llvm/llvm-project#78311 This caused our tests to fail as they relied on the previous behavior.
Upstream LLVM now unconditionally uses indirect / PC relative personality encodings since commit llvm/llvm-project@ca65969 This leads to references of DW.ref.__gxx_personality_v0 that cannot be resolved with RuntimeDyld, that we are still using for the moment. As a fix, auto-claim symbols as we are doing for PPC, see upstream commit: llvm/llvm-project@72ea1a7
There are still failures with RuntimeDyld on AArch64 which seem to be solved with JITLink, so make the switch now.
3873f4d
to
a52d34d
Compare
This Pull request:
Rebase
A few relevant LLVM commits that were referenced for the rebase:
Notes
TO DISCUSS/PROPERLY FIX
gtest-roofit-histfactory-test-testHistFactory
.ClingMMapper
#16314tutorial-hist-cumulative
when JITLink is turned on. This works for now, but will need to investigate further on why resource trackers were not destructed in the right order.Changes or fixes:
Checklist:
This PR fixes #