bazelbuild / rules_rust

Rust rules for Bazel

Home Page:https://bazelbuild.github.io/rules_rust/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rust_bindgen_library breaks in rust_shared_library

neilisaac opened this issue · comments

When linking a rust_shared_library that depends on a bindgen_rust_library, I get errors such as:

/usr/bin/ld.gold: error: /.../some_rust_binding.rlib(some_c_lib.o): requires dynamic R_X86_64_PC32 reloc against '_ZNSs4_Rep20_S_empty_rep_storageE' which may overflow at runtime; recompile with -fPIC

It looks to me like the rust_library target is including the cc_lib in its rlib output. This PR changes it to depend on the cc_library target instead, where the cc toolchain will provide both PIC and non-PIC objects to select as appropriate at link time.

I'm using v0.39.0 with experimental_use_cc_common_link enabled.

I worked around this issue as follows: #2517