@@ -336,6 +336,7 @@ fn link_rlib<'a, B: ArchiveBuilder<'a>>(
336
336
| NativeLibKind :: Dylib { .. }
337
337
| NativeLibKind :: Framework { .. }
338
338
| NativeLibKind :: RawDylib
339
+ | NativeLibKind :: LinkArg
339
340
| NativeLibKind :: Unspecified => continue ,
340
341
}
341
342
if let Some ( name) = lib. name {
@@ -1289,6 +1290,7 @@ fn print_native_static_libs(sess: &Session, all_native_libs: &[NativeLib]) {
1289
1290
}
1290
1291
// These are included, no need to print them
1291
1292
NativeLibKind :: Static { bundle : None | Some ( true ) , .. }
1293
+ | NativeLibKind :: LinkArg
1292
1294
| NativeLibKind :: RawDylib => None ,
1293
1295
}
1294
1296
} )
@@ -2243,6 +2245,9 @@ fn add_local_native_libraries(
2243
2245
NativeLibKind :: RawDylib => {
2244
2246
// Ignore RawDylib here, they are handled separately in linker_with_args().
2245
2247
}
2248
+ NativeLibKind :: LinkArg => {
2249
+ cmd. arg ( name) ;
2250
+ }
2246
2251
}
2247
2252
}
2248
2253
}
@@ -2380,19 +2385,34 @@ fn add_upstream_rust_crates<'a, B: ArchiveBuilder<'a>>(
2380
2385
( lib. name , lib. kind , lib. verbatim )
2381
2386
} ;
2382
2387
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
+ } => {
2388
2393
cmd. link_whole_staticlib (
2389
2394
name,
2390
- verbatim,
2395
+ lib . verbatim . unwrap_or ( false ) ,
2391
2396
search_path. get_or_init ( || archive_search_paths ( sess) ) ,
2392
2397
) ;
2393
- } else {
2394
- cmd. link_staticlib ( name, verbatim) ;
2395
2398
}
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
+ } => { }
2396
2416
}
2397
2417
}
2398
2418
}
@@ -2583,7 +2603,7 @@ fn add_upstream_native_libraries(
2583
2603
// already included them in add_local_native_libraries and
2584
2604
// add_upstream_rust_crates
2585
2605
NativeLibKind :: Static { .. } => { }
2586
- NativeLibKind :: RawDylib => { }
2606
+ NativeLibKind :: RawDylib | NativeLibKind :: LinkArg => { }
2587
2607
}
2588
2608
}
2589
2609
}
0 commit comments