Skip to content

undefined LFS64 symbol when link to musl 1.2.4 #111285

Closed
@12101111

Description

@12101111

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkageArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.O-muslTarget: The musl libc

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions