diff options
| author | Urgau <urgau@numericable.fr> | 2024-06-25 13:18:19 +0200 |
|---|---|---|
| committer | Urgau <urgau@numericable.fr> | 2024-06-25 13:18:19 +0200 |
| commit | 604caa09ed54ed313a512d5c61022625227a910d (patch) | |
| tree | e10c136e568dc70cdd4ef73e2ccc6b53efaddcbc | |
| parent | e23ae72ac7a393961886ea62df065ebb6def7d51 (diff) | |
| download | rust-604caa09ed54ed313a512d5c61022625227a910d.tar.gz rust-604caa09ed54ed313a512d5c61022625227a910d.zip | |
De-duplicate all consecutive native libs regardless of their options
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/link.rs | 7 | ||||
| -rw-r--r-- | tests/run-make/print-native-static-libs/bar.rs | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index bdb808b1d4f..0f0058c1d17 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -1490,11 +1490,6 @@ fn print_native_static_libs( let mut lib_args: Vec<_> = all_native_libs .iter() .filter(|l| relevant_lib(sess, l)) - // Deduplication of successive repeated libraries, see rust-lang/rust#113209 - // - // note: we don't use PartialEq/Eq because NativeLib transitively depends on local - // elements like spans, which we don't care about and would make the deduplication impossible - .dedup_by(|l1, l2| l1.name == l2.name && l1.kind == l2.kind && l1.verbatim == l2.verbatim) .filter_map(|lib| { let name = lib.name; match lib.kind { @@ -1521,6 +1516,8 @@ fn print_native_static_libs( | NativeLibKind::RawDylib => None, } }) + // deduplication of consecutive repeated libraries, see rust-lang/rust#113209 + .dedup() .collect(); for path in all_rust_dylibs { // FIXME deduplicate with add_dynamic_crate diff --git a/tests/run-make/print-native-static-libs/bar.rs b/tests/run-make/print-native-static-libs/bar.rs index cd9c1c453e5..74c76da6938 100644 --- a/tests/run-make/print-native-static-libs/bar.rs +++ b/tests/run-make/print-native-static-libs/bar.rs @@ -17,3 +17,9 @@ extern "C" { extern "C" { fn g_free2(p: *mut ()); } + +#[cfg(windows)] +#[link(name = "glib-2.0", kind = "raw-dylib")] +extern "C" { + fn g_free3(p: *mut ()); +} |
