Skip to content

rust-lld: error: undefined symbol: wcslen #579

Description

@MonsterDruide1

I'm receiving the following error when trying to build a project that uses bootloader as a dependency:

  error: linking with `rust-lld` failed: exit status: 1
    |
    = note:  "rust-lld" "-flavor" "link" "/NOLOGO" "/entry:efi_main" "/subsystem:efi_application" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-x86_64-uefi/994cc9906dd1def5/out/rustcF06imu/symbols.o" "<4 object files omitted>" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/serde-json-core/e40353e9c4c6024b/out/libserde_json_core-e40353e9c4c6024b.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/ryu/7ff792136f0eb661/out/libryu-7ff792136f0eb661.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/heapless/e215a966a7ff0f21/out/libheapless-e215a966a7ff0f21.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/stable_deref_trait/9f9535932f1a1106/out/libstable_deref_trait-9f9535932f1a1106.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/spin/e7258a34f0dca36c/out/libspin-e7258a34f0dca36c.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/hash32/7a07d78849cb1189/out/libhash32-7a07d78849cb1189.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/byteorder/8295cf06fe27aa3f/out/libbyteorder-8295cf06fe27aa3f.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/uefi/a9e057b015f82fde/out/libuefi-a9e057b015f82fde.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/ucs2/079ed91c590fe4a4/out/libucs2-079ed91c590fe4a4.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/ptr_meta/2d35ab8eb1671d94/out/libptr_meta-2d35ab8eb1671d94.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/uefi-raw/1855ef487fbcee56/out/libuefi_raw-1855ef487fbcee56.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/uguid/fed1f1d1f182bd43/out/libuguid-fed1f1d1f182bd43.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-x86_64-common/6d377500dbfcc9e6/out/libbootloader_x86_64_common-6d377500dbfcc9e6.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/uart_16550/789370088161ea34/out/libuart_16550-789370088161ea34.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/x86/549c686a6f215b51/out/libx86-549c686a6f215b51.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/log/ad0d3ff47997bf29/out/liblog-ad0d3ff47997bf29.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/spinning_top/23943d4b6e133e8f/out/libspinning_top-23943d4b6e133e8f.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/lock_api/45c8e64231def2e4/out/liblock_api-45c8e64231def2e4.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/scopeguard/8356429cd7ff7fb8/out/libscopeguard-8356429cd7ff7fb8.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/conquer-once/cf515e582bacca68/out/libconquer_once-cf515e582bacca68.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/noto-sans-mono-bitmap/41914a6df5a24888/out/libnoto_sans_mono_bitmap-41914a6df5a24888.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/raw-cpuid/f7317aab59a01fc7/out/libraw_cpuid-f7317aab59a01fc7.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bitflags/9e73a561178871dc/out/libbitflags-9e73a561178871dc.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/rand_hc/664c1ea01e5bb0b6/out/librand_hc-664c1ea01e5bb0b6.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/rand/443e6fdc885e5fc6/out/librand-443e6fdc885e5fc6.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/rand_core/0626e2bbca207119/out/librand_core-0626e2bbca207119.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/xmas-elf/b284ab101c7f142f/out/libxmas_elf-b284ab101c7f142f.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/zero/4b1f8d919fd9abe9/out/libzero-4b1f8d919fd9abe9.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/x86_64/6b4754253bc72c25/out/libx86_64-6b4754253bc72c25.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/volatile/0487326c0e639710/out/libvolatile-0487326c0e639710.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bitflags/c48aef86280e6335/out/libbitflags-c48aef86280e6335.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bit_field/38c3af30ac1a3e07/out/libbit_field-38c3af30ac1a3e07.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/usize_conversions/18ce94f9a0dd3f85/out/libusize_conversions-18ce94f9a0dd3f85.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-boot-config/07584eda9c67956f/out/libbootloader_boot_config-07584eda9c67956f.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/serde/c0f652d4137363c2/out/libserde-c0f652d4137363c2.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/serde_core/63d71f7a4a1f0829/out/libserde_core-63d71f7a4a1f0829.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader_api/01906b9ccff42021/out/libbootloader_api-01906b9ccff42021.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/core/5248b335eb12cf6c/out/libcore-5248b335eb12cf6c.rlib" "/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/compiler_builtins/3440346469431d52/out/libcompiler_builtins-3440346469431d52.rlib" "/NXCOMPAT" "/OUT:/tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-x86_64-uefi/994cc9906dd1def5/out/bootloader_x86_64_uefi.efi" "/OPT:REF,ICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NODEFAULTLIB"
    = note: some arguments are omitted. use `--verbose` to show all linker arguments
    = note: rust-lld: error: undefined symbol: wcslen
            >>> referenced by /tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-x86_64-uefi/994cc9906dd1def5/out/bootloader_x86_64_uefi.bootloader_x86_64_uefi.ea31791271ffb667-cgu.1.rcgu.o:(<uefi::proto::media::file::regular::RegularFile as uefi::proto::media::file::File>::get_info::<uefi::proto::media::file::info::FileInfo>)
            >>> referenced by /tmp/cargo-installn9Qvo9/x86_64-unknown-uefi/release/build/bootloader-x86_64-uefi/994cc9906dd1def5/out/bootloader_x86_64_uefi.bootloader_x86_64_uefi.ea31791271ffb667-cgu.2.rcgu.o:(<uefi::proto::media::file::info::FileInfo as uefi::proto::media::file::info::FromUefi>::from_uefi)
            >>> referenced by libuefi-a9e057b015f82fde.rlib(uefi-a9e057b015f82fde.uefi.fd3e7505b748215d-cgu.6.rcgu.o):(<uefi::proto::shell::Shell>::current_dir)
            >>> referenced 9 more times

Building the same project has worked just fine in the past. I'm not sure what happened that caused it to break ; I've used a cached version of the resulting .img version for a while.

It's now consistently broken across three machines. I've tried running cargo clean and cargo update, with no change to this error message.

More details about my system/setup:

$ cargo tree -i bootloader
bootloader v0.11.17
$ rustup update
info: syncing channel updates for nightly-x86_64-unknown-linux-gnu

  nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.99.0-nightly (969b803cb 2026-08-09)

info: checking for self-update (current version: 1.29.0)
info: cleaning up downloads & tmp directories
$ rustc --version
rustc 1.99.0-nightly (969b803cb 2026-08-09)
$ cargo --version
cargo 1.99.0-nightly (b07e5a086 2026-08-07)

Please tell me if you need more information from my side. Given that no other issue exists and the problem started to appear on my first system a few days ago, it's probably something being broken on my side. However, I have no idea where or what to check at this point. Thanks for any suggestion!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions