@@ -336,6 +336,7 @@ fn link_rlib<'a, B: ArchiveBuilder<'a>>(
336336 | NativeLibKind :: Dylib { .. }
337337 | NativeLibKind :: Framework { .. }
338338 | NativeLibKind :: RawDylib
339+ | NativeLibKind :: LinkArg
339340 | NativeLibKind :: Unspecified => continue ,
340341 }
341342 if let Some ( name) = lib. name {
@@ -1289,6 +1290,7 @@ fn print_native_static_libs(sess: &Session, all_native_libs: &[NativeLib]) {
12891290 }
12901291 // These are included, no need to print them
12911292 NativeLibKind :: Static { bundle : None | Some ( true ) , .. }
1293+ | NativeLibKind :: LinkArg
12921294 | NativeLibKind :: RawDylib => None ,
12931295 }
12941296 } )
@@ -2243,6 +2245,9 @@ fn add_local_native_libraries(
22432245 NativeLibKind :: RawDylib => {
22442246 // Ignore RawDylib here, they are handled separately in linker_with_args().
22452247 }
2248+ NativeLibKind :: LinkArg => {
2249+ cmd. arg ( name) ;
2250+ }
22462251 }
22472252 }
22482253}
@@ -2380,19 +2385,34 @@ fn add_upstream_rust_crates<'a, B: ArchiveBuilder<'a>>(
23802385 ( lib. name , lib. kind , lib. verbatim )
23812386 } ;
23822387
2383- if let NativeLibKind :: Static { bundle : Some ( false ) , whole_archive } =
2384- lib . kind
2385- {
2386- let verbatim = lib . verbatim . unwrap_or ( false ) ;
2387- if whole_archive == Some ( true ) {
2388+ match lib . kind {
2389+ NativeLibKind :: Static {
2390+ bundle : Some ( false ) ,
2391+ whole_archive : Some ( true ) ,
2392+ } => {
23882393 cmd. link_whole_staticlib (
23892394 name,
2390- verbatim,
2395+ lib . verbatim . unwrap_or ( false ) ,
23912396 search_path. get_or_init ( || archive_search_paths ( sess) ) ,
23922397 ) ;
2393- } else {
2394- cmd. link_staticlib ( name, verbatim) ;
23952398 }
2399+ NativeLibKind :: Static {
2400+ bundle : Some ( false ) ,
2401+ whole_archive : Some ( false ) | None ,
2402+ } => {
2403+ cmd. link_staticlib ( name, lib. verbatim . unwrap_or ( false ) ) ;
2404+ }
2405+ NativeLibKind :: LinkArg => {
2406+ cmd. arg ( name) ;
2407+ }
2408+ NativeLibKind :: Dylib { .. }
2409+ | NativeLibKind :: Framework { .. }
2410+ | NativeLibKind :: Unspecified
2411+ | NativeLibKind :: RawDylib => { }
2412+ NativeLibKind :: Static {
2413+ bundle : Some ( true ) | None ,
2414+ whole_archive : _,
2415+ } => { }
23962416 }
23972417 }
23982418 }
@@ -2583,7 +2603,7 @@ fn add_upstream_native_libraries(
25832603 // already included them in add_local_native_libraries and
25842604 // add_upstream_rust_crates
25852605 NativeLibKind :: Static { .. } => { }
2586- NativeLibKind :: RawDylib => { }
2606+ NativeLibKind :: RawDylib | NativeLibKind :: LinkArg => { }
25872607 }
25882608 }
25892609 }
0 commit comments