Crash with noexecstack on --target=x86_64-pc-solaris2.11
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
For linux, freebsd, openbsd x64 targets, this works:
```sh
$ printf '%s\n%s' ".intel_syntax noprefix" "test BYTE PTR [rdi], 0x8" | \
clang-21 --target=x86_64-linux-gnu -Wa,--noexecstack -xassembler -c -
$ printf '%s\n%s' ".intel_syntax noprefix" "test BYTE PTR [rdi], 0x8" | \
clang-21 --target=x86_64-unknown-freebsd14 -Wa,--noexecstack -xassembler -c -
$ printf '%s\n%s' ".intel_syntax noprefix" "test BYTE PTR [rdi], 0x8" | \
clang-21 --target=x86_64-unknown-openbsd -Wa,--noexecstack -xassembler -c -
```
For solaris target, this crashes
```sh
$ printf '%s\n%s' ".intel_syntax noprefix" "test BYTE PTR [rdi], 0x8" | \
clang-21 --target=x86_64-pc-solaris2.11 -Wa,--noexecstack -xassembler -c -
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: clang-21 --target=x86_64-pc-solaris2.11 -Wa,--noexecstack -xassembler -c -
#0 0x0000ffffa7ec2d94 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x4532d94)
#1 0x0000ffffa7ec0acc llvm::sys::RunSignalHandlers() (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x4530acc)
#2 0x0000ffffa7dfe890 (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x446e890)
#3 0x0000ffffaf3fe7e8 (linux-vdso.so.1+0x7e8)
#4 0x0000ffffa96ec474 llvm::MCELFStreamer::changeSection(llvm::MCSection*, unsigned int) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x5d5c474)
#5 0x0000ffffa971456c llvm::MCStreamer::switchSection(llvm::MCSection*, unsigned int) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x5d8456c)
#6 0x0000aaaac83e7c38 cc1as_main(llvm::ArrayRef, char const*, void*) (/usr/lib/llvm-21/bin/clang+0x27c38)
#7 0x0000aaaac83df724 (/usr/lib/llvm-21/bin/clang+0x1f724)
#8 0x0000ffffae750fd0 (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d40fd0)
#9 0x0000ffffa7dfe4d8 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x446e4d8)
#10 0x0000ffffae7509ac clang::driver::CC1Command::Execute(llvm::ArrayRef>, std::__cxx11::basic_string, std::allocator>*, bool*) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d409ac)
#11 0x0000ffffae719100 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d09100)
#12 0x0000ffffae7192b4 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl>&, bool) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d092b4)
#13 0x0000ffffae733230 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl>&) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d23230)
#14 0x0000aaaac83deea8 clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-21/bin/clang+0x1eea8)
#15 0x0000aaaac83ec388 main (/usr/lib/llvm-21/bin/clang+0x2c388)
#16 0x0000ffffa3432f1c (/usr/lib/aarch64-linux-gnu/libc.so.6+0x22f1c)
#17 0x0000ffffa343305c __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x2305c)
#18 0x0000aaaac83dd570 _start (/usr/lib/llvm-21/bin/clang+0x1d570)
clang-21: error: clang integrated assembler command failed with exit code 139 (use -v to see invocation)
Ubuntu clang version 21.1.8 (6ubuntu1)
Target: x86_64-pc-solaris2.11
Thread model: posix
InstalledDir: /usr/lib/llvm-21/bin
clang-21: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
Removing `-Wa,--noexecstack` doesn't crash for solaris target.
Contributor guide
Assessment
This issue has not been assessed yet.