Skip to content

Regression: "rust-lld: error: undefined symbol: Rlog1p" #150663

Open

Description

@theemathas
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/tmp/rustcIawPNl/symbols.o" "<2 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/{liblibr-fb1f28c02835dd25,liblibc-21c65d3cecbb2f0e}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lR" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcIawPNl/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib/R/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/examples/01_embedded_print-fd7c93e7d624e282" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-Wl,--export-dynamic" "-Wl,-Bsymbolic-functions" "-Wl,-z,relro"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: undefined symbol: Rlog1p
[INFO] [stdout]           >>> referenced by math.rs:56 (src/math.rs:56)
[INFO] [stdout]           >>>               libr-fb1f28c02835dd25.libr.afc42f30ce0bac2d-cgu.0.rcgu.o:(libr::math::log1p::hf26b7710c6b32ad0) in archive /opt/rustwide/target/debug/deps/liblibr-fb1f28c02835dd25.rlib
[INFO] [stdout]           collect2: error: ld returned 1 exit status

https://crater-reports.s3.amazonaws.com/beta-1.93-4/beta-2025-12-22/reg/libr-0.1.0/log.txt

Activity

  1. added
    C-bugCategory: This is a bug.
    A-linkersArea: linkers... you gotta love linkers
    on Jan 4, 2026
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Jan 4, 2026
  3. added
    E-needs-bisectionCall for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc
    E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
    on Jan 4, 2026
  4. Noratrieb commented on Jan 4, 2026

    @Noratrieb
    Member

    This crate is doing very strange things. Their build.rs is

    fn main() {
        match pkg_config::find_library("libR") {
            Ok(..) => return,
            Err(e) => panic!("Couldn't find libR from pkgconfig ({:?}), failed", e),
        }
    }

    Which, notably, only probes for the libraries existence, which doesn't actually link it.
    They do link it via #[link(name = "R")] in the source though.

    I cannot reproduce this error locally in a Debian 12 container. It builds fine for me when I have pkg-config and R (pkgs r-base r-base-dev) installed. It errors in the build.rs when either pkg-config or R are missing.
    I ran cargo test --no-run like crater.

    My linker commandline was

    LC_ALL="C" PATH="/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/meow/target/debug/examples/rustcr56c81/symbols.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.0v8lo7ocme7p3s2fiwlfan00t.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.18qa3rfugbd7s92x674dslkzr.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.2rqx3bp8h50g5e3wpvptkv9nx.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.3betu7xj29i0s59jdiw36irip.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.3jd6ssnw3og0zrfa9i7atv3by.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.4s2gtg8udd04mt6yp27x7tl87.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.4uih0j9srypwn6ns0lq5nsj21.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.4yvpff3qhrl2ougrehxcelopt.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.5dz3qc8vty0ydtgk4fpg9h4eh.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.5u5y9ik5a5jul8vxscqx0xrd6.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.7uimg4jlrdidf6wivjdolh8ok.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.8idhrwt7aqj962zvnrbh3wluw.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.95xzej87zi3v41alcci4azq12.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.9iqa9vyoukohldrio7j3gxyw8.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.brqlpu8z76dqse4rp3mppsryk.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.c7zpw04dls435uirdid2y86mi.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.epm9rr6ybiy2872aqn31ovctw.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.eryvufw87ou6un0hc72e4pr1e.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.ewdbb8nf1s53gwf3f0zjax13x.0c804xx.rcgu.o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f.7dc0uhmiyuyf6yf1020q2wc01.0c804xx.rcgu.o" "-Wl,--as-needed" "-Wl,-Bstatic" "/meow/target/debug/deps/liblibr-4a9661f1fd3cfc3c.rlib" "/meow/target/debug/deps/liblibc-0bf3dea0d5dbfef6.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-ad248a6e6fe48fd9.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c648d4fae29b59eb.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-746fcf4e6945e844.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-1a4ac7a89d135114.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-8c9eefd80a8a6655.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-8a6df0673106affc.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-4ae19dac63760b32.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-bd991e9d58f00c67.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-09b987df3514c18d.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-093e2dcc3b79b78f.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-f82d6ff939dd0c22.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-ec6104bef921e5e8.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler2-22f8aa70ac4596a8.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-3a784e481f6f3a6b.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-c965931b11617a7d.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-382246745f6dde59.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-e2ad2c5894b6a0dd.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-78f4b20a6083cd0a.rlib" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-7763dbcaa86b3b00.rlib" "-Wl,-Bdynamic" "-lR" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/meow/target/debug/examples/rustcr56c81/raw-dylibs" "-B/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib/R/lib" "-L" "/root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/meow/target/debug/examples/02_embedded_named_call-04b916c374bba19f" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-Wl,--export-dynamic" "-Wl,-z,relro"
    

    Which contains the important -lR that links in R. The crater linker command from the error also contains it.
    I suspect that there's something strange going on with the crater env. It should have R installed https://github.com/rust-lang/crates-build-env/blob/9fbffe614e1a811d77ea91d65efaae306b0ba8ac/linux/packages.txt#L1088.

  5. removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Jan 4, 2026
  6. apiraino commented on Jan 5, 2026

    @apiraino
    Contributor

    Unsure why we have this crate in our testsuite (or why was it included at the time) 🤔

  7. Noratrieb commented on Jan 5, 2026

    @Noratrieb
    Member

    The entire point of crater is to test all the crates :P

  8. apiraino commented on Jan 5, 2026

    @apiraino
    Contributor

    I cannot reproduce the issue as well (with the correct setup, as you point out) both on stable and beta. If these dependencies are a requirement as they always were, then I'm curious why the crater fails (runs cargo test). Or if this is a new situation.

  9. added
    T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.
    and removed
    E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
    on Jan 5, 2026
  10. 3 remaining items

  11. apiraino commented on Jan 29, 2026

    @apiraino
    Contributor

    Assigning priority (discussion on Zulip).

    @rustbot label -I-prioritize +P-high

  12. added
    P-highHigh priority
    and removed
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Jan 29, 2026
  13. theemathas commented on Jan 30, 2026

    @theemathas
    ContributorAuthor
  14. removed
    E-needs-bisectionCall for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc
    on Jan 30, 2026
  15. apiraino commented on Feb 26, 2026

    @apiraino
    Contributor

    Is this still just a T-infra issue? trying to understand if we t-compiler need to look into it (release is next week)

  16. theemathas commented on Feb 26, 2026

    @theemathas
    ContributorAuthor

    It's probably T-infra, yeah. But impossible to know for sure without figuring out the root cause.

  17. added and removed
    P-highHigh priority
    on Feb 26, 2026
  18. added
    E-needs-investigationCall for participation: This issues needs some investigation to determine current status
    on Feb 26, 2026
  19. added
    P-lowLow priority
    and removed on Feb 26, 2026
  20. wesleywiser commented on Feb 26, 2026

    @wesleywiser
    Member

    Visited during the compiler team triage meeting, we decided to mark this as P-low because the most likely explanation is that this is a result of a property of the crater environment rather than any kind of actual regression as the compiler is doing the correct operation, the linker is just failing to find the symbol for whatever reason.

  21. added
    regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.
    and removed on Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkersArea: linkers... you gotta love linkersC-bugCategory: This is a bug.E-needs-investigationCall for participation: This issues needs some investigation to determine current statusP-lowLow priorityS-needs-reproStatus: This issue has no reproduction and needs a reproduction to make progress.T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions