Issue 130364
Summary [Emscripten][Clang] wasm-ld crash
Labels clang
Assignees
Reporter miloszmaki
    Trying to build a C++ project with Emscripten to a WASM, but linker crashes with the following stack dump:
```
0.      Program arguments: /home/user1/emsdk/upstream/bin/wasm-ld @/tmp/emscripten_0aer_qq7.rsp.utf-8
1.      Running pass "cgscc(function-attrs)" on module "ld-temp.o"
 #0 0x0000574add0e7b88 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1046b88)
 #1 0x0000574add0e4eee llvm::sys::RunSignalHandlers() (/home/user1/emsdk/upstream/bin/wasm-ld+0x1043eee)
 #2 0x0000574add0e877f SignalHandler(int) Signals.cpp:0:0
 #3 0x0000724181045330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x0000574ade78047c checkFunctionMemoryAccess(llvm::Function&, bool, llvm::AAResults&, llvm::SmallSetVector<llvm::Function*, 8u> const&) (.llvm.10950425614668631022) FunctionAttrs.cpp:0:0
 #5 0x0000574ade7818ea llvm::SmallSet<llvm::Function*, 8u, std::__2::less<llvm::Function*>> deriveAttrsInPostOrder<llvm::PostOrderFunctionAttrsPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)::$_0&>(llvm::ArrayRef<llvm::Function*>, llvm::PostOrderFunctionAttrsPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)::$_0&, bool) FunctionAttrs.cpp:0:0
 #6 0x0000574ade780f4a llvm::PostOrderFunctionAttrsPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/user1/emsdk/upstream/bin/wasm-ld+0x26dff4a)
 #7 0x0000574ade0178ad llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PostOrderFunctionAttrsPass, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) PassBuilder.cpp:0:0
 #8 0x0000574adf37e11d llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/user1/emsdk/upstream/bin/wasm-ld+0x32dd11d)
 #9 0x0000574addff432d llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilder.cpp:0:0
#10 0x0000574adfc3af4a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/user1/emsdk/upstream/bin/wasm-ld+0x3b99f4a)
#11 0x0000574addf477e6 llvm::lto::opt(llvm::lto::Config const&, llvm::TargetMachine*, unsigned int, llvm::Module&, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*, std::__2::vector<unsigned char, std::__2::allocator<unsigned char>> const&) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1ea67e6)
#12 0x0000574addf49c73 llvm::lto::backend(llvm::lto::Config const&, std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1ea8c73)
#13 0x0000574addf334df llvm::lto::LTO::runRegularLTO(std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1e924df)
#14 0x0000574addf3275a llvm::lto::LTO::run(std::__2::function<llvm::Expected<std::__2::unique_ptr<llvm::CachedFileStream, std::__2::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, llvm::FileCache) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1e9175a)
#15 0x0000574add5956ed lld::wasm::BitcodeCompiler::compile() (/home/user1/emsdk/upstream/bin/wasm-ld+0x14f46ed)
#16 0x0000574add598e54 lld::wasm::SymbolTable::compileBitcodeFiles() (/home/user1/emsdk/upstream/bin/wasm-ld+0x14f7e54)
#17 0x0000574add57f23c lld::wasm::(anonymous namespace)::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) Driver.cpp:0:0
#18 0x0000574add579228 lld::wasm::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (/home/user1/emsdk/upstream/bin/wasm-ld+0x14d8228)
#19 0x0000574add0eabe0 lld::unsafeLldMain(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, llvm::ArrayRef<lld::DriverDef>, bool) (/home/user1/emsdk/upstream/bin/wasm-ld+0x1049be0)
#20 0x0000574add02a981 lld_main(int, char**, llvm::ToolContext const&) (/home/user1/emsdk/upstream/bin/wasm-ld+0xf89981)
#21 0x0000574add02b374 main (/home/user1/emsdk/upstream/bin/wasm-ld+0xf8a374)
#22 0x000072418102a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#23 0x000072418102a28b call_init ./csu/../csu/libc-start.c:128:20
#24 0x000072418102a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#25 0x0000574adcf9786a _start (/home/user1/emsdk/upstream/bin/wasm-ld+0xef686a)
em++: error: '/home/user1/emsdk/upstream/bin/wasm-ld @/tmp/emscripten_0aer_qq7.rsp.utf-8' failed (received SIGSEGV (-11))
```
I'm using:
```
Ubuntu clang version 18.1.8 (++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```
and Emscripten v3.1.74
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to