@@ -29,8 +29,18 @@ pub extern "c" fn fcopyfile(from: fd_t, to: fd_t, state: ?copyfile_state_t, flag
29
29
pub extern "c" fn @"realpath$DARWIN_EXTSN" (noalias file_name : [* :0 ]const u8 , noalias resolved_name : [* ]u8 ) ? [* :0 ]u8 ;
30
30
31
31
pub extern "c" fn __getdirentries64 (fd : c_int , buf_ptr : [* ]u8 , buf_len : usize , basep : * i64 ) isize ;
32
- pub extern "c" fn @"fstat$INODE64" (fd : fd_t , buf : * Stat ) c_int ;
33
- pub extern "c" fn @"fstatat$INODE64" (dirfd : fd_t , path_name : [* :0 ]const u8 , buf : * Stat , flags : u32 ) c_int ;
32
+
33
+ extern "c" fn fstat (fd : fd_t , buf : * Stat ) c_int ;
34
+ /// On x86_64 Darwin, fstat has to be manully linked with $INODE64 suffix to force 64bit version.
35
+ /// Note that this is fixed on aarch64 and no longer necessary.
36
+ extern "c" fn @"fstat$INODE64" (fd : fd_t , buf : * Stat ) c_int ;
37
+ pub const _fstat = if (builtin .arch == .aarch64 ) fstat else @"fstat$INODE64" ;
38
+
39
+ extern "c" fn fstatat (dirfd : fd_t , path : [* :0 ]const u8 , stat_buf : * Stat , flags : u32 ) c_int ;
40
+ /// On x86_64 Darwin, fstatat has to be manully linked with $INODE64 suffix to force 64bit version.
41
+ /// Note that this is fixed on aarch64 and no longer necessary.
42
+ extern "c" fn @"fstatat$INODE64" (dirfd : fd_t , path_name : [* :0 ]const u8 , buf : * Stat , flags : u32 ) c_int ;
43
+ pub const _fstatat = if (builtin .arch == .aarch64 ) fstatat else @"fstatat$INODE64" ;
34
44
35
45
pub extern "c" fn mach_absolute_time () u64 ;
36
46
pub extern "c" fn mach_timebase_info (tinfo : ? * mach_timebase_info_data ) void ;
0 commit comments