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

clang driver crashes in Debug mode for powerpc when given full triple #64194

Open
Long5hot opened this issue Jul 28, 2023 · 1 comment
Open
Labels
clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@Long5hot
Copy link
Contributor

Long5hot commented Jul 28, 2023

Compiling with :
clang -target powerpc64-unknown-unknown-gnu -mabi=elfv2 test.c

It should just give as release binary gives
/usr/bin/ld: unrecognised emulation mode: elf64ppc Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe clang: error: linker command failed with exit code 1 (use -v to see invocation)

But instead it crashes with following stack trace..

unsupported architecture
UNREACHABLE executed at /home/kishan/llvm/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp:132!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /home/kishan/llvm/clang_Official/debugBuild/bin//clang -target powerpc64-unknown-unknown-gnu -mabi=elfv2 test.c
1.      Compilation construction
2.      Building compilation jobs
3.      Building compilation jobs
 #0 0x000055c48678cbad llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/kishan/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:11
 #1 0x000055c48678d04b PrintStackTraceSignalHandler(void*) /home/kishan/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:675:1
 #2 0x000055c48678b306 llvm::sys::RunSignalHandlers() /home/kishan/llvm/llvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x000055c48678d805 SignalHandler(int) /home/kishan/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007fd33b442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007fd33b496a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007fd33b496a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00007fd33b496a7c pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00007fd33b442476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007fd33b4287f3 abort ./stdlib/abort.c:81:7
#10 0x000055c4866cb530 llvm::install_out_of_memory_new_handler() /home/kishan/llvm/llvm-project/llvm/lib/Support/ErrorHandling.cpp:193:0
#11 0x000055c487655a79 (/home/kishan/llvm/clang_Official/debugBuild/bin//clang+0x4f4da79)
#12 0x000055c48762a5b7 clang::driver::tools::gnutools::Linker::ConstructJob(clang::driver::Compilation&, clang::driver::JobAction const&, clang::driver::InputInfo const&, llvm::SmallVector<clang::driver::InputInfo, 4u> const&, llvm::opt::ArgList const&, char const*) const /home/kishan/llvm/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp:471:44
#13 0x000055c4875263d3 clang::driver::Driver::BuildJobsForActionNoCache(clang::driver::Compilation&, clang::driver::Action const*, clang::driver::ToolChain const*, llvm::StringRef, bool, bool, char const*, std::map<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::SmallVector<clang::driver::InputInfo, 4u>, std::less<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::pair<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const, llvm::SmallVector<clang::driver::InputInfo, 4u>>>>&, clang::driver::Action::OffloadKind) const /home/kishan/llvm/llvm-project/clang/lib/Driver/Driver.cpp:5633:7
#14 0x000055c487524760 clang::driver::Driver::BuildJobsForAction(clang::driver::Compilation&, clang::driver::Action const*, clang::driver::ToolChain const*, llvm::StringRef, bool, bool, char const*, std::map<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::SmallVector<clang::driver::InputInfo, 4u>, std::less<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::pair<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const, llvm::SmallVector<clang::driver::InputInfo, 4u>>>>&, clang::driver::Action::OffloadKind) const /home/kishan/llvm/llvm-project/clang/lib/Driver/Driver.cpp:5324:3
#15 0x000055c48751adc2 clang::driver::Driver::BuildJobs(clang::driver::Compilation&) const /home/kishan/llvm/llvm-project/clang/lib/Driver/Driver.cpp:4859:5
#16 0x000055c48751638f clang::driver::Driver::BuildCompilation(llvm::ArrayRef<char const*>) /home/kishan/llvm/llvm-project/clang/lib/Driver/Driver.cpp:1508:10
#17 0x000055c483f3631e clang_main(int, char**, llvm::ToolContext const&) /home/kishan/llvm/llvm-project/clang/tools/driver/driver.cpp:512:44
#18 0x000055c483f692cd main /home/kishan/llvm/clang_Official/debugBuild/tools/clang/tools/driver/clang-driver.cpp:15:3
#19 0x00007fd33b429d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#20 0x00007fd33b429e40 call_init ./csu/../csu/libc-start.c:128:20
#21 0x00007fd33b429e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#22 0x000055c483f353c5 _start (/home/kishan/llvm/clang_Official/debugBuild/bin//clang+0x182d3c5)
Aborted (core dumped)

The reason is, in triple when we give unknown as OS type it selects hurd instead of linux or Host OS.

@EugeneZelenko EugeneZelenko added clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' crash Prefer [crash-on-valid] or [crash-on-invalid] and removed new issue labels Jul 28, 2023
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 28, 2023

@llvm/issue-subscribers-clang-driver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

3 participants