bazelbuild / bazelbuild/rules_rust

rust_bindgen_library breaks in rust_shared_library

Open
#2,533 0 comments 0 reactions 0 assignees View on GitHub
needs-triage
Dominant language
Starlark
Stars
843
Forks
651
Avg merge
2d 18h
Merged PRs (30d)
15

Description

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: https://github.com/bazelbuild/rules_rust/pull/2517

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.