diff --git a/ChangeLog b/ChangeLog index 8450b63c2f..f2bc208ec7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,10 @@ 2003-08-15 Ulrich Drepper - * io/Versions [GLIBC_2.3.3]: Add posix_fadvise64. * io/fcntl.h (posix_fadvise64): Change type of third parameter to off_t. * sysdeps/unix/sysv/linux/posix_fadvise.c: Adjust definition. * sysdeps/unix/make-syscalls.sh: Recognize V prefix to the parameter description indicating the error value is returned, not -1. - * sysdeps/unix/sysv/linux/Makefile [subdir=io] (subdir_routines): Add - posix_fadvise64_64. * sysdeps/unix/sysv/linux/kernel-features.h: Add definition of __ASSUME_FADVISE64_64_SYSCALL. * sysdeps/unix/sysv/linux/syscalls.list: Don't define madvise and @@ -15,20 +12,20 @@ value returned. Define posix_fadvise64_64 entry. Add version info to posix_fadvise64 entry. - * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define - posix_fadvise64_64 entry. Add version info to posix_fadvise64 entry. - * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. - * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/i386/posix_fadvise.S: New file. * sysdeps/unix/sysv/linux/i386/sysdep.h: Define PSEUDO_ERRVAL, PSEUDO_END_ERRVAL, and ret_ERRVAL. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.3.3]: Add + posix_fadvise64. * posix/Makefile (routines): Add posix_madvise. * sysdeps/generic/madvise.c: Don't define posix_madvise. * sysdeps/generic/posix_madvise.c: New file. * sysdeps/unix/sysv/aix/posix_madvise.c: New file. + * sysdeps/unix/sysv/linux/i386/Makefile [subdir=io] (subdir_routines): + Add posix_fadvise64_64. 2003-08-15 Jakub Jelinek diff --git a/io/Versions b/io/Versions index 9e035aecc7..88f3a9ac04 100644 --- a/io/Versions +++ b/io/Versions @@ -93,9 +93,6 @@ libc { # l* lchmod; } - GLIBC_2.3.3 { - posix_fadvise64; - } GLIBC_PRIVATE { # functions which have an additional interface since they are # cancelable. diff --git a/io/fcntl.h b/io/fcntl.h index 77f002b66b..97ef27b735 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -134,19 +134,19 @@ extern int lockf64 (int __fd, int __cmd, __off64_t __len) __THROW; /* Advice the system about the expected behaviour of the application with respect to the file associated with FD. */ # ifndef __USE_FILE_OFFSET64 -extern int posix_fadvise (int __fd, __off_t __offset, off_t __len, +extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) __THROW; # else # ifdef __REDIRECT extern int __REDIRECT (posix_fadvise, (int __fd, __off64_t __offset, - off64_t __len, int __advise) __THROW, + __off64_t __len, int __advise) __THROW, posix_fadvise64); # else # define posix_fadvise posix_fadvise64 # endif # endif # ifdef __USE_LARGEFILE64 -extern int posix_fadvise64 (int __fd, __off64_t __offset, off64_t __len, +extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) __THROW; # endif diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 2d98aa58ac..f292931fb9 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -135,7 +135,7 @@ CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1 endif ifeq ($(subdir),io) -sysdep_routines += xstatconv posix_fadvise64_64 +sysdep_routines += xstatconv endif ifeq ($(subdir),elf) diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list index 78feb7a57a..60235d012f 100644 --- a/sysdeps/unix/sysv/linux/alpha/syscalls.list +++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list @@ -21,8 +21,7 @@ getpriority - getpriority i:ii __getpriority getpriority mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64 llseek EXTRA lseek C:3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64 lseek llseek - -posix_fadvise64 - fadvise64 4 posix_fadvise64 posix_fadvise@GLIBC_2.2 -posix_fadvise64_64 - fadvise64 4 posix_fadvise64 posix_fadvise@GLIBC_2.3.3 +posix_fadvise64 - fadvise64 4 posix_fadvise64 posix_fadvise pread - pread64 C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64 pwrite - pwrite64 C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64 diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index 1ae69407ff..6aa5ce30ad 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -12,3 +12,7 @@ endif ifeq ($(subdir),resource) sysdep_routines += oldgetrlimit64 endif + +ifeq ($(subdir),io) +sysdep_routines += posix_fadvise64_64 +endif diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions index 388fe8312b..1abb39741c 100644 --- a/sysdeps/unix/sysv/linux/i386/Versions +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -33,6 +33,9 @@ libc { # v* versionsort64; } + GLIBC_2.3.3 { + posix_fadvise64; + } GLIBC_PRIVATE { __modify_ldt; } diff --git a/sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S b/sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S index e132c3b9a2..c1ee9b99dd 100644 --- a/sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S +++ b/sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S @@ -116,3 +116,5 @@ L(overflow): #endif PSEUDO_END_NOERRNO (BP_SYM (__posix_fadvise64_l64)) + +default_symbol_version (__posix_fadvise64_l64, posix_fadvise64, GLIBC_2.3.3) diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list index a368226b91..c2027b670f 100644 --- a/sysdeps/unix/sysv/linux/ia64/syscalls.list +++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list @@ -5,8 +5,7 @@ umount2 - umount 2 __umount2 umount2 # Whee! 64-bit systems naturally implement llseek. llseek EXTRA lseek C:3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64 lseek llseek - -posix_fadvise64 - fadvise64 4 posix_fadvise64 posix_fadvise@GLIBC_2.2 -posix_fadvise64_64 - fadvise64 4 posix_fadvise64 posix_fadvise@GLIBC_2.3.3 +posix_fadvise64 - fadvise64 4 posix_fadvise64 posix_fadvise pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64 pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64 diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.h b/sysdeps/unix/sysv/linux/ia64/sysdep.h index 2fc32efd47..1768bd0e3e 100644 --- a/sysdeps/unix/sysv/linux/ia64/sysdep.h +++ b/sysdeps/unix/sysv/linux/ia64/sysdep.h @@ -128,6 +128,7 @@ #define ret br.ret.sptk.few b0 #define ret_NOERRNO ret +#define ret_ERRVAL ret #else /* not __ASSEMBLER__ */ diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list index 063f9ba5df..26f2b07250 100644 --- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list +++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list @@ -4,8 +4,7 @@ arch_prctl EXTRA arch_prctl i:ii __arch_prctl arch_prctl mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64 modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt llseek EXTRA lseek Ci:iii __libc_lseek64 __llseek llseek __lseek64 lseek64 -posix_fadvise64 - fadvise64 i:iiii posix_fadvise64 posix_fadvise@GLIBC_2.2.5 -posix_fadvise64_64 - fadvise64_64 i:iiii posix_fadvise64 posix_fadvise@GLIBC_2.3.3 +posix_fadvise64 - fadvise64 i:iiii posix_fadvise64 posix_fadvise pread - pread Ci:ibni __libc_pread __libc_pread64 __pread pread __pread64 pread64 pwrite - pwrite Ci:ibni __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64 diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h index d92869a32c..8ba7d446a8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h @@ -98,18 +98,20 @@ #define PSEUDO_END_NOERRNO(name) \ END (name) +#define ret_NOERRNO ret + #undef PSEUDO_ERRVAL #define PSEUDO_ERRVAL(name, syscall_name, args) \ .text; \ ENTRY (name) \ DO_CALL (syscall_name, args); \ - negl %rax + negq %rax #undef PSEUDO_END_ERRVAL #define PSEUDO_END_ERRVAL(name) \ END (name) -#define ret_NOERRNO ret +#define ret_ERRVAL ret #ifndef PIC #define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */