compiler-builtins icon indicating copy to clipboard operation
compiler-builtins copied to clipboard

riscv64gc-unknown-linux-gnu: undefined reference to `__bswapsi2'; undefined reference to `__ctzdi2'

Open davidlt opened this issue 5 years ago • 3 comments
trafficstars

I was trying to bootstrap Rust beta (1.43.0) for Linux/riscv64 on Ubuntu 20.04 host. I have done that before successfully with 1.42.0 (stable). This time I also added llvm-libuwnind to config.

This failed:

   Compiling rustc-workspace-hack v1.0.0 (/root/rust/src/tools/rustc-workspace-hack)                                                                                                                                                
   Compiling crates-io v0.31.0 (/root/rust/src/tools/cargo/crates/crates-io)                                                                                                                                                        
   Compiling git2-curl v0.14.0                                                                                                                                                                                                      
   Compiling cargo v0.44.0 (/root/rust/src/tools/cargo)                                                                                                                                                                             
error: linking with `riscv64-linux-gnu-gcc` failed: exit code: 1                                                                                                                                                                    
  |                                                                                                                                                                                                                                 
  = note: "riscv64-linux-gnu-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-L" "/root/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" "/root/rust/build/x86_64-unknown-linux-gnu/stage1-tools
/riscv64gc-unknown-linux-gnu/release/deps/cargo-dfd74c68ed037caa.cargo.bq3j19y1-cgu.0.rcgu.o" "/root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/cargo-dfd74c68ed037caa.cargo.bq3j19y1
[..]
gnu/stage1/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcore-c10872ff33ae6858.rlib" "-Wl,--end-group" "/root/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-a451bbb74f0c33cf.rlib" "-Wl,-Bdynamic" "-lutil" "-ldl" "-lrt" "-lpthread" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-Wl,-rpath,$ORIGIN/../lib"
  = note: /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/liblibgit2_sys-6bfec99124006b4c.rlib(index.o): in function `.L0 ':
          index.c:(.text.git_index_read+0x1aa): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/liblibgit2_sys-6bfec99124006b4c.rlib(index.o): in function `.L1182':
          index.c:(.text.git_index_read+0x1c4): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: index.c:(.text.git_index_read+0x1fc): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/liblibgit2_sys-6bfec99124006b4c.rlib(index.o): in function `.L1021':
          index.c:(.text.git_index_read+0x28a): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: index.c:(.text.git_index_read+0x29a): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/liblibgit2_sys-6bfec99124006b4c.rlib(index.o):index.c:(.text.git_index_read+0x2aa): more undefined references to `__bswapsi2' follow
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/libopenssl_sys-49a51c0cc7adde7e.rlib(curve448.o): in function `.L0 ':
          (.text+0x22e): undefined reference to `__ctzdi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: /root/rust/build/x86_64-unknown-linux-gnu/stage1-tools/riscv64gc-unknown-linux-gnu/release/deps/liblibnghttp2_sys-733d40bd8aaf883e.rlib(nghttp2_helper.o): in function `.L0 ':
          nghttp2_helper.c:(.text.nghttp2_put_uint32be+0x18): undefined reference to `__bswapsi2'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: nghttp2_helper.c:(.text.nghttp2_get_uint32+0x34): undefined reference to `__bswapsi2'
          collect2: error: ld returned 1 exit status

Do we need something like this but also for riscv64?

https://github.com/rust-lang/compiler-builtins/pull/341

davidlt avatar Apr 18 '20 06:04 davidlt

