Skip to content

f128 does not link on (aarch64-unknown)-linux-musl targets #144423

@famfo

Description

@famfo

I tried to compile the std test on aarch64-unknown-linux-musl. The linking fails with:

Compiling std v0.0.0 (/home/famfo/git/rust/library/std)                                                                                                                                     21:47:31 [53/1369]
error: linking with `clang` failed: exit status: 1
  |                                                                                                                                                                                                              
  = note:  "clang" "/tmp/rustc7qbC7F/symbols.o" "<4 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/aarch64-unknown-linux-musl/lib/{libtest-*,libgetopts-*,libunicode_width-*,libr
ustc_std_workspace_std-*}.rlib" "-Wl,-Bdynamic" "<sysroot>-std/aarch64-unknown-linux-musl/release/deps/libstd-5fdab16ba41825af.so" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/aarch64-unknown-linux-musl/lib/libcompil
er_builtins-*.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-L" "/tmp/rustc7qbC7F/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib" "-L" "<sysroot>/lib/rustlib/aarch64-unknown-linux-musl/lib" "-o"
 "<sysroot>-std/aarch64-unknown-linux-musl/release/deps/floats-bfff3ecd2277cff4" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments                                                                                                                               
  = note: /usr/lib/gcc/aarch64-alpine-linux-musl/14.3.0/../../../../aarch64-alpine-linux-musl/bin/ld: /home/famfo/git/rust/build/aarch64-unknown-linux-musl/stage1-std/aarch64-unknown-linux-musl/release/deps/fl
oats-bfff3ecd2277cff4.floats.e625f35bc4eb5419-cgu.3.rcgu.o: in function `floats::f128::test_asinh':                                                                                                              
          /home/famfo/git/rust/library/std/src/num/f128.rs:359:(.text._ZN6floats4f12810test_asinh17h66aec9b92f1171ebE+0x28): undefined reference to `hypotf128'                                                  
          /usr/lib/gcc/aarch64-alpine-linux-musl/14.3.0/../../../../aarch64-alpine-linux-musl/bin/ld: /home/famfo/git/rust/library/std/src/num/f128.rs:722:(.text._ZN6floats4f12810test_asinh17h66aec9b92f1171ebE
+0x50): undefined reference to `log1pf128'                                                                                                                                                                       
          /usr/lib/gcc/aarch64-alpine-linux-musl/14.3.0/../../../../aarch64-alpine-linux-musl/bin/ld: /home/famfo/git/rust/library/std/src/num/f128.rs:359:(.text._ZN6floats4f12810test_asinh17h66aec9b92f1171ebE
+0x80): undefined reference to `hypotf128'
[...]

Musl does not have any f128 builtins and I think that it is safe to disable target_has_reliable_f128_math for *-musl targets for now.

Meta

rustc built from 5d22242 (./x.py test) with a few patches from @Gelbpunkt

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.F-f16_and_f128`#![feature(f16)]`, `#![feature(f128)]`O-aarch64-unknown-linux-muslTarget: aarch64-unknown-linux-muslT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions