Skip to content
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

ROOT segfaults on riscv64 #14509

Closed
1 task done
hack3ric opened this issue Jan 31, 2024 · 3 comments
Closed
1 task done

ROOT segfaults on riscv64 #14509

hack3ric opened this issue Jan 31, 2024 · 3 comments

Comments

@hack3ric
Copy link

Check duplicate issues.

  • Checked for duplicates

Description

When trying to build ROOT on Arch Linux RISC-V, the compile result always segfaults and is unable to perform any tasks.

Reproducer

  1. Use PKGBUILD and other source from https://gitlab.archlinux.org/archlinux/packaging/packages/root/-/tree/6.30.02-2?ref_type=tags
  2. Apply RISC-V patch here
  3. On a riscv64 machine with Arch Linux RISC-V, makepkg -s
  4. Fails on [100%] Generating tutorials/hsimple.root
  5. Manually calling src/build/bin/root.exe will result in segfault too

ROOT version

6.30.02

Installation method

build from source

Operating system

Arch Linux RISC-V

Additional context

Stack trace:

#0  0x0000003ff3f3c04c in wait4 () from /usr/lib/libc.so.6
#1  0x0000003ff3ecfeac in ?? () from /usr/lib/libc.so.6
#2  0x0000003ff44daf00 in TUnixSystem::StackTrace() () from /home/hacker/archrv/root/src/build/lib/libCore.so
#3  0x0000003ff44d8040 in TUnixSystem::DispatchSignals(ESignals) () from /home/hacker/archrv/root/src/build/lib/libCore.so
#4  <signal handler called>
#5  0x0000003ff091def4 in llvm::jitlink::ELFLinkGraphBuilder_riscv<llvm::object::ELFType<(llvm::support::endianness)1, true> >::addRelocations() () from /home/hacker/archrv/root/src/build/lib/libCling.so
#6  0x0000003ff091eb50 in llvm::jitlink::createLinkGraphFromELFObject_riscv(llvm::MemoryBufferRef) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#7  0x0000003ff0915cd4 in llvm::jitlink::createLinkGraphFromELFObject(llvm::MemoryBufferRef) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#8  0x0000003ff08fd652 in llvm::jitlink::createLinkGraphFromObject(llvm::MemoryBufferRef) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#9  0x0000003ff08a3a64 in llvm::orc::ObjectLinkingLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, std::unique_ptr<llvm::MemoryBuffer, std::default_dele
te<llvm::MemoryBuffer> >) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#10 0x0000003ff08ab1e6 in llvm::orc::ObjectTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, std::unique_ptr<llvm::MemoryBuffer, std::default_de
lete<llvm::MemoryBuffer> >) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#11 0x0000003ff0890cb2 in llvm::orc::IRCompileLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/hacker/archrv/
root/src/build/lib/libCling.so
#12 0x0000003ff08ce110 in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/hacker/archr
v/root/src/build/lib/libCling.so
#13 0x0000003ff08ce110 in llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >, llvm::orc::ThreadSafeModule) () from /home/hacker/archr
v/root/src/build/lib/libCling.so
#14 0x0000003ff08959b0 in llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >) () from /home/hacker/archrv/root/
src/build/lib/libCling.so
#15 0x0000003ff08877f6 in llvm::orc::MaterializationTask::run() () from /home/hacker/archrv/root/src/build/lib/libCling.so
#16 0x0000003ff0876886 in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(v
oid*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >&) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#17 0x0000003ff0887a7c in llvm::orc::ExecutionSession::dispatchOutstandingMUs() () from /home/hacker/archrv/root/src/build/lib/libCling.so
#18 0x0000003ff088db50 in llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::
function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> >, llvm::DenseMapInfo<llvm::orc::JITDylib*>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, ll
vm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> > > > const&)>) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#19 0x0000003ff088e09a in llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#20 0x0000003ff087f864 in llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, llvm::Error) () from /home/hacker/archrv/root/src/build/
lib/libCling.so
#21 0x0000003ff0887d20 in llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlag
s> > > const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr>, llvm::detai
l::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> >, llvm::Dense
MapInfo<llvm::orc::JITDylib*>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> > > > const&)>) () from /home/hacker/archrv/root/src/build/lib/libCl
ing.so
#22 0x0000003ff088863c in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::or
c::SymbolLookupSet const&, llvm::orc::LookupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> >, llvm::DenseMap
Info<llvm::orc::JITDylib*>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> > > > const&)>) () from /home/hacker/archrv/root/src/build/lib/libCling
.so
#23 0x0000003ff08887e0 in llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::or
c::SymbolStringPtr, llvm::orc::SymbolState) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#24 0x0000003ff0899134 in llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::orc::SymbolStringPtr) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#25 0x0000003fef83c596 in cling::IncrementalJIT::getSymbolAddress(llvm::StringRef, bool) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#26 0x0000003fef83fff0 in cling::IncrementalJIT::addOrReplaceDefinition(llvm::StringRef, unsigned long) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#27 0x0000003fef7c9682 in cling::Interpreter::Initialize(bool, bool, llvm::SmallVectorImpl<llvm::StringRef>&) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#28 0x0000003fef7ccd88 in cling::Interpreter::Interpreter(int, char const* const*, char const*, std::vector<std::shared_ptr<clang::ModuleFileExtension>, std::allocator<std::shared_ptr<clang::ModuleFileExtension> > > const&, void*, bool, c
ling::Interpreter const*) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#29 0x0000003fef7377b2 in TCling::TCling(char const*, char const*, char const* const*, void*) () from /home/hacker/archrv/root/src/build/lib/libCling.so
#30 0x0000003fef738aec in CreateInterpreter () from /home/hacker/archrv/root/src/build/lib/libCling.so
#31 0x0000003ff43fb9e6 in TROOT::InitInterpreter() () from /home/hacker/archrv/root/src/build/lib/libCore.so
#32 0x0000003ff43fbdfc in ROOT::Internal::GetROOT2() () from /home/hacker/archrv/root/src/build/lib/libCore.so
#33 0x0000003ff43b8784 in TApplication::TApplication(char const*, int*, char**, void*, int) () from /home/hacker/archrv/root/src/build/lib/libCore.so
#34 0x0000003ff4686bbe in TRint::TRint(char const*, int*, char**, void*, int, bool, bool) () from /home/hacker/archrv/root/src/build/lib/libRint.so
#35 0x0000002ab3d5bf32 in main ()
@hack3ric hack3ric added the bug label Jan 31, 2024
@ferdymercury
Copy link
Collaborator

Thanks for the report. Could you also try with 6.30.04 to see if something changes?

@ferdymercury
Copy link
Collaborator

@hahnjo might be of help here

@hahnjo
Copy link
Member

hahnjo commented Feb 1, 2024

Yes, this is correct: As explained in #12351, we didn't backport the necessary patches to LLVM 13 as found in ROOT 6.30.{02,04}. They are automatically available after the upgrade to LLVM 16 which doesn't have a ROOT release yet.

@hahnjo hahnjo closed this as completed Feb 1, 2024
@hahnjo hahnjo added this to Issues in Fixed in 6.32.00 via automation Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

No branches or pull requests

3 participants