@@ -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 {
@@ -1287,6 +1288,7 @@ fn print_native_static_libs(sess: &Session, all_native_libs: &[NativeLib]) {
12871288 }
12881289 // These are included, no need to print them
12891290 NativeLibKind :: Static { bundle : None | Some ( true ) , .. }
1291+ | NativeLibKind :: LinkArg
12901292 | NativeLibKind :: RawDylib => None ,
12911293 }
12921294 } )
@@ -2225,6 +2227,9 @@ fn add_local_native_libraries(
22252227 // FIXME(#58713): Proper handling for raw dylibs.
22262228 bug ! ( "raw_dylib feature not yet implemented" ) ;
22272229 }
2230+ NativeLibKind :: LinkArg => {
2231+ cmd. arg ( name) ;
2232+ }
22282233 }
22292234 }
22302235}
@@ -2362,19 +2367,34 @@ fn add_upstream_rust_crates<'a, B: ArchiveBuilder<'a>>(
23622367 ( lib. name , lib. kind , lib. verbatim )
23632368 } ;
23642369
2365- if let NativeLibKind :: Static { bundle : Some ( false ) , whole_archive } =
2366- lib . kind
2367- {
2368- let verbatim = lib . verbatim . unwrap_or ( false ) ;
2369- if whole_archive == Some ( true ) {
2370+ match lib . kind {
2371+ NativeLibKind :: Static {
2372+ bundle : Some ( false ) ,
2373+ whole_archive : Some ( true ) ,
2374+ } => {
23702375 cmd. link_whole_staticlib (
23712376 name,
2372- verbatim,
2377+ lib . verbatim . unwrap_or ( false ) ,
23732378 search_path. get_or_init ( || archive_search_paths ( sess) ) ,
23742379 ) ;
2375- } else {
2376- cmd. link_staticlib ( name, verbatim) ;
23772380 }
2381+ NativeLibKind :: Static {
2382+ bundle : Some ( false ) ,
2383+ whole_archive : Some ( false ) | None ,
2384+ } => {
2385+ cmd. link_staticlib ( name, lib. verbatim . unwrap_or ( false ) ) ;
2386+ }
2387+ NativeLibKind :: LinkArg => {
2388+ cmd. arg ( name) ;
2389+ }
2390+ NativeLibKind :: Dylib { .. }
2391+ | NativeLibKind :: Framework { .. }
2392+ | NativeLibKind :: Unspecified
2393+ | NativeLibKind :: RawDylib => { }
2394+ NativeLibKind :: Static {
2395+ bundle : Some ( true ) | None ,
2396+ whole_archive : _,
2397+ } => { }
23782398 }
23792399 }
23802400 }
@@ -2565,7 +2585,7 @@ fn add_upstream_native_libraries(
25652585 // already included them in add_local_native_libraries and
25662586 // add_upstream_rust_crates
25672587 NativeLibKind :: Static { .. } => { }
2568- NativeLibKind :: RawDylib => { }
2588+ NativeLibKind :: RawDylib | NativeLibKind :: LinkArg => { }
25692589 }
25702590 }
25712591 }
0 commit comments