Auto merge of #85554 - 12101111:fix-dedup-native-libs, r=petrochenkov

native lib: defer the duplicate check after relevant_lib check.

https://github.com/rust-lang/rust/pull/84794 break code using conditional-compilation with `#[link]` attributes.

```rust
#[cfg(target_env = "musl")]
cfg_if::cfg_if! {
    if #[cfg(any(target_feature = "crt-static", feature = "llvm-libunwind"))] {
        #[link(name = "unwind", kind = "static", modifiers = "-bundle")]
        extern "C" {}
    } else {
        #[link(name = "unwind", cfg(feature = "system-llvm-libunwind"))]
        #[link(name = "gcc_s", cfg(not(feature = "system-llvm-libunwind")))]
        extern "C" {}
    }
}

```
This commit is contained in:
bors 2021-05-23 19:42:19 +00:00
commit f64503eb55
6 changed files with 44 additions and 6 deletions

View file

@ -0,0 +1,12 @@
# ignore-msvc
-include ../tools.mk
all:
$(RUSTC) depa.rs
$(RUSTC) depb.rs
$(RUSTC) depc.rs
$(RUSTC) empty.rs --cfg bar 2>&1 | $(CGREP) '"-ltesta" "-ltestb" "-ltesta"'
$(RUSTC) empty.rs 2>&1 | $(CGREP) '"-ltesta"'
$(RUSTC) empty.rs 2>&1 | $(CGREP) -v '"-ltestb"'
$(RUSTC) empty.rs 2>&1 | $(CGREP) -v '"-ltesta" "-ltesta"'

View file

@ -0,0 +1,7 @@
#![crate_type = "rlib"]
#[link(name = "testa")]
extern "C" {}
#[link(name = "testa")]
extern "C" {}

View file

@ -0,0 +1,8 @@
#![feature(link_cfg)]
#![crate_type = "rlib"]
#[link(name = "testb", cfg(foo))]
extern "C" {}
#[link(name = "testb", cfg(bar))]
extern "C" {}

View file

@ -0,0 +1,4 @@
#![crate_type = "rlib"]
#[link(name = "testa")]
extern "C" {}

View file

@ -0,0 +1,5 @@
extern crate depa;
extern crate depb;
extern crate depc;
fn main() {}