Skip to content

Wrong location for rust stdlib #5784

@500-internal-server-error

Description

Description / Steps to reproduce the issue

  1. pacman -S rust
  2. git clone https://github.com/mmastrac/rust-ctor.git
  3. git checkout 350d397394f91332517cf2924737b79edf9581ab (probably not necessary to pin version, but here for reproducibility)
  4. cargo test -p ctor-proc-macro --lib --locked succeeds on Linux, but fails on MSYS2.

It seems /usr/lib/rustlib/std-*.dll is not linked to /usr/bin on Windows:

$ pacman -Ql rust | grep .dll
rust /usr/bin/rustc_driver-f1b294e4060b1f94.dll
rust /usr/lib/rustlib/x86_64-pc-cygwin/lib/libstd-57fba8f4d8edb7c7.dll.a
rust /usr/lib/rustlib/x86_64-pc-cygwin/lib/std-57fba8f4d8edb7c7.dll

vs /usr/lib/rustlib/libstd-*.so to /usr/lib on Linux:

$ pacman -Ql rust | grep .so
rust /usr/lib/librustc_driver-4da335da18410923.so
rust /usr/lib/libstd-be8d7b962a3e49b4.so
rust /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-be8d7b962a3e49b4.so

For now manual symlinking/copying is a workaround, but it seems the proper fix should be in the Rust build scripts, not the distro PKGBUILD.

Expected behavior

On Linux:

    Updating crates.io index
   Compiling ctor-proc-macro v0.0.7 (/home/null/temp/test/rust-ctor/ctor-proc-macro)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1.04s
     Running unittests src/lib.rs (target/debug/deps/ctor_proc_macro-e3285b4a78dfb8f0)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Actual behavior

On MSYS2:

   Compiling ctor-proc-macro v0.0.7 (/c/Users/User/temp/test/rust-ctor/ctor-proc-macro)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.49s
     Running unittests src/lib.rs (target/debug/deps/ctor_proc_macro-41b8744361f77cc3.exe)
C:/Users/User/temp/test/rust-ctor/target/debug/deps/ctor_proc_macro-41b8744361f77cc3.exe: error while loading shared libraries: std-57fba8f4d8edb7c7.dll: cannot open shared object file: No such file or directory
error: test failed, to rerun pass `-p ctor-proc-macro --lib`

Caused by:
  process didn't exit successfully: `/c/Users/User/temp/test/rust-ctor/target/debug/deps/ctor_proc_macro-41b8744361f77cc3.exe` (exit status: 127)
note: test exited abnormally; to see the full output pass --no-capture to the harness.

Verification

Windows Version

MSYS_NT-10.0-26200

Are you willing to submit a PR?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions