Compiler segfaults while compiling Hello World to `m68k-unknown-none-elf`
Open
Nobody has claimed this yet.
C-bug
I-crash
O-motorola68k
T-compiler
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
Code
fn main() {
println!("Hello, world!");
}
Meta
rustc --version --verbose:
rustc 1.94.1 (e408947bf 2026-03-25)
binary: rustc
commit-hash: e408947bfd200af42db322daf0fadfe7e26d3bd1
commit-date: 2026-03-25
host: x86_64-unknown-linux-gnu
release: 1.94.1
LLVM version: 21.1.8
(also tried nightly: rustc 1.96.0-nightly (55e86c996 2026-04-02))
Error output
$ RUSTC_BOOTSTRAP=1 cargo build --target m68k-unknown-none-elf -Zbuild-std=core
Compiling compiler_builtins v0.1.160 (/var/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/compiler-builtins/compiler-builtins)
Compiling core v0.0.0 (/var/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
Backtrace
error: rustc interrupted by SIGSEGV, printing backtrace
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x3c16eec) [0x7fe01ce16eec]
/lib64/libc.so.6(+0x1a290) [0x7fe019027290]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(+0x88f63e9) [0x7fe017af63e9]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv+0xf64) [0x7fe017086db2]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE+0x1840) [0x7fe01719f180]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE+0x19e) [0x7fe0171a4b9e]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(+0x8b88d89) [0x7fe017d88d89]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0x8fd) [0x7fe017033f7d]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0x28) [0x7fe0170335be]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.21.1-rust-1.94.1-stable(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x2b1) [0x7fe0175aaef1]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x6209185) [0x7fe01f409185]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x6208dbe) [0x7fe01f408dbe]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(_RNvXs1_Cs17yG4yyzeJN_18rustc_codegen_llvmNtB5_18LlvmCodegenBackendNtNtNtCs4LdzbGWUye9_17rustc_codegen_ssa6traits5write19WriteBackendMethods7codegen+0x313) [0x7fe01f40a7d3]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x6209eb8) [0x7fe01f409eb8]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(_RINvNtNtCsicaZO8UCM9y_3std3sys9backtrace28___rust_begin_short_backtraceNCINvXs0_Cs17yG4yyzeJN_18rustc_codegen_llvmNtB1g_18LlvmCodegenBackendNtNtNtCs4LdzbGWUye9_17rustc_codegen_ssa6traits7backend19ExtraBackendMethods18spawn_named_threadNCINvNtNtB2k_4back5write10spawn_workB1O_E0uE0uEB1g_+0xa8) [0x7fe01f54c740]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x634c3d4) [0x7fe01f54c3d4]
/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-83018425804cb0fc.so(+0x6346dc6) [0x7fe01f546dc6]
/lib64/libc.so.6(+0x72464) [0x7fe01907f464]
/lib64/libc.so.6(+0xf55ec) [0x7fe0191025ec]
note: we would appreciate a report at https://github.com/rust-lang/rust
help: you can increase rustc's stack size by setting RUST_MIN_STACK=16777216
error: could not compile `compiler_builtins` (lib)
Caused by:
process didn't exit successfully: `/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name compiler_builtins --edition=2024 /var/home/xxx/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/compiler-builtins/compiler-builtins/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=236 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="compiler-builtins"' --cfg 'feature="default"' --cfg 'feature="rustc-dep-of-std"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("c", "compiler-builtins", "default", "mangled-names", "mem", "no-asm", "no-f16-f128", "rustc-dep-of-std", "unstable-public-internals"))' -C metadata=1261befba6ddf72c -C extra-filename=-1b4eecbf96f1e36c --out-dir /tmp/testtest/target/m68k-unknown-none-elf/debug/deps --target m68k-unknown-none-elf -Z force-unstable-if-unmarked -L dependency=/tmp/testtest/target/m68k-unknown-none-elf/debug/deps -L dependency=/tmp/testtest/target/debug/deps --extern core=/tmp/testtest/target/m68k-unknown-none-elf/debug/deps/libcore-68a19b7ae904788b.rmeta --cap-lints allow --cfg f16_enabled --cfg f128_enabled --cfg intrinsics_enabled --cfg arch_enabled --cfg 'feature="unstable-intrinsics"' --cfg 'feature="mem"' --check-cfg 'cfg(__ashldi3, values("optimized-c"))' --check-cfg 'cfg(__ashlsi3, values("optimized-c"))' --check-cfg 'cfg(__ashrdi3, values("optimized-c"))' --check-cfg 'cfg(__ashrsi3, values("optimized-c"))' --check-cfg 'cfg(__bswapsi2, values("optimized-c"))' --check-cfg 'cfg(__bswapdi2, values("optimized-c"))' --check-cfg 'cfg(__bswapti2, values("optimized-c"))' --check-cfg 'cfg(__divdi3, values("optimized-c"))' --check-cfg 'cfg(__divsi3, values("optimized-c"))' --check-cfg 'cfg(__divmoddi4, values("optimized-c"))' --check-cfg 'cfg(__divmodsi4, values("optimized-c"))' --check-cfg 'cfg(__divmodsi4, values("optimized-c"))' --check-cfg 'cfg(__divmodti4, values("optimized-c"))' --check-cfg 'cfg(__lshrdi3, values("optimized-c"))' --check-cfg 'cfg(__lshrsi3, values("optimized-c"))' --check-cfg 'cfg(__moddi3, values("optimized-c"))' --check-cfg 'cfg(__modsi3, values("optimized-c"))' --check-cfg 'cfg(__muldi3, values("optimized-c"))' --check-cfg 'cfg(__udivdi3, values("optimized-c"))' --check-cfg 'cfg(__udivmoddi4, values("optimized-c"))' --check-cfg 'cfg(__udivmodsi4, values("optimized-c"))' --check-cfg 'cfg(__udivsi3, values("optimized-c"))' --check-cfg 'cfg(__umoddi3, values("optimized-c"))' --check-cfg 'cfg(__umodsi3, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(target_feature, values("vis3"))' --check-cfg 'cfg(feature, values("checked"))' --check-cfg 'cfg(assert_no_panic)' --check-cfg 'cfg(thumb)' --check-cfg 'cfg(thumb_1)' --check-cfg 'cfg(x86_no_sse)' --check-cfg 'cfg(f16_enabled)' --check-cfg 'cfg(f128_enabled)' --check-cfg 'cfg(intrinsics_enabled)' --check-cfg 'cfg(arch_enabled)' --check-cfg 'cfg(optimizations_enabled)' --check-cfg 'cfg(feature, values("unstable-public-internals"))' --check-cfg 'cfg(optimizations_enabled)' --check-cfg 'cfg(kernel_user_helpers)' --check-cfg 'cfg(feature, values("mem-unaligned"))'` (signal: 11, SIGSEGV: invalid memory reference)
@rustbot label +O-motorola68k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the minimal Hello World build with cargo build --target m68k-unknown-none-elf -Zbuild-std=core and the reported stable or nightly toolchain. Start with the compiler_builtins build stage and the LLVM SelectionDAG frames in the backtrace; done means the target no longer causes rustc to segfault.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100