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

Linking error on Rust 1.75.0 x86_64-unknown-linux-musl toolchain (and in aarch64) #119883

Closed
ogarcia opened this issue Jan 12, 2024 · 2 comments
Closed
Labels
A-linkage Area: linking into static, shared libraries and binaries O-musl Target: The musl libc T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@ogarcia
Copy link

ogarcia commented Jan 12, 2024

I have a project that currently compiles and links with Rust 1.74.0 and earlier but gives a linking error in version 1.75.0 with x86_64-unknown-linux-musl and aarch64-unknown-linux-musl toolchains.

The failure occurs both when creating the debug version and the release version, in both versions it gives an undefined reference error.

Backtrace

Backtrace generated with RUST_BACKTRACE=1 RUSTFLAGS="-Ctarget-feature=-crt-static" cargo build --release.

Backtrace

  = note: LC_ALL="C" PATH="/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/bin:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcKJPQi9/symbols.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.00.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.01.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.02.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.03.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.04.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.05.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.06.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.07.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.08.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.09.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.10.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.11.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.12.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.13.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.14.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.rockpass.2307d537a6bd6d31-cgu.15.rcgu.o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea.2k4o5xf6ie9tm41z.rcgu.o" "-Wl,--as-needed" "-L" "/data/target/release/deps" "-L" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/data/target/release/deps/libdiesel_migrations-132c4232ca2b1be3.rlib" "/data/target/release/deps/libmigrations_internals-75719053affacb4c.rlib" "/data/target/release/deps/libtoml-2b30d0e29fe28f0b.rlib" "/data/target/release/deps/libtoml_edit-ee9deb8480f9e09d.rlib" "/data/target/release/deps/libserde_spanned-37353e0065a1ace0.rlib" "/data/target/release/deps/libwinnow-fce12f51180d1aa0.rlib" "/data/target/release/deps/libtoml_datetime-7da80fdb489748bc.rlib" "/data/target/release/deps/libuuid-12a41c5b1db177c7.rlib" "/data/target/release/deps/libjwt-ed64610cf5e12252.rlib" "/data/target/release/deps/libsha2-1dc8fd389d9c1a58.rlib" "/data/target/release/deps/libcpufeatures-44a719d3ea55395f.rlib" "/data/target/release/deps/libbase64-a93d16e721849f91.rlib" "/data/target/release/deps/libhmac-ca6858fa8fd0a212.rlib" "/data/target/release/deps/libdigest-31ef7a5d63fd7152.rlib" "/data/target/release/deps/libblock_buffer-5350fa56df85a856.rlib" "/data/target/release/deps/libbcrypt-26c0566daf3ce221.rlib" "/data/target/release/deps/libsubtle-c8601fd1b471a2aa.rlib" "/data/target/release/deps/libblowfish-2e1c186d69640e58.rlib" "/data/target/release/deps/libbyteorder-06aee179e3c8b813.rlib" "/data/target/release/deps/libcipher-8aa7ab5d894c3eba.rlib" "/data/target/release/deps/libinout-912984df5d6eb6b5.rlib" "/data/target/release/deps/libcrypto_common-eed1fc5d42d92433.rlib" "/data/target/release/deps/libgeneric_array-f2adf741ce62dc62.rlib" "/data/target/release/deps/libtypenum-606cb623a69153a2.rlib" "/data/target/release/deps/libgetrandom-69ab738881d0819b.rlib" "/data/target/release/deps/libbase64-141ef24c49584fa8.rlib" "/data/target/release/deps/libzeroize-7767efba4a11daf6.rlib" "/data/target/release/deps/librocket_sync_db_pools-3b97170a3ac4336e.rlib" "/data/target/release/deps/librocket-70566f14e26390f8.rlib" "/data/target/release/deps/libtokio_util-f9908de4837a1ccc.rlib" "/data/target/release/deps/libtempfile-56389feb74d94fc6.rlib" "/data/target/release/deps/libfastrand-ee7ad641412b1fda.rlib" "/data/target/release/deps/libremove_dir_all-9f359f13d1ee2fc4.rlib" "/data/target/release/deps/libserde_json-c2e8fe3d320ae4e9.rlib" "/data/target/release/deps/libryu-9d793cb871bfa723.rlib" "/data/target/release/deps/librocket_http-25ebe930fa0299e8.rlib" "/data/target/release/deps/libcookie-2e5cad1621631f07.rlib" "/data/target/release/deps/libstable_pattern-28ec5fc2db3b286f.rlib" "/data/target/release/deps/libref_cast-472006a5deda77f7.rlib" "/data/target/release/deps/libpercent_encoding-d27a8c3891a43f27.rlib" "/data/target/release/deps/libhyper-2792b9544320e01f.rlib" "/data/target/release/deps/libh2-9b8aba50cd84fea4.rlib" "/data/target/release/deps/libindexmap-cc848df3d8642625.rlib" "/data/target/release/deps/libhashbrown-bba60ad7eb54ae8d.rlib" "/data/target/release/deps/libtower_service-f1a0cef80668cb33.rlib" "/data/target/release/deps/libtracing-dd858f3a4e38a89b.rlib" "/data/target/release/deps/libtracing_core-c357f0c3332b8999.rlib" "/data/target/release/deps/liblazy_static-c05919894baef2ce.rlib" "/data/target/release/deps/libhttp_body-aa761646aec62644.rlib" "/data/target/release/deps/libhttpdate-8ed3be38ca22752f.rlib" "/data/target/release/deps/libmulter-f0f5b180948534f6.rlib" "/data/target/release/deps/libmime-21ed4f8bf7f5c496.rlib" "/data/target/release/deps/libtokio_util-18e40b1dec8932d1.rlib" "/data/target/release/deps/libhttparse-78457bba57ec9883.rlib" "/data/target/release/deps/libspin-4ad1d6701f88bb66.rlib" "/data/target/release/deps/libencoding_rs-39386b67c81a0882.rlib" "/data/target/release/deps/libhttp-1070e21bf3c83f93.rlib" "/data/target/release/deps/libfnv-10dab5b02d58c091.rlib" "/data/target/release/deps/libindexmap-5ec6bd354590a0d3.rlib" "/data/target/release/deps/libequivalent-3d0bf949e6f9c23b.rlib" "/data/target/release/deps/libhashbrown-210c92f2af756103.rlib" "/data/target/release/deps/libeither-372bad8e4c744ae9.rlib" "/data/target/release/deps/libtokio_stream-67a0d2408d2e71f9.rlib" "/data/target/release/deps/libatomic-93e4c2ca671754dc.rlib" "/data/target/release/deps/libstate-e15038c19e003ed2.rlib" "/data/target/release/deps/libparking_lot-3d13a81391735756.rlib" "/data/target/release/deps/libparking_lot_core-3490c07157b39da1.rlib" "/data/target/release/deps/libubyte-21693e0b63920239.rlib" "/data/target/release/deps/libtime-7ef296c2d0ec0019.rlib" "/data/target/release/deps/libitoa-2280df0acfd0970f.rlib" "/data/target/release/deps/libtime_core-4bdeb1ab5f3ea2c8.rlib" "/data/target/release/deps/libfigment-6dccfc5956820f24.rlib" "/data/target/release/deps/libtoml-10678a9cdfb1f029.rlib" "/data/target/release/deps/libuncased-49a188f9bf040627.rlib" "/data/target/release/deps/libpear-98a424d8dc66835d.rlib" "/data/target/release/deps/libyansi-e13e85e978f2aa81.rlib" "/data/target/release/deps/libinlinable_string-444978b46c915236.rlib" "/data/target/release/deps/libtokio-d71a787eaf6a9cae.rlib" "/data/target/release/deps/libsignal_hook_registry-9ca77c1c42653d6d.rlib" "/data/target/release/deps/libnum_cpus-9bcf0abe2376401b.rlib" "/data/target/release/deps/libsocket2-4e86379f76b56050.rlib" "/data/target/release/deps/libbytes-6241f3dc8ceddce2.rlib" "/data/target/release/deps/libmio-d61c8a5ea684fa1d.rlib" "/data/target/release/deps/libfutures-92a8831b7c42ac6f.rlib" "/data/target/release/deps/libfutures_util-8fb997e009a3c810.rlib" "/data/target/release/deps/libmemchr-fb31bfcfdf48fa3c.rlib" "/data/target/release/deps/libfutures_io-010cd739d6fc631a.rlib" "/data/target/release/deps/libslab-5a442a1f79d0032f.rlib" "/data/target/release/deps/libfutures_channel-99258c75f54826c6.rlib" "/data/target/release/deps/libpin_project_lite-fdfc8c59cbe7adeb.rlib" "/data/target/release/deps/libfutures_sink-6da5718fb7119801.rlib" "/data/target/release/deps/libfutures_task-0620cbe10b5c0f5f.rlib" "/data/target/release/deps/libpin_utils-897823617a08d2d5.rlib" "/data/target/release/deps/libasync_stream-70fa469831cf880b.rlib" "/data/target/release/deps/libfutures_core-0acb64e51844d4c7.rlib" "/data/target/release/deps/libyansi-372c11bc72efdeb1.rlib" "/data/target/release/deps/libis_terminal-eb42cb6a366dc84b.rlib" "/data/target/release/deps/librustix-7019a72dde360436.rlib" "/data/target/release/deps/libbitflags-77ca17d53c1d1a7c.rlib" "/data/target/release/deps/liblinux_raw_sys-9f25758daf0947bc.rlib" "/data/target/release/deps/libio_lifetimes-a023bcb7f2ec8d24.rlib" "/data/target/release/deps/libdiesel-c0385da22da2b1be.rlib" "/data/target/release/deps/libr2d2-0628e9825a776f32.rlib" "/data/target/release/deps/libscheduled_thread_pool-2950e1f2a6c8b922.rlib" "/data/target/release/deps/libparking_lot-92fea7c667313236.rlib" "/data/target/release/deps/libparking_lot_core-c7d09c89b88f08f9.rlib" "/data/target/release/deps/liblibc-1100fab2283dacca.rlib" "/data/target/release/deps/libsmallvec-a21f68a4f137640f.rlib" "/data/target/release/deps/liblock_api-a4e5b0847d23605f.rlib" "/data/target/release/deps/libscopeguard-5356ea19c110812e.rlib" "/data/target/release/deps/libinstant-fbfbbab565579fe6.rlib" "/data/target/release/deps/liblog-0d97ed148e83b5bd.rlib" "/data/target/release/deps/libcfg_if-c6a7f215041bcbf7.rlib" "/data/target/release/deps/libchrono-c1cc1d220b7f78a4.rlib" "/data/target/release/deps/libnum_traits-f64eeff960f74995.rlib" "/data/target/release/deps/libiana_time_zone-fc4e3162db04c555.rlib" "/data/target/release/deps/libserde-6c722eb0debfd959.rlib" "/data/target/release/deps/liblibsqlite3_sys-a2f944e2ef1f34d6.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-11c02606063fb1b5.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libpanic_unwind-527b1ade0207850b.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libobject-5c6479882291983e.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libmemchr-b30d7598b031e855.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libaddr2line-7bdd9f1650697dee.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libgimli-af6e6b96893335a7.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_demangle-61a774fd0ca56cef.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd_detect-0bdaa2154e535182.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libhashbrown-40daaa64e7b3ff16.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_alloc-51b0c25ea806d020.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libminiz_oxide-503b1c30e4fe986c.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libadler-0dfa15d5b98a6f2c.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libunwind-7e3d215879e752d5.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcfg_if-f91de774775af47a.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liblibc-a172c9da7a8c39aa.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liballoc-05ed26095d7bae0a.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_core-940bcdced839ada6.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcore-ece58c607aadf4ad.rlib" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcompiler_builtins-cfd03998b63f49b3.rlib" "-Wl,-Bdynamic" "-lsqlite3" "-lgcc_s" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/local/rustup/toolchains/1.75.0-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-o" "/data/target/release/deps/rockpass-1ab29b8a00b656ea" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs"
  = note: /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /data/target/release/deps/libgetrandom-69ab738881d0819b.rlib(getrandom-69ab738881d0819b.getrandom.90a28c919282a64d-cgu.0.rcgu.o): in function `getrandom::getrandom':
          getrandom.90a28c919282a64d-cgu.0:(.text._ZN9getrandom9getrandom17h706b59c41138a284E+0x194): undefined reference to `open64'
          /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: getrandom.90a28c919282a64d-cgu.0:(.text._ZN9getrandom9getrandom17h706b59c41138a284E+0x244): undefined reference to `open64'
          collect2: error: ld returned 1 exit status

You can see here a pipeline execution to compile it with x86_64-unknown-linux-musl and here one to compile it with aarch64-unknown-linux-musl.

Note: I have tried to reproduce it with a simpler project using only getrandom but in that case the error does not occur.

@ogarcia ogarcia added C-bug Category: This is a bug. regression-untriaged Untriaged performance or correctness regression. labels Jan 12, 2024
@rustbot rustbot added I-prioritize Issue: Indicates that prioritization has been requested for this issue. needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. regression-from-stable-to-stable Performance or correctness regression from one stable version to another. and removed regression-untriaged Untriaged performance or correctness regression. labels Jan 12, 2024
@saethlin saethlin added O-musl Target: The musl libc A-linkage Area: linking into static, shared libraries and binaries T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Jan 12, 2024
@bjorn3
Copy link
Member

bjorn3 commented Jan 12, 2024

As of rust-random/getrandom#326 (included in getrandom 0.2.9) open64 isn't used anymore. It doesn't exist on musl. It looks like you are using getrandom 0.2.5. Running cargo update -p getrandom and then committing the Cargo.lock change should fix this problem.

@ogarcia
Copy link
Author

ogarcia commented Jan 13, 2024

That's it, upgrading getrandom did the trick. Thanks @bjorn3

@ogarcia ogarcia closed this as completed Jan 13, 2024
@saethlin saethlin removed regression-from-stable-to-stable Performance or correctness regression from one stable version to another. C-bug Category: This is a bug. I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Jan 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linkage Area: linking into static, shared libraries and binaries O-musl Target: The musl libc T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants