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

undefined LFS64 symbol when link to musl 1.2.4 #111285

Closed
12101111 opened this issue May 6, 2023 · 4 comments
Closed

undefined LFS64 symbol when link to musl 1.2.4 #111285

12101111 opened this issue May 6, 2023 · 4 comments
Labels
A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. O-musl Target: The musl libc

Comments

@12101111
Copy link
Contributor

12101111 commented May 6, 2023

I tried this code:

main.rs:

fn main() {}
rustc -Clink-self-contained=off main.rs

I expected to see this happen: It should build

Instead, this happened:

error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/bin:/home/han/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/bin:/usr/lib/llvm/15/bin:/home/han/.local/bin:/home/han/go/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcDOkt7z/symbols.o" "main.main.8228077529f45d78-cgu.0.rcgu.o" "main.main.8228077529f45d78-cgu.1.rcgu.o" "main.main.8228077529f45d78-cgu.2.rcgu.o" "main.main.8228077529f45d78-cgu.3.rcgu.o" "main.main.8228077529f45d78-cgu.4.rcgu.o" "main.gsdr1cwoz34uplr.rcgu.o" "-Wl,--as-needed" "-L" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libpanic_unwind-082ef6e7ddd644e8.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libobject-c2d59b7eddb9395e.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libmemchr-c5fae2beedcf238f.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libaddr2line-be674a195bdb38ba.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libgimli-8981adfc9f969991.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_demangle-ffda94581f3ad8ac.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd_detect-23910715c40ebe07.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libhashbrown-e25b246ec6dfcca0.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_alloc-3192dd2fd2930ffe.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libminiz_oxide-b0237b09c82e7f53.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libadler-653c8164970b4878.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libunwind-ec8b51ffdda56362.rlib" "-lunwind" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcfg_if-55f6802ac65c62c3.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liblibc-4857c7eda487af99.rlib" "-lc" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liballoc-7b4083a536540b3b.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_core-9e83db0936cfd878.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcore-7940b050ca7b2e65.rlib" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcompiler_builtins-8b06a6f9560b1ad8.rlib" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-o" "main" "-Wl,--gc-sections" "-static-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
  = note: ld.lld: error: undefined symbol: fstat64
          >>> referenced by fs.rs:1057 (library/std/src/sys/unix/fs.rs:1057)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::fs::buffer_capacity_required::h4ee042adb5bad8d4) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib
          >>> referenced by fs.rs:1057 (library/std/src/sys/unix/fs.rs:1057)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::backtrace_rs::symbolize::gimli::mmap::h4f287054a04eda31) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib

          ld.lld: error: undefined symbol: lseek64
          >>> referenced by fs.rs:1174 (library/std/src/sys/unix/fs.rs:1174)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::fs::buffer_capacity_required::h4ee042adb5bad8d4) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib

          ld.lld: error: undefined symbol: stat64
          >>> referenced by fs.rs:1558 (library/std/src/sys/unix/fs.rs:1558)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::fs::metadata::h77a51b3c4ad14f93) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib
          >>> referenced by fs.rs:1558 (library/std/src/sys/unix/fs.rs:1558)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::sys::common::small_c_string::run_with_cstr_allocating::h67e0e8b897a01bbd) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib
          >>> referenced by fs.rs:1558 (library/std/src/sys/unix/fs.rs:1558)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::backtrace_rs::symbolize::gimli::elf::debug_path_exists::hb4f37f14341fa65e) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib

          ld.lld: error: undefined symbol: open64
          >>> referenced by fs.rs:1038 (library/std/src/sys/unix/fs.rs:1038)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::sys::unix::fs::File::open_c::hbff52343617cc691) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib
          >>> referenced by mod.rs:0 (library/std/src/sys/unix/mod.rs:0)
          >>>               std-d8b731414c1987c5.std.2c769fa08bcee5a9-cgu.0.rcgu.o:(std::sys::unix::fs::File::open_c::hbff52343617cc691) in archive /home/han/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-d8b731414c1987c5.rlib
          clang-15: error: linker command failed with exit code 1 (use -v to see invocation)


error: aborting due to previous error

Meta

rustc --version --verbose:

rustc 1.71.0-nightly (f9a6b7158 2023-05-05)
binary: rustc
commit-hash: f9a6b71580cd53dd4491d9bb6400f7ee841d9c22
commit-date: 2023-05-05
host: x86_64-unknown-linux-musl
release: 1.71.0-nightly
LLVM version: 16.0.2

ldd --version:

musl libc (x86_64)
Version 1.2.4
Dynamic Program Loader
Usage: ldd [options] [--] pathname

See also

@12101111 12101111 added the C-bug Category: This is a bug. label May 6, 2023
@bananarne
Copy link

seeing this too but with
rustc 1.69.0-nightly (84c898d 2023-04-16) (gentoo)
binary: rustc
commit-hash: 84c898d
commit-date: 2023-04-16
host: x86_64-unknown-linux-gnu
release: 1.69.0-nightly
LLVM version: 15.0.7

musl 1.2.4 & gcc 13.1.0-r1

@jyn514
Copy link
Member

jyn514 commented May 26, 2023

I think this would be fixed by rust-lang/libc#2935.

@cuviper
Copy link
Member

cuviper commented Jun 30, 2023

Looks like that was published in libc 0.2.145, so fixed here by the libc bump in #111819?

@12101111
Copy link
Contributor Author

Fixed by rust-lang/libc#2935

tgbugs added a commit to tgbugs/dockerfiles that referenced this issue Mar 26, 2024
also removes forcing rust <1.72 because there was a bug where the rust
libc support was broken by changes in musl 1.2.4 see
rust-lang/rust#111285
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 C-bug Category: This is a bug. O-musl Target: The musl libc
Projects
None yet
Development

No branches or pull requests

5 participants
@cuviper @12101111 @bananarne @jyn514 and others