Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More Rust tests failing #1082

Closed
giordano opened this issue Jul 20, 2021 · 2 comments · Fixed by #1121
Closed

More Rust tests failing #1082

giordano opened this issue Jul 20, 2021 · 2 comments · Fixed by #1121

Comments

@giordano
Copy link
Member

giordano commented Jul 20, 2021

This is different from #1061. In CI I'm seeing Rust tests for aarch64-linux-musl and i686-w64-mingw32 failing:

..rustcgo -o /tmp/testsuite/aarch64-linux-musl/rust/hello_world/hello_world hello_world.rs 
build -o /tmp/testsuite/aarch64-linux-musl/go/hello_world/hello_world hello_world.go
cargo install --verbose --path . --root /tmp/testsuite/aarch64-linux-musl/rust/cargo_build
cc -o /tmp/testsuite/aarch64-linux-musl/c/hello_world/hello_world -g -O2 hello_world.c
          /build/musl-1.1.22/src/stdio/vfprintf.c:246: undefined reference to `__subtf3'
          /build/musl-1.1.22/src/stdio/vfprintf.c:246: undefined reference to `__multf3'
          /build/musl-1.1.22/src/stdio/vfprintf.c:268: undefined reference to `__multf3'
          /build/musl-1.1.22/src/stdio/vfprintf.c:275: undefined reference to `__subtf3'
          /build/musl-1.1.22/src/stdio/vfprintf.c:275: undefined reference to `__multf3'
          /build/musl-1.1.22/src/stdio/vfprintf.c:331: undefined reference to `__addtf3'
          /opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liblibc-7c3c4e3d691d5338.rlib(frexpl.lo): In function `frexpl':
          /build/musl-1.1.22/src/math/frexpl.c:16: undefined reference to `__multf3'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

error: failed to compile `cargo_build v0.1.0 (/usr/share/testsuite/rust/cargo_build)`, intermediate artifacts can be found at `/usr/share/testsuite/rust/cargo_build/target`

Caused by:
  could not compile `cargo_build`.

Caused by:
  process didn't exit successfully: `rustc --crate-name cargo_build --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=daf0fecf66ace914 -C extra-filename=-daf0fecf66ace914 --out-dir /usr/share/testsuite/rust/cargo_build/target/aarch64-unknown-linux-musl/release/deps --target aarch64-unknown-linux-musl -C linker=aarch64-linux-musl-gcc -L dependency=/usr/share/testsuite/rust/cargo_build/target/aarch64-unknown-linux-musl/release/deps -L dependency=/usr/share/testsuite/rust/cargo_build/target/release/deps` (exit code: 1)
make[1]: *** [Makefile:7: /tmp/testsuite/aarch64-linux-musl/rust/cargo_build/cargo_build] Error 101
make: *** [Makefile:48: install-project-rust-cargo_build] Error 2
make: *** Waiting for unfinished jobs....
Previous command exited with 2
..........cc -o /tmp/testsuite/i686-w64-mingw32/c/hello_world/hello_world.exe -g -O2 hello_world.c
c++ -shared -o /tmp/testsuite/i686-w64-mingw32/cxx/dyn_link/librepeater/librepeater.dll -fPIC -g -O2 -lm librepeater/librepeater.cc
rustc -o /tmp/testsuite/i686-w64-mingw32/rust/hello_world/hello_world.exe hello_world.rs
cc -shared -o /tmp/testsuite/i686-w64-mingw32/c/dyn_link/libfoo/libfoo.dll -fPIC -g -O2 -lm libfoo/libfoo.c
dyn_link.cc:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
 #include <iostream>
 ^
