rust-lang/rustc_codegen_gcc

libgccjit ICE when compiling to arm-unknown-linux-gnueabi

sapir opened this issue · 1 comments

sapir commented

Using an arm-unknown-linux-gnueabi toolchain built with the setup in cross-gcc / crosstool-ng, I get an ICE while building the sysroot:

± PATH=~/x-tools/arm-unknown-linux-gnueabi/usr/bin:$PATH ./y.sh build --sysroot --target-triple arm-unknown-linux-gnueabi
[BUILD] build system
    Finished `release` profile [optimized] target(s) in 0.31s
   Compiling libc v0.2.150
   Compiling linux-raw-sys v0.4.5
   Compiling bitflags v2.4.0
   Compiling memchr v2.5.0
   Compiling cfg-if v1.0.0
   Compiling rustix v0.38.8
   Compiling fastrand v2.0.0
   Compiling object v0.30.4
   Compiling gccjit_sys v0.2.0
   Compiling gccjit v2.1.0
   Compiling smallvec v1.10.0
   Compiling tempfile v3.7.1
   Compiling rustc_codegen_gcc v0.1.0 (/home/user/dev/rustc_codegen_gcc)
    Finished `dev` profile [optimized + debuginfo] target(s) in 39.42s
[BUILD] sysroot
warning: no edition set: defaulting to the 2015 edition while the latest is 2021
    Updating crates.io index
     Locking 5 packages to latest compatible versions
    Updating addr2line v0.21.0 -> v0.22.0 (latest: v0.24.1)
      Adding gimli v0.29.0 (latest: v0.31.0)
    Updating hermit-abi v0.3.9 -> v0.4.0
    Updating object v0.32.2 -> v0.36.3
    Updating rustc-demangle v0.1.23 -> v0.1.24
  Downloaded unicode-width v0.1.12
  Downloaded compiler_builtins v0.1.109
  Downloaded object v0.36.3
  Downloaded 3 crates (535.5 KB) in 1.12s
   Compiling compiler_builtins v0.1.109
   Compiling core v0.0.0 (/home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/core)
   Compiling libc v0.2.153
   Compiling std v0.0.0 (/home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/std)
   Compiling rustc-std-workspace-core v1.99.0 (/home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 (/home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/alloc)
during RTL pass: expand
during RTL pass: expand
libgccjit.so: /home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/core/src/num/f32.rs:524:6: internal compiler error: : in hash_rtx, at cse.cc:2546
libgccjit.so: sysroot_src/library/core/src/num/dec2flt/float.rs:125:6: internal compiler error: : in hash_rtx, at cse.cc:2546
during RTL pass: expand
libgccjit.so: /home/user/dev/rustc_codegen_gcc/build/build_sysroot/sysroot_src/library/core/src/num/uint_macros.rs:2727:21: internal compiler error: : in hash_rtx, at cse.cc:2546
0x7daee59dc603 hash_rtx(rtx_def const*, machine_mode, int*, int*, bool, bool (*)(rtx_def const*, machine_mode, rtx_def**, machine_mode*))
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cse.cc:2546
0x76565cbdc603 hash_rtx(rtx_def const*, machine_mode, int*, int*, bool, bool (*)(rtx_def const*, machine_mode, rtx_def**, machine_mode*))
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cse.cc:2546
0x7f412e9dc603 hash_rtx(rtx_def const*, machine_mode, int*, int*, bool, bool (*)(rtx_def const*, machine_mode, rtx_def**, machine_mode*))
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cse.cc:2546
0x7f412f48e840 libcall_hasher::hash(rtx_def const*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:5904
0x7f412f48e840 hash_table<libcall_hasher, false, xcallocator>::verify(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:1116
0x7f412f48a667 hash_table<libcall_hasher, false, xcallocator>::find_with_hash(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:994
0x7daee648e840 libcall_hasher::hash(rtx_def const*)
0x7f412f48a667 hash_table<libcall_hasher, false, xcallocator>::find(rtx_def const* const&)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:5904
0x7daee648e840 hash_table<libcall_hasher, false, xcallocator>::verify(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:1116
0x7daee648a667 hash_table<libcall_hasher, false, xcallocator>::find_with_hash(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:994
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:430
0x7daee648a667 hash_table<libcall_hasher, false, xcallocator>::find(rtx_def const* const&)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:430
0x7f412f48a667 arm_libcall_uses_aapcs_base
0x7daee648a667 arm_libcall_uses_aapcs_base
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:6006
0x76565d68e840 libcall_hasher::hash(rtx_def const*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:6006
0x7f412f48aaac arm_init_cumulative_args(CUMULATIVE_ARGS*, tree_node*, rtx_def*, tree_node*)
0x7daee648aaac arm_init_cumulative_args(CUMULATIVE_ARGS*, tree_node*, rtx_def*, tree_node*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:7134
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:7134
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:5904
0x76565d68e840 hash_table<libcall_hasher, false, xcallocator>::verify(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:1116
0x76565d68a667 hash_table<libcall_hasher, false, xcallocator>::find_with_hash(rtx_def const* const&, unsigned int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:994
0x76565d68a667 hash_table<libcall_hasher, false, xcallocator>::find(rtx_def const* const&)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/hash-table.h:430
0x76565d68a667 arm_libcall_uses_aapcs_base
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:6006
0x76565d68aaac arm_init_cumulative_args(CUMULATIVE_ARGS*, tree_node*, rtx_def*, tree_node*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/config/arm/arm.cc:7134
0x7daee5ae934a emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair<rtx_def*, machine_mode>*)
0x7f412eae934a emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair<rtx_def*, machine_mode>*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/calls.cc:4243
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/calls.cc:4243
0x76565cce934a emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair<rtx_def*, machine_mode>*)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/calls.cc:4243
0x7daee5f0d46f emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode, rtx_def*, machine_mode)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/rtl.h:4424
0x7daee5f0d46f expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:2220
0x7daee5f0f547 sign_expand_binop(machine_mode, optab_tag, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:2352
0x7f412ef14f53 emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/rtl.h:4411
0x7f412ef14f53 expand_float(rtx_def*, rtx_def*, int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:5735
0x76565d104508 emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode, rtx_def*, machine_mode)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/rtl.h:4424
0x76565d104508 prepare_float_lib_cmp
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:4996
0x76565d104508 prepare_cmp_insn
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:4629
0x76565d104c2f emit_cmp_and_jump_insns(rtx_def*, rtx_def*, rtx_code, rtx_def*, machine_mode, int, tree_node*, rtx_def*, profile_probability)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/optabs.cc:4853
0x76565cd7f250 do_compare_rtx_and_jump(rtx_def*, rtx_def*, rtx_code, int, tree_node*, machine_mode, rtx_def*, rtx_code_label*, rtx_code_label*, profile_probability)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/dojump.cc:1238
0x76565cd806c1 do_compare_rtx_and_jump(rtx_def*, rtx_def*, rtx_code, int, machine_mode, rtx_def*, rtx_code_label*, rtx_code_label*, profile_probability)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/dojump.cc:966
0x7daee5c24252 expand_divmod(int, tree_code, machine_mode, rtx_def*, rtx_def*, rtx_def*, int, optab_methods)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expmed.cc:5298
0x76565ce228fb emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expmed.cc:6250
0x76565ce228fb emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expmed.cc:6175
0x7f412ec3418b expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:10337
0x7f412ec3b45e expand_expr_real_gassign(gassign*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:11096
0x7daee5c32c33 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:10296
0x7daee5c3b45e expand_expr_real_gassign(gassign*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:11096
0x76565ce31570 do_store_flag
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:13701
0x76565ce32ad3 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:10684
0x76565ce3b45e expand_expr_real_gassign(gassign*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool)
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/expr.cc:11096
0x7f412eb00267 expand_gimple_stmt_1
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:4010
0x7f412eb00267 expand_gimple_stmt
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:4071
0x7f412eb06bfb expand_gimple_basic_block
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:6127
0x7daee5b00267 expand_gimple_stmt_1
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:4010
0x7daee5b00267 expand_gimple_stmt
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:4071
0x7daee5b06bfb expand_gimple_basic_block
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:6127
0x76565cd00703 expand_gimple_stmt_1
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:4010
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
error: could not compile `compiler_builtins` (lib)
warning: build failed, waiting for other jobs to finish...
0x7daee5b088a6 execute
0x7f412eb088a6 execute
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:6866
        /home/user/dev/cross-gcc/arm-unknown-linux-gnueabi/.build/arm-unknown-linux-gnueabi/src/gcc/gcc/cfgexpand.cc:6866
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
error: could not compile `alloc` (lib)
error: could not compile `core` (lib)
Command `["cargo", "build", "--target", "arm-unknown-linux-gnueabi"]` failed
Command failed to run: Command `cargo build --target arm-unknown-linux-gnueabi` (running in folder `build/build_sysroot`) exited with status Some(101)

I never tried with this arch, but this is the next on my list.