Similar issue on riscv64-gn-unknown-linux-musl with -Zbuild-std

          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L5':
          vfprintf.c:(.text.pop_arg+0x8c): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L51':
          vfprintf.c:(.text.fmt_fp+0x88): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L50':
          vfprintf.c:(.text.fmt_fp+0x17a): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x18e): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L61':
          vfprintf.c:(.text.fmt_fp+0x20e): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x21e): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L65':
          vfprintf.c:(.text.fmt_fp+0x2d2): undefined reference to `__fixtfsi'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L69':
          vfprintf.c:(.text.fmt_fp+0x2f2): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x302): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x30e): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x332): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x35c): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L68':
          vfprintf.c:(.text.fmt_fp+0x39e): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L62':
          vfprintf.c:(.text.fmt_fp+0x3c0): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x3cc): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L72':
          vfprintf.c:(.text.fmt_fp+0x4b2): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x4cc): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L74':
          vfprintf.c:(.text.fmt_fp+0x528): undefined reference to `__fixunstfsi'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L75':
          vfprintf.c:(.text.fmt_fp+0x536): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: vfprintf.c:(.text.fmt_fp+0x546): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L77':
          vfprintf.c:(.text.fmt_fp+0x552): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L78':
          vfprintf.c:(.text.fmt_fp+0x562): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L190':
          vfprintf.c:(.text.fmt_fp+0x7cc): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfprintf.o): in function `.L191':
          vfprintf.c:(.text.fmt_fp+0x7da): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(frexpl.o): in function `frexpl':
          frexpl.c:(.text.frexpl+0x20): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: frexpl.c:(.text.frexpl+0x38): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfscanf.o): in function `.L77':
          vfscanf.c:(.text.vfscanf+0x332): undefined reference to `__trunctfsf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(vfscanf.o): in function `.L116':
          vfscanf.c:(.text.vfscanf+0x776): undefined reference to `__trunctfdf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L75':
          floatscan.c:(.text.decfloat+0x142): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L87':
          floatscan.c:(.text.decfloat+0x27c): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x28a): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x296): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x2a6): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L55':
          floatscan.c:(.text.decfloat+0x3a2): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L115':
          floatscan.c:(.text.decfloat+0x6b2): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x6be): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x6e8): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L116':
          floatscan.c:(.text.decfloat+0x70a): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x71e): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x744): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L117':
          floatscan.c:(.text.decfloat+0x766): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x77a): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x7a2): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L118':
          floatscan.c:(.text.decfloat+0x7be): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x7ca): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x7d6): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L119':
          floatscan.c:(.text.decfloat+0x826): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L120':
          floatscan.c:(.text.decfloat+0x84c): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x874): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x884): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L121':
          floatscan.c:(.text.decfloat+0x8d0): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x8e0): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L183':
          floatscan.c:(.text.decfloat+0x910): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x91c): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L151':
          floatscan.c:(.text.decfloat+0x998): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L114':
          floatscan.c:(.text.decfloat+0x9a6): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L191':
          floatscan.c:(.text.decfloat+0x9b6): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L78':
          floatscan.c:(.text.decfloat+0x9d8): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0x9e6): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L192':
          floatscan.c:(.text.decfloat+0xa0e): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0xa1c): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L193':
          floatscan.c:(.text.decfloat+0xa58): undefined reference to `__trunctfdf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L123':
          floatscan.c:(.text.decfloat+0xa84): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L202':
          floatscan.c:(.text.decfloat+0xab8): undefined reference to `__eqtf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L135':
          floatscan.c:(.text.decfloat+0xad0): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L201':
          floatscan.c:(.text.decfloat+0xaf0): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L203':
          floatscan.c:(.text.decfloat+0xb38): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0xb48): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L126':
          floatscan.c:(.text.decfloat+0xb8a): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0xb96): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L155':
          floatscan.c:(.text.decfloat+0xbb6): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L197':
          floatscan.c:(.text.decfloat+0xbc6): undefined reference to `__divtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L132':
          floatscan.c:(.text.decfloat+0xbda): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L195':
          floatscan.c:(.text.decfloat+0xbea): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0xbfe): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.decfloat+0xc0a): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L289':
          floatscan.c:(.text.__floatscan+0x5f6): undefined reference to `__getf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L290':
          floatscan.c:(.text.__floatscan+0x610): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x620): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L295':
          floatscan.c:(.text.__floatscan+0x66a): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x67a): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L300':
          floatscan.c:(.text.__floatscan+0x69c): undefined reference to `__netf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x6b4): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x6c4): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x6d2): undefined reference to `__floatunsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x6de): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L315':
          floatscan.c:(.text.__floatscan+0x6ea): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x6f6): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x702): undefined reference to `__subtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L302':
          floatscan.c:(.text.__floatscan+0x712): undefined reference to `__eqtf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x75e): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x76e): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x77a): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L304':
          floatscan.c:(.text.__floatscan+0x78a): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L272':
          floatscan.c:(.text.__floatscan+0x7c2): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x7d2): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L275':
          floatscan.c:(.text.__floatscan+0x7fc): undefined reference to `__addtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L274':
          floatscan.c:(.text.__floatscan+0x838): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L267':
          floatscan.c:(.text.__floatscan+0x8d8): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L324':
          floatscan.c:(.text.__floatscan+0x8ea): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L265':
          floatscan.c:(.text.__floatscan+0x8f8): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L382':
          floatscan.c:(.text.__floatscan+0x92a): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x93c): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L383':
          floatscan.c:(.text.__floatscan+0x94a): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: floatscan.c:(.text.__floatscan+0x970): undefined reference to `__floatsitf'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(floatscan.o): in function `.L380':
          floatscan.c:(.text.__floatscan+0x980): undefined reference to `__extenddftf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(fmodl.o): in function `fmodl':
          fmodl.c:(.text.fmodl+0x2e): undefined reference to `__eqtf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0x40): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0x4c): undefined reference to `__divtf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0xbe): undefined reference to `__letf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0xd2): undefined reference to `__eqtf2'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0xe4): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0x100): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0x17a): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: fmodl.c:(.text.fmodl+0x19a): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(scalbnl.o): in function `scalbnl':
          scalbnl.c:(.text.scalbnl+0x1c): undefined reference to `__multf3'
          /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: /usr/local/musl/bin/../lib/gcc/riscv64-unknown-linux-musl/11.2.0/../../../../riscv64-unknown-linux-musl/lib/libc.a(scalbnl.o):scalbnl.c:(.text.scalbnl+0x38): more undefined references to `__multf3' follow
          collect2: error: ld returned 1 exit status

Any pointer?

messense avatar Dec 10 '22 16:12 messense

The C code has been disabled by this commit: https://github.com/rust-lang/compiler-builtins/commit/e4f46b91ca843297fc065e20f1591e4971ae608c

So it's not the same fix as the MIPs issue. It seems like first we need to add the RISC-V C compiler somewhere so then we can revert https://github.com/rust-lang/compiler-builtins/commit/e4f46b91ca843297fc065e20f1591e4971ae608c

alistair23 avatar Nov 06 '23 09:11 alistair23

This seems to be the place we need to add RISC-V compiler support to: https://github.com/rust-lang/rust/blob/master/src/ci/docker/host-x86_64/dist-various-1/Dockerfile#L108

alistair23 avatar Nov 06 '23 10:11 alistair23