authorgravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2023-09-15 01:05:14-04:00
committergravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2023-09-25 15:53:05-04:00
log50f2d7958226efaa9cd441998877c125cd01533b
treed211d53baaaea6703c0acdb4a9ad912e11cf6dc7
parent5d6521d2814e6768536103c233d2e283051b9f1e
signaturelock-open Commit is signed but in an unrecognized format.

macos: update libc names for darwin

- dropped incorrect names - added list of names found in the SDKs - ios, tvos and watchos filesystems are case-sensitive

1 files changed, 30 insertions(+), 6 deletions(-)

src/target.zig+30-6
...@@ -354,7 +354,7 @@ fn eqlIgnoreCase(ignore_case: bool, a: []const u8, b: []const u8) bool {...@@ -354,7 +354,7 @@ fn eqlIgnoreCase(ignore_case: bool, a: []const u8, b: []const u8) bool {
354}354}
355355
356pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {356pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {
357 const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows;357 const ignore_case = target.os.tag == .macos or target.os.tag == .windows;
358358
359 if (eqlIgnoreCase(ignore_case, name, "c"))359 if (eqlIgnoreCase(ignore_case, name, "c"))
360 return true;360 return true;
...@@ -362,7 +362,6 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {...@@ -362,7 +362,6 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {
362 if (target.isMinGW()) {362 if (target.isMinGW()) {
363 if (eqlIgnoreCase(ignore_case, name, "m"))363 if (eqlIgnoreCase(ignore_case, name, "m"))
364 return true;364 return true;
365
366 if (eqlIgnoreCase(ignore_case, name, "uuid"))365 if (eqlIgnoreCase(ignore_case, name, "uuid"))
367 return true;366 return true;
368 if (eqlIgnoreCase(ignore_case, name, "mingw32"))367 if (eqlIgnoreCase(ignore_case, name, "mingw32"))
...@@ -375,7 +374,7 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {...@@ -375,7 +374,7 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {
375 return false;374 return false;
376 }375 }
377376
378 if (target.abi.isGnu() or target.abi.isMusl() or target.os.tag.isDarwin()) {377 if (target.abi.isGnu() or target.abi.isMusl()) {
379 if (eqlIgnoreCase(ignore_case, name, "m"))378 if (eqlIgnoreCase(ignore_case, name, "m"))
380 return true;379 return true;
381 if (eqlIgnoreCase(ignore_case, name, "rt"))380 if (eqlIgnoreCase(ignore_case, name, "rt"))
...@@ -392,13 +391,38 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {...@@ -392,13 +391,38 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool {
392 return true;391 return true;
393 }392 }
394393
395 if (target.abi.isMusl() or target.os.tag.isDarwin()) {394 if (target.abi.isMusl()) {
396 if (eqlIgnoreCase(ignore_case, name, "crypt"))395 if (eqlIgnoreCase(ignore_case, name, "crypt"))
397 return true;396 return true;
398 }397 }
399398
400 if (target.os.tag.isDarwin() and eqlIgnoreCase(ignore_case, name, "System"))399 if (target.os.tag.isDarwin()) {
401 return true;400 if (eqlIgnoreCase(ignore_case, name, "System"))
401 return true;
402 if (eqlIgnoreCase(ignore_case, name, "c"))
403 return true;
404 if (eqlIgnoreCase(ignore_case, name, "dbm"))
405 return true;
406 if (eqlIgnoreCase(ignore_case, name, "dl"))
407 return true;
408 if (eqlIgnoreCase(ignore_case, name, "info"))
409 return true;
410 if (eqlIgnoreCase(ignore_case, name, "m"))
411 return true;
412 if (eqlIgnoreCase(ignore_case, name, "poll"))
413 return true;
414 if (eqlIgnoreCase(ignore_case, name, "proc"))
415 return true;
416 if (eqlIgnoreCase(ignore_case, name, "pthread"))
417 return true;
418 if (eqlIgnoreCase(ignore_case, name, "rpcsvc"))
419 return true;
420 }
421
422 if (target.os.isAtLeast(.macos, .{ .major = 10, .minor = 8, .patch = 0 }) orelse false) {
423 if (eqlIgnoreCase(ignore_case, name, "mx"))
424 return true;
425 }
402426
403 return false;427 return false;
404}428}