Skip to content

-Zbuild-std + lto="fat" = undefined reference to core::panicking::panic #347

Closed
rust-lang/rust
#113923

Description

$ cargo new --bin a
     Created binary (application) `a` package
$ cd a/
$ echo -e '[profile.dev]\nlto="fat"' >> Cargo.toml 
$ cargo run -Zbuild-std --target x86_64-unknown-linux-gnu
...
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/../.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/a-f6afee8bd619dd6c.10btgdcccpdgwv38.rcgu.o" "-o" "/tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/a-f6afee8bd619dd6c" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/tmp/a/target/x86_64-unknown-linux-gnu/debug/deps" "-L" "/tmp/a/target/debug/deps" "-L" "/tmp/a/target/x86_64-unknown-linux-gnu/debug/build/backtrace-sys-23683e5572d20c8c/out" "-L" "/../.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/tmp/rustcgyDZiW/libbacktrace_sys-ba159dd14189807b.rlib" "-Wl,--end-group" "/tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/libcompiler_builtins-495badfa0e51e0a1.rlib" "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: /tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/libcompiler_builtins-495badfa0e51e0a1.rlib(compiler_builtins-495badfa0e51e0a1.compiler_builtins.ecun6ipv-cgu.15.rcgu.o): in function `<i128 as core::ops::arith::Sub>::sub':
          /../.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ops/arith.rs:194: undefined reference to `core::panicking::panic'
          /usr/bin/ld: /tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/libcompiler_builtins-495badfa0e51e0a1.rlib(compiler_builtins-495badfa0e51e0a1.compiler_builtins.ecun6ipv-cgu.11.rcgu.o): in function `compiler_builtins::int::sdiv::Div::div':
          /../.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.25/src/int/sdiv.rs:6: undefined reference to `core::panicking::panic'
          /usr/bin/ld: /../.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.25/src/int/sdiv.rs:7: undefined reference to `core::panicking::panic'
          /usr/bin/ld: /tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/libcompiler_builtins-495badfa0e51e0a1.rlib(compiler_builtins-495badfa0e51e0a1.compiler_builtins.ecun6ipv-cgu.11.rcgu.o): in function `compiler_builtins::int::sdiv::Mod::mod_':
          /../.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.25/src/int/sdiv.rs:28: undefined reference to `core::panicking::panic'
          /usr/bin/ld: /../.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.25/src/int/sdiv.rs:31: undefined reference to `core::panicking::panic'
          /usr/bin/ld: /tmp/a/target/x86_64-unknown-linux-gnu/debug/deps/libcompiler_builtins-495badfa0e51e0a1.rlib(compiler_builtins-495badfa0e51e0a1.compiler_builtins.ecun6ipv-cgu.13.rcgu.o):/../.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ops/bit.rs:515: more undefined references to `core::panicking::panic' follow
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

Looks like this is either an issue with compiler-builtins which should avoid
using any checked operations which could generate references to core crate, or
an issue with cargo -Zbuild-std which should always built this crate with
-Coverflow-checks=no.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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