Closed jmcarcell closed 1 month ago
Thank you for your report. I can reproduce the issue, and I think I found the cause of it. I'll submit a fix shortly.
The above commit should fix the issue. ROOT passes both -z defs
and --undefined=ignore-in-object-files
to the linker, which triggered the bug. In this case, -z defs
is redundant, as --undefined=ignore-in-object-files
appears after that and override -z defs
. If you remove -z defs
from the build file, ROOT could be built with the current version of mold.
Thanks for the fix @rui314
I had a look and tried removing -z defs
in the only place I could find it but I still got the same error (here). Alternatively I can just wait for the next version.
Yeah, it's been a month since the last release, and there are a few important bug fixes since then, so it may be a good idea to make another maintenance release.
When compiling ROOT, I get a segmentation fault only when using mold,
ld
,lld
andgold
all work fine, with GCC 13, 14 and Clang 16 and 17. Originally reported in https://github.com/root-project/root/issues/15473 Steps to reproduce:And after waiting some time, errors like this one will appear:
The issue seems to be the
libCling.so
library since I was able to compile fine by changing the linker used only for this target. The command above fails becauserootcling
is linked tolibCling.so
. The corresponding target is added in the CMakeLists.txt here: https://github.com/root-project/root/blob/master/core/metacling/src/CMakeLists.txt#L112.Cling
is built on top of a patched version of LLVM 16 that can be found here: https://github.com/root-project/llvm-project.