rust-lang / rust-lang/rust

Crash when compiling to m68k

Open
#143,024 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-LLVM 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!");
}

.cargo/config.toml:

[unstable]
build-std = ["panic_abort", "core", "alloc"]

[target.m68k-unknown-none-elf]
linker = "mk68k-linux-gnu-ld"
Meta

rustc --version --verbose:

rustc 1.90.0-nightly (28f1c8079 2025-06-24)
binary: rustc
commit-hash: 28f1c807911c63f08d98e7b468cfcf15a441e34b
commit-date: 2025-06-24
host: aarch64-apple-darwin
release: 1.90.0-nightly
LLVM version: 20.1.7
Error output
   Compiling compiler_builtins v0.1.160 (/Users/ii/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/compiler-builtins/compiler-builtins)
   Compiling alloc v0.0.0 (/Users/ii/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc)             
   Compiling panic_abort v0.0.0 (/Users/ii/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/panic_abort)
error: rustc interrupted by SIGSEGV, printing backtrace, compiler_builtins                                                           
Backtrace


0   librustc_driver-eab36023e7f4b8b8.dy 0x000000010eb682b4 _RNvNtCs1cySLwkPXaU_17rustc_driver_impl14signal_handler17print_stack_trace + 140
1   libsystem_platform.dylib            0x0000000195f0a704 _sigtramp + 56
2   librustc_driver-eab36023e7f4b8b8.dy 0x0000000112476a68 _ZN12_GLOBAL__N_117ScheduleDAGRRList20ListScheduleBottomUpEv + 892
3   librustc_driver-eab36023e7f4b8b8.dy 0x00000001124766c0 _ZN12_GLOBAL__N_117ScheduleDAGRRList8ScheduleEv + 432
4   librustc_driver-eab36023e7f4b8b8.dy 0x000000011251922c _ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv + 1004
5   librustc_driver-eab36023e7f4b8b8.dy 0x000000011251898c _ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE + 5208
6   librustc_driver-eab36023e7f4b8b8.dy 0x0000000112516ac8 _ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE + 348
7   librustc_driver-eab36023e7f4b8b8.dy 0x000000011251543c _ZN4llvm22SelectionDAGISelLegacy20runOnMachineFunctionERNS_15MachineFunctionE + 196
8   librustc_driver-eab36023e7f4b8b8.dy 0x00000001127a3b8c _ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE + 576
9   librustc_driver-eab36023e7f4b8b8.dy 0x000000011342cc54 _ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE + 668
10  librustc_driver-eab36023e7f4b8b8.dy 0x0000000113433440 _ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE + 60
11  librustc_driver-eab36023e7f4b8b8.dy 0x000000011342d72c _ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE + 2172
12  librustc_driver-eab36023e7f4b8b8.dy 0x000000011363506c LLVMRustWriteOutputFile + 528
13  librustc_driver-eab36023e7f4b8b8.dy 0x000000010e80e148 _RNvNtNtCsffrBIA8rTYU_18rustc_codegen_llvm4back5write17write_output_file + 268
14  librustc_driver-eab36023e7f4b8b8.dy 0x000000010e812834 _RNvNtNtCsffrBIA8rTYU_18rustc_codegen_llvm4back5write7codegen + 3876
15  librustc_driver-eab36023e7f4b8b8.dy 0x000000010e780054 _RINvNtNtCs2qeCQt4OaxU_17rustc_codegen_ssa4back5write24finish_intra_module_workNtCsffrBIA8rTYU_18rustc_codegen_llvm18LlvmCodegenBackendEB1g_ + 176
16  librustc_driver-eab36023e7f4b8b8.dy 0x000000010e782a14 _RINvNtNtCslwrKrpsKa3o_3std3sys9backtrace28___rust_begin_short_backtraceNCINvXs0_CsffrBIA8rTYU_18rustc_codegen_llvmNtB1g_18LlvmCodegenBackendNtNtNtCs2qeCQt4OaxU_17rustc_codegen_ssa6traits7backend19ExtraBackendMethods18spawn_named_threadNCINvNtNtB2k_4back5write10spawn_workB1O_E0uE0uEB1g_ + 2732
17  librustc_driver-eab36023e7f4b8b8.dy 0x000000010e7b16fc _RNSNvYNCINvMNtCslwrKrpsKa3o_3std6threadNtBa_7Builder16spawn_unchecked_NCINvXs0_CsffrBIA8rTYU_18rustc_codegen_llvmNtB1f_18LlvmCodegenBackendNtNtNtCs2qeCQt4OaxU_17rustc_codegen_ssa6traits7backend19ExtraBackendMethods18spawn_named_threadNCINvNtNtB2j_4back5write10spawn_workB1N_E0uE0uEs_0INtNtNtCscZc0lgoFQZ9_4core3ops8function6FnOnceuE9call_once6vtableB1f_ + 452
18  librustc_driver-eab36023e7f4b8b8.dy 0x0000000110a10e28 _ZN3std3sys3pal4unix6thread6Thread3new12thread_start17h9ff86f7b4d9410c7E + 48
19  libsystem_pthread.dylib             0x0000000195f00c0c _pthread_start + 136
20  libsystem_pthread.dylib             0x0000000195efbb80 thread_start + 8

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=33554432
note: backtrace dumped due to SIGSEGV! resuming signal
error: could not compile `compiler_builtins` (lib)

Caused by:
  process didn't exit successfully: `/Users/ii/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/rustc --crate-name compiler_builtins --edition=2024 /Users/ii/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/compiler-builtins/compiler-builtins/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=135 --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=5a86f81fbd676cfb -C extra-filename=-51518d7394b077bd --out-dir /Users/ii/code/m68/target/m68k-unknown-none-elf/debug/deps --target m68k-unknown-none-elf -C linker=mk68k-linux-gnu-ld -Z force-unstable-if-unmarked -L dependency=/Users/ii/code/m68/target/m68k-unknown-none-elf/debug/deps -L dependency=/Users/ii/code/m68/target/debug/deps --extern core=/Users/ii/code/m68/target/m68k-unknown-none-elf/debug/deps/libcore-4507d077825b9693.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(f16_enabled)' --check-cfg 'cfg(f128_enabled)' --check-cfg 'cfg(thumb)' --check-cfg 'cfg(thumb_1)' --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(x86_no_sse)' --check-cfg 'cfg(kernel_user_helpers)' --check-cfg 'cfg(feature, values("mem-unaligned"))'` (signal: 11, SIGSEGV: invalid memory reference)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the crash using the Rust example and .cargo/config.toml, targeting m68k-unknown-none-elf with build-std; the failure occurs while compiling compiler_builtins. Start with the LLVM SelectionDAG frames in the backtrace. Done means this minimal m68k build completes without the SIGSEGV.

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
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.