error: linking with `i686-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "i686-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-Wl,--large-address-aware" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/crt2.o" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/rsbegin.o" "-L" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib" "/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps/cargo_build-ac5a55d97f045ecb.cargo_build.d533luw4-cgu.0.rcgu.o" "/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps/cargo_build-ac5a55d97f045ecb.cargo_build.d533luw4-cgu.1.rcgu.o" "-o" "/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps/cargo_build-ac5a55d97f045ecb.exe" "/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps/cargo_build-ac5a55d97f045ecb.fuu9hhsm8006nv4.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps" "-L" "/usr/share/testsuite/rust/cargo_build/target/release/deps" "-L" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libstd-d9f43542570761f2.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-863091a0712dc04d.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libhashbrown-990caae4ea073ac3.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/librustc_std_workspace_alloc-4dcdfdc6165e6dda.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libbacktrace-3ac71b1b25a6780c.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libbacktrace_sys-46853b7005ec2c37.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/librustc_demangle-17ab9a7288fa7f19.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libunwind-7a887ee0d3ea15e7.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libcfg_if-9b3fccce41ca4313.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/liblibc-e0b3cdffd42e49f9.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/liballoc-4e2067f30b56cc0c.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/librustc_std_workspace_core-6dbe599efd27127b.rlib" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libcore-b4d9c41fe41fe913.rlib" "-Wl,--end-group" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libcompiler_builtins-23aaf14114881062.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-Wl,-Bstatic" "-lgcc_eh" "-lpthread" "-Wl,-Bdynamic" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-lmsvcrt" "-luser32" "-lkernel32" "/opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/rsend.o"
  = note: /opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-863091a0712dc04d.rlib(panic_unwind-863091a0712dc04d.panic_unwind.c56dhali-cgu.0.rcgu.o): In function `ZN12panic_unwind3imp5panic17hd928d636eb53b842E':
          /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind/gcc.rs:73: undefined reference to `_Unwind_RaiseException'
          /opt/x86_64-linux-musl/toolchains/1.43.0-x86_64-unknown-linux-musl/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-863091a0712dc04d.rlib(panic_unwind-863091a0712dc04d.panic_unwind.c56dhali-cgu.0.rcgu.o): In function `rust_eh_unwind_resume':
          /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind/gcc.rs:341: undefined reference to `_Unwind_Resume'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

error: failed to compile `cargo_build v0.1.0 (/usr/share/testsuite/rust/cargo_build)`, intermediate artifacts can be found at `/usr/share/testsuite/rust/cargo_build/target`

Caused by:
  could not compile `cargo_build`.

Caused by:
  process didn't exit successfully: `rustc --crate-name cargo_build --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=ac5a55d97f045ecb -C extra-filename=-ac5a55d97f045ecb --out-dir /usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps --target i686-pc-windows-gnu -C linker=i686-w64-mingw32-gcc -L dependency=/usr/share/testsuite/rust/cargo_build/target/i686-pc-windows-gnu/release/deps -L dependency=/usr/share/testsuite/rust/cargo_build/target/release/deps` (exit code: 1)
make[1]: *** [Makefile:7: /tmp/testsuite/i686-w64-mingw32/rust/cargo_build/cargo_build.exe] Error 101
make: *** [Makefile:48: install-project-rust-cargo_build] Error 2
make: *** Waiting for unfinished jobs....
Previous command exited with 2

It goes without saying I can't reproduce the failure locally...

We've already seen these errors in the past in JuliaPackaging/Yggdrasil#1780 (comment)

This is a build_tarballs.jl to reproduce the failing tests:

using BinaryBuilder
name = "testsuite"
version = v"1.0.0"
sources = DirectorySource[]
script = raw"""
make -j${nproc} -sC /usr/share/testsuite install
install_license /usr/share/licenses/libuv/LICENSE
"""
platforms = [
    Platform("aarch64", "linux"; libc="musl"),
    Platform("i686", "windows"),
]
platforms = expand_cxxstring_abis(expand_gfortran_versions(platforms))
products = [
    ExecutableProduct("hello_world_c", :hello_world_c),
    ExecutableProduct("hello_world_cxx", :hello_world_cxx),
    ExecutableProduct("hello_world_fortran", :hello_world_fortran),
    ExecutableProduct("hello_world_go", :hello_world_go),
    ExecutableProduct("hello_world_rust", :hello_world_rust),
]
dependencies = [
    Dependency("CompilerSupportLibraries_jll"),
]
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; compilers=[:c, :go, :rust])
@giordano
Copy link
Member Author

giordano commented Dec 2, 2021

Ok, I can finally reproduce the errors locally. I'm not really sure what changed since July. In any case:

@giordano
Copy link
Member Author

giordano commented Dec 3, 2021

aarch64-linux-musl fixed by #1121, i686-w64-mingw32 is hopeless (it's really an upstream issue), so I'm going to close this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant