Skip to content

Crash with noexecstack on --target=x86_64-pc-solaris2.11 #202953

Open

Description

@am11

For linux, freebsd, openbsd x64 targets, this works:

$ 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

$ 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*>, 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<void ()>) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x446e4d8)
#10 0x0000ffffae7509ac clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, 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<std::pair<int, clang::driver::Command const*>>&, 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<std::pair<int, clang::driver::Command const*>>&) (/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.

Activity

  1. added
    llvm:mcMachine (object) code
    crashPrefer [crash-on-valid] or [crash-on-invalid]
    and removed on Jun 10, 2026
  2. llvmorg-github-actions commented on Jun 10, 2026

    @llvmorg-github-actions

    @llvm/issue-subscribers-llvm-mc

    Author: Adeel Mujahid (am11)

    Details For linux x64 target, this works:
    $ printf '%s\n%s' ".intel_syntax noprefix" "test BYTE PTR [rdi], 0x8" | \
        clang-21 --target=x86_64-linux-gnu  -Wa,--noexecstack  -xassembler -c -

    For solaris target, this crashes

    $ 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&amp;, 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&lt;char const*&gt;, 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&lt;void ()&gt;) (/usr/lib/llvm-21/bin/../lib/libLLVM.so.21.1+0x446e4d8)
    #<!-- -->10 0x0000ffffae7509ac clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d409ac)
    #<!-- -->11 0x0000ffffae719100 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&amp;, clang::driver::Command const*&amp;, bool) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d09100)
    #<!-- -->12 0x0000ffffae7192b4 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;, bool) const (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d092b4)
    #<!-- -->13 0x0000ffffae733230 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;) (/usr/lib/llvm-21/bin/../lib/libclang-cpp.so.21.1+0x2d23230)
    #<!-- -->14 0x0000aaaac83deea8 clang_main(int, char**, llvm::ToolContext const&amp;) (/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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    crashPrefer [crash-on-valid] or [crash-on-invalid]llvm:mcMachine (object) code

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions