rust-lang / cargo

The Rust package manager
https://doc.rust-lang.org/cargo
Apache License 2.0
12.58k stars 2.39k forks source link

Linking error using Fedora. OS X unaffected. #4388

Closed ambaxter closed 7 years ago

ambaxter commented 7 years ago

When compiling https://github.com/ambaxter/libsolv-rs/tree/rewiring on Fedora using rust stable via rustup, I get a linking error. OS X doesn't have the same problem. Not sure how to further pursue fixing this.

System: Fedora 26, x86_64 Required package installs: clang, libclang, libclang-dev, rust (stable, via rustup), libsolv, libsolv-dev, libsolvext, libsolvext-dev.

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/depchase-179defa70e2be2ba.0.o" "-o" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/depchase-179defa70e2be2ba" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps" "-L" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/build/backtrace-sys-4149e7a061a59e6e/out/.libs" "-L" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/build/libsolv-sys-a267152261ea4f3c/out" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libclap-51f0998050664b54.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libatty-77a28a90e81f9739.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libansi_term-76963246a5b3dac4.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libvec_map-66a4aac55f7a1f7f.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libunicode_segmentation-e7bc06523d0c2ccb.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolv-4b900954a59b32fb.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolvext_sys-360cdab6488b4fa1.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liberror_chain-4a7bcc9cb68d5e79.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libbacktrace-83032e2e7a13cdd0.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libbacktrace_sys-e9e3d58efed07128.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/librustc_demangle-4eb6c439df62a8f6.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libcfg_if-91a619aa86e87545.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolv_sys-96a44fdb8fdee2d2.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libstrsim-4ff5db0351b0fb02.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libbitflags-6808a3e0b5724221.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libtextwrap-56722955018e17d0.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libterm_size-7480b3ba144eca68.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibc-2236279eda551aca.rlib" "/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libunicode_width-cff4ed7c5f0be904.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-35ad9950c7e5074b.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-fb44afc024bbc636.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14b8f3202acdad6a.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-20a50a22d4c2b1e9.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcollections-b479831207997444.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-10b591f1a68dd370.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-28913dc5a1e63cd7.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6ecacccb5bdc4911.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-f4f0ae88f5ad8ad4.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-bfaa82017ca17cb2.rlib" "/home/ambaxter/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-863b57a66ba6c3e1.rlib" "-Wl,-Bdynamic" "-l" "solvext" "-l" "solv" "-l" "solv" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util"
  = note: /home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolv-4b900954a59b32fb.rlib(libsolv-4b900954a59b32fb.0.o): In function `libsolv::repo::{{impl}}::drop':
          /home/ambaxter/projects/rust/libsolv-rs/src/repo.rs:51: undefined reference to `repo_freedata'
          collect2: error: ld returned 1 exit status
ambaxter commented 7 years ago

Caused by: process didn't exit successfully: rustc --crate-name depchase src/bin/depchase.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 --cfg feature="clap" --cfg feature="default" --cfg feature="ext" --cfg feature="libsolvext-sys" --cfg feature="rpmdb" --cfg feature="rpmmd" --cfg feature="tools" -C metadata=179defa70e2be2ba -C extra-filename=-179defa70e2be2ba --out-dir /home/ambaxter/projects/rust/libsolv-rs/target/debug/deps -L dependency=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps --extern libsolv_sys=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolv_sys-96a44fdb8fdee2d2.rlib --extern clap=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/libclap-51f0998050664b54.rlib --extern libsolvext_sys=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolvext_sys-360cdab6488b4fa1.rlib --extern error_chain=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liberror_chain-4a7bcc9cb68d5e79.rlib --extern libc=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibc-2236279eda551aca.rlib --extern libsolv=/home/ambaxter/projects/rust/libsolv-rs/target/debug/deps/liblibsolv-4b900954a59b32fb.rlib -L native=/home/ambaxter/projects/rust/libsolv-rs/target/debug/build/backtrace-sys-4149e7a061a59e6e/out/.libs -L native=/home/ambaxter/projects/rust/libsolv-rs/target/debug/build/libsolv-sys-a267152261ea4f3c/out -L native=/usr/lib64 -L native=/usr/lib64 (exit code: 101)

alexcrichton commented 7 years ago

Thanks for the report! This looks like it's a local problem, though. The error here is:

          /home/ambaxter/projects/rust/libsolv-rs/src/repo.rs:51: undefined reference to `repo_freedata'

which looks like a local configuration and/or crate issue

ambaxter commented 7 years ago

Hi @alexcrichton

I would agree with you, however it works on OS X, but not on Linux. I'm willing to do more digging, but I'm not sure where to go from here. Everything looks right. The library compiles fine and tests run. It's just when the binary links on Linux it fails.

I know you guys are very busy, but if you could at least provide a direction for me to look at I'd greatly appreciate it.

Thanks,

Adam

ambaxter commented 7 years ago

Mm.. You were right. Something is strange with the system library.