about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--io/Versions3
-rw-r--r--io/fcntl.h6
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/i386/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/i386/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.h1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h6
12 files changed, 25 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index 8450b63c2f..f2bc208ec7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,10 @@
 2003-08-15  Ulrich Drepper  <drepper@redhat.com>
 
-	* 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  <jakub@redhat.com>
 
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.  */