@@ -578,17 +578,20 @@ extern "C" {
578578 all( target_os = "macos" , target_arch = "x86" ) ,
579579 link_name = "fopen$UNIX2003"
580580 ) ]
581+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fopen64" ) ]
581582 pub fn fopen ( filename : * const c_char , mode : * const c_char ) -> * mut FILE ;
582583 #[ cfg_attr(
583584 all( target_os = "macos" , target_arch = "x86" ) ,
584585 link_name = "freopen$UNIX2003"
585586 ) ]
587+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "freopen64" ) ]
586588 pub fn freopen ( filename : * const c_char , mode : * const c_char , file : * mut FILE ) -> * mut FILE ;
587589
588590 pub fn fflush ( file : * mut FILE ) -> c_int ;
589591 pub fn fclose ( file : * mut FILE ) -> c_int ;
590592 pub fn remove ( filename : * const c_char ) -> c_int ;
591593 pub fn rename ( oldname : * const c_char , newname : * const c_char ) -> c_int ;
594+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "tmpfile64" ) ]
592595 pub fn tmpfile ( ) -> * mut FILE ;
593596 pub fn setvbuf ( stream : * mut FILE , buffer : * mut c_char , mode : c_int , size : size_t ) -> c_int ;
594597 pub fn setbuf ( stream : * mut FILE , buf : * mut c_char ) ;
@@ -614,8 +617,10 @@ extern "C" {
614617 pub fn ftell ( stream : * mut FILE ) -> c_long ;
615618 pub fn rewind ( stream : * mut FILE ) ;
616619 #[ cfg_attr( target_os = "netbsd" , link_name = "__fgetpos50" ) ]
620+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fgetpos64" ) ]
617621 pub fn fgetpos ( stream : * mut FILE , ptr : * mut fpos_t ) -> c_int ;
618622 #[ cfg_attr( target_os = "netbsd" , link_name = "__fsetpos50" ) ]
623+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fsetpos64" ) ]
619624 pub fn fsetpos ( stream : * mut FILE , ptr : * const fpos_t ) -> c_int ;
620625 pub fn feof ( stream : * mut FILE ) -> c_int ;
621626 pub fn ferror ( stream : * mut FILE ) -> c_int ;
@@ -827,6 +832,7 @@ extern "C" {
827832 all( target_os = "freebsd" , any( freebsd11, freebsd10) ) ,
828833 link_name = "fstat@FBSD_1.0"
829834 ) ]
835+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fstat64" ) ]
830836 pub fn fstat ( fildes : c_int , buf : * mut stat ) -> c_int ;
831837
832838 pub fn mkdir ( path : * const c_char , mode : mode_t ) -> c_int ;
@@ -840,6 +846,7 @@ extern "C" {
840846 all( target_os = "freebsd" , any( freebsd11, freebsd10) ) ,
841847 link_name = "stat@FBSD_1.0"
842848 ) ]
849+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "stat64" ) ]
843850 pub fn stat ( path : * const c_char , buf : * mut stat ) -> c_int ;
844851
845852 pub fn pclose ( stream : * mut crate :: FILE ) -> c_int ;
@@ -854,16 +861,19 @@ extern "C" {
854861 all( target_os = "macos" , target_arch = "x86" ) ,
855862 link_name = "open$UNIX2003"
856863 ) ]
864+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "open64" ) ]
857865 pub fn open ( path : * const c_char , oflag : c_int , ...) -> c_int ;
858866 #[ cfg_attr(
859867 all( target_os = "macos" , target_arch = "x86" ) ,
860868 link_name = "creat$UNIX2003"
861869 ) ]
870+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "creat64" ) ]
862871 pub fn creat ( path : * const c_char , mode : mode_t ) -> c_int ;
863872 #[ cfg_attr(
864873 all( target_os = "macos" , target_arch = "x86" ) ,
865874 link_name = "fcntl$UNIX2003"
866875 ) ]
876+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "__fcntl_time64" ) ]
867877 pub fn fcntl ( fd : c_int , cmd : c_int , ...) -> c_int ;
868878
869879 #[ cfg_attr(
@@ -886,6 +896,7 @@ extern "C" {
886896 all( target_os = "freebsd" , any( freebsd11, freebsd10) ) ,
887897 link_name = "readdir@FBSD_1.0"
888898 ) ]
899+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "readdir64" ) ]
889900 pub fn readdir ( dirp : * mut crate :: DIR ) -> * mut crate :: dirent ;
890901 #[ cfg_attr(
891902 all( target_os = "macos" , target_arch = "x86" ) ,
@@ -924,6 +935,7 @@ extern "C" {
924935 all( target_os = "freebsd" , any( freebsd11, freebsd10) ) ,
925936 link_name = "fstatat@FBSD_1.1"
926937 ) ]
938+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fstatat64" ) ]
927939 pub fn fstatat ( dirfd : c_int , pathname : * const c_char , buf : * mut stat , flags : c_int ) -> c_int ;
928940 pub fn linkat (
929941 olddirfd : c_int ,
@@ -993,6 +1005,7 @@ extern "C" {
9931005 pub fn isatty ( fd : c_int ) -> c_int ;
9941006 #[ cfg_attr( target_os = "solaris" , link_name = "__link_xpg4" ) ]
9951007 pub fn link ( src : * const c_char , dst : * const c_char ) -> c_int ;
1008+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "lseek64" ) ]
9961009 pub fn lseek ( fd : c_int , offset : off_t , whence : c_int ) -> off_t ;
9971010 pub fn pathconf ( path : * const c_char , name : c_int ) -> c_long ;
9981011 pub fn pipe ( fds : * mut c_int ) -> c_int ;
@@ -1055,11 +1068,13 @@ extern "C" {
10551068 all( target_os = "macos" , target_arch = "x86" ) ,
10561069 link_name = "pread$UNIX2003"
10571070 ) ]
1071+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "pread64" ) ]
10581072 pub fn pread ( fd : c_int , buf : * mut c_void , count : size_t , offset : off_t ) -> ssize_t ;
10591073 #[ cfg_attr(
10601074 all( target_os = "macos" , target_arch = "x86" ) ,
10611075 link_name = "pwrite$UNIX2003"
10621076 ) ]
1077+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "pwrite64" ) ]
10631078 pub fn pwrite ( fd : c_int , buf : * const c_void , count : size_t , offset : off_t ) -> ssize_t ;
10641079 pub fn umask ( mask : mode_t ) -> mode_t ;
10651080
@@ -1086,6 +1101,7 @@ extern "C" {
10861101 all( target_os = "macos" , target_arch = "x86" ) ,
10871102 link_name = "mmap$UNIX2003"
10881103 ) ]
1104+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "mmap64" ) ]
10891105 pub fn mmap (
10901106 addr : * mut c_void ,
10911107 len : size_t ,
@@ -1112,6 +1128,7 @@ extern "C" {
11121128 all( target_os = "freebsd" , any( freebsd11, freebsd10) ) ,
11131129 link_name = "lstat@FBSD_1.0"
11141130 ) ]
1131+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "lstat64" ) ]
11151132 pub fn lstat ( path : * const c_char , buf : * mut stat ) -> c_int ;
11161133
11171134 #[ cfg_attr(
@@ -1134,7 +1151,9 @@ extern "C" {
11341151
11351152 pub fn symlink ( path1 : * const c_char , path2 : * const c_char ) -> c_int ;
11361153
1154+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "truncate64" ) ]
11371155 pub fn truncate ( path : * const c_char , length : off_t ) -> c_int ;
1156+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "ftruncate64" ) ]
11381157 pub fn ftruncate ( fd : c_int , length : off_t ) -> c_int ;
11391158
11401159 pub fn signal ( signum : c_int , handler : sighandler_t ) -> sighandler_t ;
@@ -1439,7 +1458,9 @@ extern "C" {
14391458 pub fn sem_wait ( sem : * mut sem_t ) -> c_int ;
14401459 pub fn sem_trywait ( sem : * mut sem_t ) -> c_int ;
14411460 pub fn sem_post ( sem : * mut sem_t ) -> c_int ;
1461+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "statvfs64" ) ]
14421462 pub fn statvfs ( path : * const c_char , buf : * mut statvfs ) -> c_int ;
1463+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fstatvfs64" ) ]
14431464 pub fn fstatvfs ( fd : c_int , buf : * mut statvfs ) -> c_int ;
14441465
14451466 #[ cfg_attr( target_os = "netbsd" , link_name = "__sigemptyset14" ) ]
@@ -1463,7 +1484,9 @@ extern "C" {
14631484
14641485 pub fn mkfifo ( path : * const c_char , mode : mode_t ) -> c_int ;
14651486
1487+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "fseeko64" ) ]
14661488 pub fn fseeko ( stream : * mut crate :: FILE , offset : off_t , whence : c_int ) -> c_int ;
1489+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "ftello64" ) ]
14671490 pub fn ftello ( stream : * mut crate :: FILE ) -> off_t ;
14681491 #[ cfg_attr(
14691492 all( target_os = "macos" , target_arch = "x86" ) ,
@@ -1480,6 +1503,7 @@ extern "C" {
14801503 pub fn tcflush ( fd : c_int , action : c_int ) -> c_int ;
14811504 pub fn tcgetsid ( fd : c_int ) -> crate :: pid_t ;
14821505 pub fn tcsendbreak ( fd : c_int , duration : c_int ) -> c_int ;
1506+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "mkstemp64" ) ]
14831507 pub fn mkstemp ( template : * mut c_char ) -> c_int ;
14841508 pub fn mkdtemp ( template : * mut c_char ) -> * mut c_char ;
14851509
@@ -1504,6 +1528,7 @@ extern "C" {
15041528 pub fn strcasestr ( cs : * const c_char , ct : * const c_char ) -> * mut c_char ;
15051529 pub fn getline ( lineptr : * mut * mut c_char , n : * mut size_t , stream : * mut FILE ) -> ssize_t ;
15061530
1531+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "lockf64" ) ]
15071532 pub fn lockf ( fd : c_int , cmd : c_int , len : off_t ) -> c_int ;
15081533
15091534}
@@ -1604,6 +1629,7 @@ cfg_if! {
16041629 pub fn pause( ) -> c_int;
16051630
16061631 pub fn mkdirat( dirfd: c_int, pathname: * const c_char, mode: crate :: mode_t) -> c_int;
1632+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "openat64" ) ]
16071633 pub fn openat( dirfd: c_int, pathname: * const c_char, flags: c_int, ...) -> c_int;
16081634
16091635 #[ cfg_attr(
@@ -1632,6 +1658,7 @@ cfg_if! {
16321658 /// https://illumos.org/man/3lib/libc
16331659 /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html
16341660 /// https://www.unix.com/man-page/opensolaris/3LIB/libc/
1661+ #[ cfg_attr( gnu_file_offset_bits64, link_name = "readdir64_r" ) ]
16351662 pub fn readdir_r(
16361663 dirp: * mut crate :: DIR ,
16371664 entry: * mut crate :: dirent,
0 commit comments