about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog175
-rw-r--r--nptl/ChangeLog3
-rw-r--r--nptl/sysdeps/ia64/pthread_spin_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getdents64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list13
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h12
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/fstatfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ftruncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/mmap64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/posix_fadvise64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/pread64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/pwrite64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sendfile64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/setrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/statfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list14
-rw-r--r--sysdeps/unix/sysv/linux/ia64/truncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/xstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c75
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/glob64.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c76
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/fstatfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/ftruncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c42
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getdents.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getdents64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c42
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/mmap64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/pread64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/pwrite64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/readdir.c7
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/readdir64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/readdir64_r.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/readdir_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/setrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/statfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list10
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h11
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/truncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/xstat.c41
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/xstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list14
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c (renamed from sysdeps/unix/sysv/linux/alpha/fstatfs64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c5
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/ftruncate64.c (renamed from sysdeps/unix/sysv/linux/alpha/ftruncate64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fxstat.c (renamed from sysdeps/unix/sysv/linux/ia64/fxstat.c)8
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c (renamed from sysdeps/unix/sysv/linux/alpha/fxstat64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/getdents.c (renamed from sysdeps/unix/sysv/linux/ia64/getdents.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/getdents64.c (renamed from sysdeps/unix/sysv/linux/ia64/getdents64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c (renamed from sysdeps/unix/sysv/linux/alpha/getrlimit64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/glob64.c (renamed from sysdeps/unix/sysv/linux/alpha/glob64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lxstat.c (renamed from sysdeps/unix/sysv/linux/ia64/lxstat.c)10
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c (renamed from sysdeps/unix/sysv/linux/alpha/lxstat64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/mmap64.c (renamed from sysdeps/unix/sysv/linux/alpha/mmap64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c (renamed from sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise64.c (renamed from sysdeps/unix/sysv/linux/alpha/posix_fadvise64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/pread64.c (renamed from sysdeps/unix/sysv/linux/alpha/pread64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c (renamed from sysdeps/unix/sysv/linux/alpha/pwrite64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/readdir.c (renamed from sysdeps/unix/sysv/linux/ia64/readdir.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/readdir64.c (renamed from sysdeps/unix/sysv/linux/ia64/readdir64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c (renamed from sysdeps/unix/sysv/linux/ia64/readdir64_r.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c (renamed from sysdeps/unix/sysv/linux/ia64/readdir_r.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c (renamed from sysdeps/unix/sysv/linux/alpha/sendfile64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c (renamed from sysdeps/unix/sysv/linux/alpha/setrlimit64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/statfs64.c (renamed from sysdeps/unix/sysv/linux/alpha/statfs64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/statvfs.c5
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/syscalls.list16
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/truncate64.c (renamed from sysdeps/unix/sysv/linux/alpha/truncate64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/xstat.c (renamed from sysdeps/unix/sysv/linux/ia64/xstat.c)8
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/xstat64.c (renamed from sysdeps/unix/sysv/linux/alpha/xstat64.c)0
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/fstatfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ftruncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/fxstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getdents.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getdents64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lxstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/mmap64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/posix_fadvise64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/pread64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/pwrite64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/readdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/readdir64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/readdir64_r.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/readdir_r.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sendfile64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/setrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/statfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscalls.list12
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/truncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/xstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/xstat64.c1
146 files changed, 256 insertions, 477 deletions
diff --git a/ChangeLog b/ChangeLog
index e36cd58639..7853c66f55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,178 @@
+2004-03-23  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_pread, __NR_pwrite):
+	Define to __NR_p{read,write}64 if not defined.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (__NR_pread,
+	__NR_pwrite): Define to __NR_p{read,write}64 if not defined instead
+	of defining it the other way around.
+	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Move common syscalls
+	for 64bit arches to sysdeps/unix/sysv/linux/wordsize-64/syscalls.list.
+	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/alpha/pread64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/pwrite64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/mmap64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/sendfile64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/statfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/fstatfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/pread64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/getrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/readdir64_r.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/pwrite64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/getdents64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/readdir_r.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/readdir.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/mmap64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/xstat.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/setrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/getdents.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/readdir64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/statfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/fstatfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/pread64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/getrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/readdir64_r.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/pwrite64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/getdents64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/readdir_r.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/lxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/readdir.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/mmap64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/xstat.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/setrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/sendfile64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/getdents.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/readdir64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/fxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/statfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/ia64/fstatfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/pread64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/getrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/glob64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/readdir64_r.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/truncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/xstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/pwrite64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/getdents64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/readdir_r.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/lxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/readdir.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/mmap64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/xstat.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/fxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/setrlimit64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/ftruncate64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/sendfile64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/getdents.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/lxstat64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/posix_fadvise64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/readdir64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/fxstat.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/statfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/fstatfs64.c: Removed.
+	* sysdeps/unix/sysv/linux/alpha/Implies: New file.
+	* sysdeps/unix/sysv/linux/alpha/getdents64.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-64/Implies: New file.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies: New file.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Implies: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/pread64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/glob64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/truncate64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/xstat64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/getdents64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/lxstat.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/readdir.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/mmap64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/xstat.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/ftruncate64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/getdents.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/statvfs.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/readdir64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/fxstat.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/statfs64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c: New file.
+	* sysdeps/unix/sysv/linux/ia64/Implies: New file.
+	* sysdeps/unix/sysv/linux/x86_64/Implies: New file.
+
 2004-03-22  Richard Henderson  <rth@redhat.com>
 
 	* sysdeps/alpha/s_fabs.S: Remove file.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 5155b79ae9..c75be9a91a 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,8 @@
 2004-03-23  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
+	@pause in the loop.
+
 	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
 	No need to restrict type of ret.  Make it int.  Add comment.
 
diff --git a/nptl/sysdeps/ia64/pthread_spin_lock.c b/nptl/sysdeps/ia64/pthread_spin_lock.c
index f6b706ae71..71aaef9451 100644
--- a/nptl/sysdeps/ia64/pthread_spin_lock.c
+++ b/nptl/sysdeps/ia64/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
 
@@ -29,7 +29,7 @@ pthread_spin_lock (lock)
     {
       /* Spin without using the atomic instruction.  */
       do
-	__asm __volatile ("" : : : "memory");
+	__asm __volatile ("hint @pause" : : : "memory");
       while (*p);
     }
   return 0;
diff --git a/sysdeps/unix/sysv/linux/alpha/Implies b/sysdeps/unix/sysv/linux/alpha/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/alpha/getdents64.c b/sysdeps/unix/sysv/linux/alpha/getdents64.c
new file mode 100644
index 0000000000..e53570c036
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/getdents64.c
@@ -0,0 +1 @@
+#include "../getdents64.c"
diff --git a/sysdeps/unix/sysv/linux/alpha/posix_fadvise.c b/sysdeps/unix/sysv/linux/alpha/posix_fadvise.c
deleted file mode 100644
index a87426cf15..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/posix_fadvise.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c>
-
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index b3168dea26..3bbce1c6fd 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -18,19 +18,6 @@ vfork		-	vfork		0	__vfork		vfork
 
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
 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	-
-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
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
-getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	2	__setrlimit	setrlimit64 setrlimit
-ftruncate	-	ftruncate	2	__ftruncate	ftruncate __ftruncate64 ftruncate64
-truncate	-	truncate	2	truncate	truncate64
-readahead	-	readahead	3	__readahead	readahead
-sendfile	-	sendfile	i:iipi	sendfile	sendfile64
 open		-	open		Ci:siv	__libc_open	__open open !__libc_open64 __open64 open64
 open64		open	-
 
diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
index 3c0988abd3..c3de78f4bb 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
@@ -65,6 +65,16 @@
 # define __NR_semtimedop	423
 #endif
 
+/* This is a kludge to make syscalls.list find these under the names
+   pread and pwrite, since some kernel headers define those names
+   and some define the *64 names for the same system calls.  */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
+
 /*
  * In order to get the hidden arguments for rt_sigaction set up
  * properly, we need to call the assembly version.  This shouldn't
diff --git a/sysdeps/unix/sysv/linux/ia64/Implies b/sysdeps/unix/sysv/linux/ia64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/ia64/fstatfs64.c b/sysdeps/unix/sysv/linux/ia64/fstatfs64.c
deleted file mode 100644
index 2be4e59ba4..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/fstatfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fstatfs64 is the same as fstatfs. */
diff --git a/sysdeps/unix/sysv/linux/ia64/ftruncate64.c b/sysdeps/unix/sysv/linux/ia64/ftruncate64.c
deleted file mode 100644
index 673a8b525a..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/ftruncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* ftruncate64 is the same as ftruncate. */
diff --git a/sysdeps/unix/sysv/linux/ia64/fxstat64.c b/sysdeps/unix/sysv/linux/ia64/fxstat64.c
deleted file mode 100644
index 9eff9ebeb7..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/fxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/ia64/getrlimit64.c b/sysdeps/unix/sysv/linux/ia64/getrlimit64.c
deleted file mode 100644
index 9feab0e6b8..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/getrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getrlimit64 is the same as getrlimit. */
diff --git a/sysdeps/unix/sysv/linux/ia64/glob64.c b/sysdeps/unix/sysv/linux/ia64/glob64.c
deleted file mode 100644
index 33918ea6a5..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/glob64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* glob64 is in glob.c */
diff --git a/sysdeps/unix/sysv/linux/ia64/lxstat64.c b/sysdeps/unix/sysv/linux/ia64/lxstat64.c
deleted file mode 100644
index bb5dbd0fff..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/lxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/ia64/mmap64.c b/sysdeps/unix/sysv/linux/ia64/mmap64.c
deleted file mode 100644
index 0dbd384a6a..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/mmap64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* mmap64 is the same as mmap. */
diff --git a/sysdeps/unix/sysv/linux/ia64/posix_fadvise.c b/sysdeps/unix/sysv/linux/ia64/posix_fadvise.c
deleted file mode 100644
index a87426cf15..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/posix_fadvise.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c>
-
diff --git a/sysdeps/unix/sysv/linux/ia64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/ia64/posix_fadvise64.c
deleted file mode 100644
index c9f72c4ce1..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/posix_fadvise64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* posix_fadvise64 is in posix_fadvise.c */
diff --git a/sysdeps/unix/sysv/linux/ia64/pread64.c b/sysdeps/unix/sysv/linux/ia64/pread64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/pread64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/pwrite64.c b/sysdeps/unix/sysv/linux/ia64/pwrite64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/pwrite64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/sendfile64.c b/sysdeps/unix/sysv/linux/ia64/sendfile64.c
deleted file mode 100644
index 4c451bd093..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/sendfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* sendfile64 is alias of sendfile syscall.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/setrlimit64.c b/sysdeps/unix/sysv/linux/ia64/setrlimit64.c
deleted file mode 100644
index 8edcff0086..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/setrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* setrlimit64 is the same as setrlimit. */
diff --git a/sysdeps/unix/sysv/linux/ia64/statfs64.c b/sysdeps/unix/sysv/linux/ia64/statfs64.c
deleted file mode 100644
index 06bc68826f..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/statfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* statfs64 is the same as statfs. */
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index 44131beb2e..31c7718d8b 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -2,22 +2,8 @@
 
 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	-
-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
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
-mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
 getpriority	-	getpriority	i:ii	__getpriority	getpriority
-ftruncate	-	ftruncate	2	__ftruncate	ftruncate ftruncate64 __ftruncate64
-truncate	-	truncate	2	truncate	truncate64
-getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	2	__setrlimit	setrlimit setrlimit64
-readahead	-	readahead	3	__readahead	readahead
-sendfile	-	sendfile	i:iipi	sendfile	sendfile64
 
 # semaphore and shm system calls
 msgctl		-	msgctl		i:iip	__msgctl	msgctl
diff --git a/sysdeps/unix/sysv/linux/ia64/truncate64.c b/sysdeps/unix/sysv/linux/ia64/truncate64.c
deleted file mode 100644
index 8999768874..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/truncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* truncate64 is the same as truncate. */
diff --git a/sysdeps/unix/sysv/linux/ia64/xstat64.c b/sysdeps/unix/sysv/linux/ia64/xstat64.c
deleted file mode 100644
index e7acd3b45e..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/xstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* xstat64 is in xstat.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c
deleted file mode 100644
index f733001abe..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sys/types.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-#include "kernel-features.h"
-
-#ifdef __NR_ftruncate64
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-/* The variable is shared between all wrappers around *truncate64 calls.  */
-extern int have_no_truncate64;
-#endif
-
-
-/* Truncate the file FD refers to to LENGTH bytes.  */
-int
-__ftruncate64 (fd, length)
-     int fd;
-     off64_t length;
-{
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-  if (! have_no_truncate64)
-#endif
-    {
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      int saved_errno = errno;
-#endif
-      int result = INLINE_SYSCALL (ftruncate64, 2, fd, length);
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      if (result != -1 || errno != ENOSYS)
-#endif
-	return result;
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      __set_errno (saved_errno);
-      have_no_truncate64 = 1;
-#endif
-    }
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-  if ((off_t) length != length)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-  return __ftruncate (fd, (off_t) length);
-#endif
-}
-weak_alias (__ftruncate64, ftruncate64)
-
-#else
-/* Use the generic implementation.  */
-# include <sysdeps/generic/ftruncate64.c>
-#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c
deleted file mode 100644
index 9eff9ebeb7..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/glob64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/glob64.c
deleted file mode 100644
index 4a3eee9c23..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/glob64.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* glob64 is in glob.c */
-/* File glob64.c is redundent to glob.c in 64-bit. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c
deleted file mode 100644
index bb5dbd0fff..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise.c
deleted file mode 100644
index a87426cf15..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c>
-
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise64.c
deleted file mode 100644
index c9f72c4ce1..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/posix_fadvise64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* posix_fadvise64 is in posix_fadvise.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
new file mode 100644
index 0000000000..aee60bf9d5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
@@ -0,0 +1,3 @@
+# File name	Caller	Syscall name	# args	Strong name	Weak names
+
+getrlimit	-	ugetrlimit	i:ip	__getrlimit	getrlimit getrlimit64
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c
deleted file mode 100644
index cbf0669082..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sys/types.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-#include <bp-checks.h>
-
-#include "kernel-features.h"
-
-#ifdef __NR_truncate64
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-/* The variable is shared between all wrappers around *truncate64 calls.  */
-int have_no_truncate64;
-#endif
-
-
-/* Truncate the file FD refers to to LENGTH bytes.  */
-int
-truncate64 (path, length)
-     const char *path;
-     off64_t length;
-{
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-  if (! have_no_truncate64)
-#endif
-    {
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      int saved_errno = errno;
-#endif
-      int result = INLINE_SYSCALL (truncate64, 2, CHECK_STRING (path), 
-                                  length);
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      if (result != -1 || errno != ENOSYS)
-#endif
-	return result;
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-      __set_errno (saved_errno);
-      have_no_truncate64 = 1;
-#endif
-    }
-
-#ifndef __ASSUME_TRUNCATE64_SYSCALL
-  if ((off_t) length != length)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-  return truncate (path, (off_t) length);
-#endif
-}
-
-#else
-/* Use the generic implementation.  */
-# include <sysdeps/generic/truncate64.c>
-#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c
deleted file mode 100644
index e7acd3b45e..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* xstat64 is in xstat.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Implies b/sysdeps/unix/sysv/linux/s390/s390-64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/fstatfs64.c b/sysdeps/unix/sysv/linux/s390/s390-64/fstatfs64.c
deleted file mode 100644
index 2be4e59ba4..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/fstatfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fstatfs64 is the same as fstatfs. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/ftruncate64.c b/sysdeps/unix/sysv/linux/s390/s390-64/ftruncate64.c
deleted file mode 100644
index 673a8b525a..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/ftruncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* ftruncate64 is the same as ftruncate. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c b/sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c
deleted file mode 100644
index 3a7aa1ca6f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* fxstat using old-style Unix fstat system call.  64 bit S/390 version.
-   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
-   will complain since they don't strictly match.  */
-#define __fxstat64 __fxstat64_disable
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/stat.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-/* Get information about the file FD in BUF.  */
-int
-__fxstat (int vers, int fd, struct stat *buf)
-{
-  return INLINE_SYSCALL (fstat, 2, fd, buf);
-}
-
-hidden_def (__fxstat)
-weak_alias (__fxstat, _fxstat);
-#undef __fxstat64
-strong_alias (__fxstat, __fxstat64);
-hidden_ver (__fxstat, __fxstat64)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/fxstat64.c b/sysdeps/unix/sysv/linux/s390/s390-64/fxstat64.c
deleted file mode 100644
index 9eff9ebeb7..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/fxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getdents.c b/sysdeps/unix/sysv/linux/s390/s390-64/getdents.c
deleted file mode 100644
index 491fa9dfb2..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getdents.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define __getdents64 __no___getdents64_decl
-#include <sysdeps/unix/sysv/linux/getdents.c>
-#undef __getdents64
-weak_alias(__getdents, __getdents64);
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getdents64.c b/sysdeps/unix/sysv/linux/s390/s390-64/getdents64.c
deleted file mode 100644
index 0df2c8f4c6..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getdents64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getdents64 is in getdents.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getrlimit64.c b/sysdeps/unix/sysv/linux/s390/s390-64/getrlimit64.c
deleted file mode 100644
index 9feab0e6b8..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getrlimit64 is the same as getrlimit. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/glob64.c b/sysdeps/unix/sysv/linux/s390/s390-64/glob64.c
deleted file mode 100644
index 33918ea6a5..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/glob64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* glob64 is in glob.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c b/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c
deleted file mode 100644
index 71d6441619..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* lxstat using old-style Unix fstat system call.  64 bit S/390 version.
-   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
-   will complain since they don't strictly match.  */
-#define __lxstat64 __lxstat64_disable
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/stat.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-/* Get information about the file FD in BUF.  */
-int
-__lxstat (int vers, const char *name, struct stat *buf)
-{
-  return INLINE_SYSCALL (lstat, 2, name, buf);
-}
-
-hidden_def (__lxstat)
-weak_alias (__lxstat, _lxstat);
-#undef __lxstat64
-strong_alias (__lxstat, __lxstat64);
-hidden_ver (__lxstat, __lxstat64)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat64.c b/sysdeps/unix/sysv/linux/s390/s390-64/lxstat64.c
deleted file mode 100644
index bb5dbd0fff..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/mmap64.c b/sysdeps/unix/sysv/linux/s390/s390-64/mmap64.c
deleted file mode 100644
index 0dbd384a6a..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/mmap64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* mmap64 is the same as mmap. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise.c b/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise.c
deleted file mode 100644
index a87426cf15..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c>
-
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise64.c
deleted file mode 100644
index c9f72c4ce1..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/posix_fadvise64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* posix_fadvise64 is in posix_fadvise.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pread64.c b/sysdeps/unix/sysv/linux/s390/s390-64/pread64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/pread64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pwrite64.c b/sysdeps/unix/sysv/linux/s390/s390-64/pwrite64.c
deleted file mode 100644
index b1b25f65a3..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/pwrite64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pwrite syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/readdir.c b/sysdeps/unix/sysv/linux/s390/s390-64/readdir.c
deleted file mode 100644
index 300ebb2629..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/readdir.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define readdir64 __no_readdir64_decl
-#define __readdir64 __no___readdir64_decl
-#include <sysdeps/unix/readdir.c>
-#undef __readdir64
-strong_alias (__readdir, __readdir64)
-#undef readdir64
-weak_alias (__readdir, readdir64)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/readdir64.c b/sysdeps/unix/sysv/linux/s390/s390-64/readdir64.c
deleted file mode 100644
index 9796431dc4..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/readdir64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64 is in readdir.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/readdir64_r.c b/sysdeps/unix/sysv/linux/s390/s390-64/readdir64_r.c
deleted file mode 100644
index b8fe9a31b4..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/readdir64_r.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64_r is in readdir_r.c */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/readdir_r.c b/sysdeps/unix/sysv/linux/s390/s390-64/readdir_r.c
deleted file mode 100644
index adb92db6af..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/readdir_r.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define readdir64_r __no_readdir64_r_decl
-#include <sysdeps/unix/readdir_r.c>
-#undef readdir64_r
-weak_alias (__readdir_r, readdir64_r)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setrlimit64.c b/sysdeps/unix/sysv/linux/s390/s390-64/setrlimit64.c
deleted file mode 100644
index 8edcff0086..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/setrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* setrlimit64 is the same as setrlimit. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/statfs64.c b/sysdeps/unix/sysv/linux/s390/s390-64/statfs64.c
deleted file mode 100644
index 06bc68826f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/statfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* statfs64 is the same as statfs. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
index cdfbe2a5ad..477f8a9f09 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
@@ -1,16 +1,6 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-llseek		EXTRA	lseek		C:3	__libc_lseek	__lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
-lseek		llseek	-
-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
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
-ftruncate	-	ftruncate	2	__ftruncate	ftruncate ftruncate64 __ftruncate64
-truncate	-	truncate	2	truncate	truncate64
-getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	2	__setrlimit	setrlimit setrlimit64
 vfork		-	vfork		0	__vfork		vfork
 
 # semaphore and shm system calls
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 2fb6e7a0cf..f0d7cbe2d9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -33,14 +33,13 @@
 
 /*
  * Newer kernel versions redefined __NR_pread and __NR_pwrite to
- * __NR_pread64 and __NR_pwrite64. We use the new names but have
- * to define them on our own for compiling against older kernels.
+ * __NR_pread64 and __NR_pwrite64.
  */
-#ifndef __NR_pread64
-# define __NR_pread64 __NR_pread
+#ifndef __NR_pread
+# define __NR_pread __NR_pread64
 #endif
-#ifndef __NR_pwrite64
-# define __NR_pwrite64 __NR_pwrite
+#ifndef __NR_pwrite
+# define __NR_pwrite __NR_pwrite64
 #endif
 
 #undef SYS_ify
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/truncate64.c b/sysdeps/unix/sysv/linux/s390/s390-64/truncate64.c
deleted file mode 100644
index 8999768874..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/truncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* truncate64 is the same as truncate. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/xstat.c b/sysdeps/unix/sysv/linux/s390/s390-64/xstat.c
deleted file mode 100644
index 50b459bb5f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/xstat.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* xstat using old-style Unix stat system call.  64 bit S/390 version.
-   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
-   will complain since they don't strictly match.  */
-#define __xstat64 __xstat64_disable
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/stat.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-/* Get information about the file NAME in BUF.  */
-int
-__xstat (int vers, const char *name, struct stat *buf)
-{
-  return INLINE_SYSCALL (stat, 2, name, buf);
-}
-hidden_def (__xstat)
-weak_alias (__xstat, _xstat);
-#undef __xstat64
-strong_alias (__xstat, __xstat64);
-hidden_ver (__xstat, __xstat64)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/xstat64.c b/sysdeps/unix/sysv/linux/s390/s390-64/xstat64.c
deleted file mode 100644
index e7acd3b45e..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/xstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* xstat64 is in xstat.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Implies b/sysdeps/unix/sysv/linux/sparc/sparc64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c
deleted file mode 100644
index 2be4e59ba4..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fstatfs64 is the same as fstatfs. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c
deleted file mode 100644
index 673a8b525a..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* ftruncate64 is the same as ftruncate. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c b/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
new file mode 100644
index 0000000000..6b374777b8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
@@ -0,0 +1 @@
+#include "../../fxstat.c"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c
deleted file mode 100644
index 9eff9ebeb7..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c b/sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c
deleted file mode 100644
index 491fa9dfb2..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define __getdents64 __no___getdents64_decl
-#include <sysdeps/unix/sysv/linux/getdents.c>
-#undef __getdents64
-weak_alias(__getdents, __getdents64);
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c
deleted file mode 100644
index 0df2c8f4c6..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getdents64 is in getdents.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c
deleted file mode 100644
index 9feab0e6b8..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getrlimit64 is the same as getrlimit. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
deleted file mode 100644
index 33918ea6a5..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* glob64 is in glob.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c b/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c
new file mode 100644
index 0000000000..7637472dfc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c
@@ -0,0 +1 @@
+#include "../../lxstat.c"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c
deleted file mode 100644
index bb5dbd0fff..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c
deleted file mode 100644
index 0dbd384a6a..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* mmap64 is the same as mmap. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise.c b/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise.c
deleted file mode 100644
index a87426cf15..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c>
-
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise64.c
deleted file mode 100644
index c9f72c4ce1..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/posix_fadvise64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* posix_fadvise64 is in posix_fadvise.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c
deleted file mode 100644
index 300ebb2629..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define readdir64 __no_readdir64_decl
-#define __readdir64 __no___readdir64_decl
-#include <sysdeps/unix/readdir.c>
-#undef __readdir64
-strong_alias (__readdir, __readdir64)
-#undef readdir64
-weak_alias (__readdir, readdir64)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c
deleted file mode 100644
index 9796431dc4..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64 is in readdir.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c
deleted file mode 100644
index b8fe9a31b4..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64_r is in readdir_r.c */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c
deleted file mode 100644
index adb92db6af..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define readdir64_r __no_readdir64_r_decl
-#include <sysdeps/unix/readdir_r.c>
-#undef readdir64_r
-weak_alias (__readdir_r, readdir64_r)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c
deleted file mode 100644
index 4c451bd093..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* sendfile64 is alias of sendfile syscall.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c
deleted file mode 100644
index 8edcff0086..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* setrlimit64 is the same as setrlimit. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c
deleted file mode 100644
index 06bc68826f..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* statfs64 is the same as statfs. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index a34e49246e..ca2953c6b9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -1,19 +1,5 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-# Whee! 64-bit systems naturally implement llseek.
-llseek		EXTRA	lseek		C:3	__llseek	llseek	__libc_lseek64 __lseek64 lseek64
-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		2	__fstatfs	fstatfs __fstatfs64 fstatfs64
-statfs		-	statfs		2	__statfs	statfs statfs64
-getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	2	__setrlimit	setrlimit64 setrlimit
-ftruncate	-	ftruncate	2	__ftruncate	ftruncate __ftruncate64 ftruncate64
-truncate	-	truncate	2	truncate	truncate64
-mmap		-	mmap		6	__mmap		mmap __mmap64 mmap64
-readahead	-	readahead	3	__readahead	readahead
-sendfile	-	sendfile	i:iipi	sendfile	sendfile64
-
 # Override select.S in parent directory:
 select		-	select		C:5	__select	select
 accept		-	accept		C:3	__libc_accept	__accept accept
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c
deleted file mode 100644
index 8999768874..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* truncate64 is the same as truncate. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
new file mode 100644
index 0000000000..27d700b133
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
@@ -0,0 +1 @@
+#include "../../xstat.c"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c
deleted file mode 100644
index e7acd3b45e..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* xstat64 is in xstat.c */
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c
index 2be4e59ba4..2be4e59ba4 100644
--- a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c b/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
new file mode 100644
index 0000000000..d04bcd4b5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
@@ -0,0 +1,5 @@
+#define __fstatvfs64(file, buf) __no_fstatvfs64(file, buf)
+#define fstatvfs64(file, buf) no_fstatvfs64(file, buf)
+#include "../fstatvfs.c"
+strong_alias (fstatvfs, __fstatvfs64)
+weak_alias (fstatvfs, fstatvfs64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c b/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c
new file mode 100644
index 0000000000..60f3dfec61
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c
@@ -0,0 +1 @@
+/* fstatvfs64 is the same as fstatvfs. */
diff --git a/sysdeps/unix/sysv/linux/alpha/ftruncate64.c b/sysdeps/unix/sysv/linux/wordsize-64/ftruncate64.c
index 673a8b525a..673a8b525a 100644
--- a/sysdeps/unix/sysv/linux/alpha/ftruncate64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/ftruncate64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/fxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
index cbcb3146dc..dd47dbbd8e 100644
--- a/sysdeps/unix/sysv/linux/ia64/fxstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
@@ -1,5 +1,5 @@
 /* fxstat using old-style Unix fstat system call.
-   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003
+   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -34,7 +34,11 @@
 int
 __fxstat (int vers, int fd, struct stat *buf)
 {
-  return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 (buf));
+  if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+    return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
+
+  __set_errno (EINVAL);
+  return -1;
 }
 
 hidden_def (__fxstat)
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat64.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c
index 9eff9ebeb7..9eff9ebeb7 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/getdents.c b/sysdeps/unix/sysv/linux/wordsize-64/getdents.c
index 491fa9dfb2..491fa9dfb2 100644
--- a/sysdeps/unix/sysv/linux/ia64/getdents.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/getdents.c
diff --git a/sysdeps/unix/sysv/linux/ia64/getdents64.c b/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c
index 0df2c8f4c6..0df2c8f4c6 100644
--- a/sysdeps/unix/sysv/linux/ia64/getdents64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c
index 9feab0e6b8..9feab0e6b8 100644
--- a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/glob64.c b/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
index 33918ea6a5..33918ea6a5 100644
--- a/sysdeps/unix/sysv/linux/alpha/glob64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/lxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
index a2a30a38d6..2b937760e2 100644
--- a/sysdeps/unix/sysv/linux/ia64/lxstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
@@ -1,5 +1,5 @@
-/* lxstat using old-style Unix fstat system call.
-   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003
+/* lxstat using old-style Unix lstat system call.
+   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -34,7 +34,11 @@
 int
 __lxstat (int vers, const char *name, struct stat *buf)
 {
-  return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf));
+  if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf));
+
+  __set_errno (EINVAL);
+  return -1;
 }
 
 hidden_def (__lxstat)
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat64.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c
index bb5dbd0fff..bb5dbd0fff 100644
--- a/sysdeps/unix/sysv/linux/alpha/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/mmap64.c b/sysdeps/unix/sysv/linux/wordsize-64/mmap64.c
index 0dbd384a6a..0dbd384a6a 100644
--- a/sysdeps/unix/sysv/linux/alpha/mmap64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/mmap64.c
diff --git a/sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c b/sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c
index b230748048..b230748048 100644
--- a/sysdeps/unix/sysv/linux/x86_64/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c
diff --git a/sysdeps/unix/sysv/linux/alpha/posix_fadvise64.c b/sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise64.c
index c9f72c4ce1..c9f72c4ce1 100644
--- a/sysdeps/unix/sysv/linux/alpha/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/pread64.c b/sysdeps/unix/sysv/linux/wordsize-64/pread64.c
index b7f298dea8..b7f298dea8 100644
--- a/sysdeps/unix/sysv/linux/alpha/pread64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/pread64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/pwrite64.c b/sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c
index b7f298dea8..b7f298dea8 100644
--- a/sysdeps/unix/sysv/linux/alpha/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/readdir.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir.c
index 300ebb2629..300ebb2629 100644
--- a/sysdeps/unix/sysv/linux/ia64/readdir.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir.c
diff --git a/sysdeps/unix/sysv/linux/ia64/readdir64.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c
index 9796431dc4..9796431dc4 100644
--- a/sysdeps/unix/sysv/linux/ia64/readdir64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/readdir64_r.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c
index b8fe9a31b4..b8fe9a31b4 100644
--- a/sysdeps/unix/sysv/linux/ia64/readdir64_r.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c
diff --git a/sysdeps/unix/sysv/linux/ia64/readdir_r.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
index adb92db6af..adb92db6af 100644
--- a/sysdeps/unix/sysv/linux/ia64/readdir_r.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
diff --git a/sysdeps/unix/sysv/linux/alpha/sendfile64.c b/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c
index 4c451bd093..4c451bd093 100644
--- a/sysdeps/unix/sysv/linux/alpha/sendfile64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c
index 8edcff0086..8edcff0086 100644
--- a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs64.c b/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c
index 06bc68826f..06bc68826f 100644
--- a/sysdeps/unix/sysv/linux/alpha/statfs64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c b/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c
new file mode 100644
index 0000000000..f369976cc2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c
@@ -0,0 +1,5 @@
+#define __statvfs64(file, buf) __no_statvfs64(file, buf)
+#define statvfs64(file, buf) no_statvfs64(file, buf)
+#include "../statvfs.c"
+strong_alias (statvfs, __statvfs64)
+weak_alias (statvfs, statvfs64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c b/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c
new file mode 100644
index 0000000000..510015e420
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c
@@ -0,0 +1 @@
+/* statvfs64 is the same as statvfs. */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
new file mode 100644
index 0000000000..58904fc4d4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
@@ -0,0 +1,16 @@
+# File name	Caller	Syscall name	# args	Strong name	Weak names
+
+# Whee! 64-bit systems naturally implement llseek.
+llseek		EXTRA	lseek		Ci:iii	__libc_lseek	__lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
+lseek		llseek	-
+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
+statfs		-	statfs		i:sp	__statfs	statfs statfs64
+mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
+ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate ftruncate64 __ftruncate64
+truncate	-	truncate	i:si	truncate	truncate64
+getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64
+setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit setrlimit64
+readahead	-	readahead	i:iii	__readahead	readahead
+sendfile	-	sendfile	i:iipi	sendfile	sendfile64
diff --git a/sysdeps/unix/sysv/linux/alpha/truncate64.c b/sysdeps/unix/sysv/linux/wordsize-64/truncate64.c
index 8999768874..8999768874 100644
--- a/sysdeps/unix/sysv/linux/alpha/truncate64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/truncate64.c
diff --git a/sysdeps/unix/sysv/linux/ia64/xstat.c b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
index 9f6b5d29fa..38f32b6641 100644
--- a/sysdeps/unix/sysv/linux/ia64/xstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
@@ -1,5 +1,5 @@
 /* xstat using old-style Unix stat system call.
-   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003
+   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -34,7 +34,11 @@
 int
 __xstat (int vers, const char *name, struct stat *buf)
 {
-  return INLINE_SYSCALL (stat, 2, name, CHECK_1 (buf));
+  if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+    return INLINE_SYSCALL (stat, 2, name, CHECK_1 (buf));
+
+  __set_errno (EINVAL);
+  return -1;
 }
 hidden_def (__xstat)
 weak_alias (__xstat, _xstat);
diff --git a/sysdeps/unix/sysv/linux/alpha/xstat64.c b/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c
index e7acd3b45e..e7acd3b45e 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstat64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c
diff --git a/sysdeps/unix/sysv/linux/x86_64/Implies b/sysdeps/unix/sysv/linux/x86_64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/x86_64/fstatfs64.c b/sysdeps/unix/sysv/linux/x86_64/fstatfs64.c
deleted file mode 100644
index 2be4e59ba4..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/fstatfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fstatfs64 is the same as fstatfs. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/ftruncate64.c b/sysdeps/unix/sysv/linux/x86_64/ftruncate64.c
deleted file mode 100644
index 673a8b525a..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/ftruncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* ftruncate64 is the same as ftruncate. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/fxstat.c b/sysdeps/unix/sysv/linux/x86_64/fxstat.c
deleted file mode 100644
index c25fd7b25e..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/fxstat.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/fxstat.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/fxstat64.c b/sysdeps/unix/sysv/linux/x86_64/fxstat64.c
deleted file mode 100644
index 9eff9ebeb7..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/fxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/getdents.c b/sysdeps/unix/sysv/linux/x86_64/getdents.c
deleted file mode 100644
index b4c44cdf10..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/getdents.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/getdents.c>
-
diff --git a/sysdeps/unix/sysv/linux/x86_64/getdents64.c b/sysdeps/unix/sysv/linux/x86_64/getdents64.c
deleted file mode 100644
index 0df2c8f4c6..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/getdents64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getdents64 is in getdents.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/getrlimit64.c b/sysdeps/unix/sysv/linux/x86_64/getrlimit64.c
deleted file mode 100644
index 9feab0e6b8..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/getrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* getrlimit64 is the same as getrlimit. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/glob64.c b/sysdeps/unix/sysv/linux/x86_64/glob64.c
deleted file mode 100644
index 33918ea6a5..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/glob64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* glob64 is in glob.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/lxstat.c b/sysdeps/unix/sysv/linux/x86_64/lxstat.c
deleted file mode 100644
index 648c60a1c0..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lxstat.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/lxstat.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/lxstat64.c b/sysdeps/unix/sysv/linux/x86_64/lxstat64.c
deleted file mode 100644
index bb5dbd0fff..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lxstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/mmap64.c b/sysdeps/unix/sysv/linux/x86_64/mmap64.c
deleted file mode 100644
index 0dbd384a6a..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/mmap64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* mmap64 is the same as mmap. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/x86_64/posix_fadvise64.c
deleted file mode 100644
index c9f72c4ce1..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/posix_fadvise64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* posix_fadvise64 is in posix_fadvise.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/pread64.c b/sysdeps/unix/sysv/linux/x86_64/pread64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/pread64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/pwrite64.c b/sysdeps/unix/sysv/linux/x86_64/pwrite64.c
deleted file mode 100644
index b7f298dea8..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/pwrite64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty since the pread syscall is equivalent.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/readdir.c b/sysdeps/unix/sysv/linux/x86_64/readdir.c
deleted file mode 100644
index c0bc09b7f6..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/readdir.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/readdir.c>
-
diff --git a/sysdeps/unix/sysv/linux/x86_64/readdir64.c b/sysdeps/unix/sysv/linux/x86_64/readdir64.c
deleted file mode 100644
index 9796431dc4..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/readdir64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64 is in readdir.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/readdir64_r.c b/sysdeps/unix/sysv/linux/x86_64/readdir64_r.c
deleted file mode 100644
index b8fe9a31b4..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/readdir64_r.c
+++ /dev/null
@@ -1 +0,0 @@
-/* readdir64_r is in readdir_r.c */
diff --git a/sysdeps/unix/sysv/linux/x86_64/readdir_r.c b/sysdeps/unix/sysv/linux/x86_64/readdir_r.c
deleted file mode 100644
index 3b953e5528..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/readdir_r.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/readdir_r.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sendfile64.c b/sysdeps/unix/sysv/linux/x86_64/sendfile64.c
deleted file mode 100644
index 4c451bd093..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/sendfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* sendfile64 is alias of sendfile syscall.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/setrlimit64.c b/sysdeps/unix/sysv/linux/x86_64/setrlimit64.c
deleted file mode 100644
index 8edcff0086..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/setrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* setrlimit64 is the same as setrlimit. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/statfs64.c b/sysdeps/unix/sysv/linux/x86_64/statfs64.c
deleted file mode 100644
index 06bc68826f..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/statfs64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* statfs64 is the same as statfs. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
index 7d050c7815..a9d40446db 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
@@ -1,19 +1,7 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
 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
-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
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
-getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit64 setrlimit
-ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate ftruncate64 __ftruncate64
-truncate	-	truncate	i:si	truncate	truncate64
-readahead	-	readahead	i:iii	__readahead	readahead
-sendfile	-	sendfile	i:iipi	sendfile	sendfile64
 
 # semaphore and shm system calls
 msgctl		-	msgctl		i:iip	__msgctl	msgctl
diff --git a/sysdeps/unix/sysv/linux/x86_64/truncate64.c b/sysdeps/unix/sysv/linux/x86_64/truncate64.c
deleted file mode 100644
index 8999768874..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/truncate64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* truncate64 is the same as truncate. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/xstat.c b/sysdeps/unix/sysv/linux/x86_64/xstat.c
deleted file mode 100644
index c315d841c2..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/xstat.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/xstat.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/xstat64.c b/sysdeps/unix/sysv/linux/x86_64/xstat64.c
deleted file mode 100644
index e7acd3b45e..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/xstat64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* xstat64 is in xstat.c */