Deduplicate native libs before they are passed to the linker
This commit is contained in:
parent
5f304a5d79
commit
e40faeffa2
1 changed files with 8 additions and 0 deletions
|
@ -1803,7 +1803,11 @@ fn add_local_native_libraries(
|
||||||
codegen_results.crate_info.used_libraries.iter().filter(|l| relevant_lib(sess, l));
|
codegen_results.crate_info.used_libraries.iter().filter(|l| relevant_lib(sess, l));
|
||||||
|
|
||||||
let search_path = archive_search_paths(sess);
|
let search_path = archive_search_paths(sess);
|
||||||
|
let mut last = (NativeLibKind::Unspecified, None);
|
||||||
for lib in relevant_libs {
|
for lib in relevant_libs {
|
||||||
|
// Skip if this library is the same as the last.
|
||||||
|
last = if (lib.kind, lib.name) == last { continue } else { (lib.kind, lib.name) };
|
||||||
|
|
||||||
let name = match lib.name {
|
let name = match lib.name {
|
||||||
Some(l) => l,
|
Some(l) => l,
|
||||||
None => continue,
|
None => continue,
|
||||||
|
@ -2127,8 +2131,12 @@ fn add_upstream_native_libraries(
|
||||||
.expect("failed to find crate type in dependency format list");
|
.expect("failed to find crate type in dependency format list");
|
||||||
|
|
||||||
let crates = &codegen_results.crate_info.used_crates_static;
|
let crates = &codegen_results.crate_info.used_crates_static;
|
||||||
|
let mut last = (NativeLibKind::Unspecified, None);
|
||||||
for &(cnum, _) in crates {
|
for &(cnum, _) in crates {
|
||||||
for lib in codegen_results.crate_info.native_libraries[&cnum].iter() {
|
for lib in codegen_results.crate_info.native_libraries[&cnum].iter() {
|
||||||
|
// Skip if this library is the same as the last.
|
||||||
|
last = if (lib.kind, lib.name) == last { continue } else { (lib.kind, lib.name) };
|
||||||
|
|
||||||
let name = match lib.name {
|
let name = match lib.name {
|
||||||
Some(l) => l,
|
Some(l) => l,
|
||||||
None => continue,
|
None => continue,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue