about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog51
-rw-r--r--crypt/sha256-crypt.c5
-rw-r--r--crypt/sha512-crypt.c5
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/open64.c23
-rw-r--r--sysdeps/unix/sysv/linux/open64_2.c32
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/aio_read.c7
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/aio_write.c7
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/creat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c3
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c13
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/open64.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/openat.c16
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/openat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscalls.list4
-rw-r--r--sysdeps/wordsize-64/alphasort.c3
-rw-r--r--sysdeps/wordsize-64/alphasort64.c1
-rw-r--r--sysdeps/wordsize-64/fseeko.c3
-rw-r--r--sysdeps/wordsize-64/fseeko64.c1
-rw-r--r--sysdeps/wordsize-64/ftello.c3
-rw-r--r--sysdeps/wordsize-64/ftello64.c1
-rw-r--r--sysdeps/wordsize-64/ftw.c16
-rw-r--r--sysdeps/wordsize-64/ftw64.c1
-rw-r--r--sysdeps/wordsize-64/iofgetpos.c12
-rw-r--r--sysdeps/wordsize-64/iofgetpos64.c1
-rw-r--r--sysdeps/wordsize-64/iofopen.c4
-rw-r--r--sysdeps/wordsize-64/iofopen64.c1
-rw-r--r--sysdeps/wordsize-64/iofsetpos.c12
-rw-r--r--sysdeps/wordsize-64/iofsetpos64.c1
-rw-r--r--sysdeps/wordsize-64/lockf.c3
-rw-r--r--sysdeps/wordsize-64/lockf64.c1
-rw-r--r--sysdeps/wordsize-64/mkostemp.c3
-rw-r--r--sysdeps/wordsize-64/mkostemp64.c1
-rw-r--r--sysdeps/wordsize-64/mkstemp.c3
-rw-r--r--sysdeps/wordsize-64/mkstemp64.c1
-rw-r--r--sysdeps/wordsize-64/scandir.c6
-rw-r--r--sysdeps/wordsize-64/scandir64.c1
-rw-r--r--sysdeps/wordsize-64/tmpfile.c3
-rw-r--r--sysdeps/wordsize-64/tmpfile64.c1
-rw-r--r--sysdeps/wordsize-64/versionsort.c3
-rw-r--r--sysdeps/wordsize-64/versionsort64.c1
46 files changed, 233 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index ed269eeaf2..0cd489486e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,54 @@
+2007-11-10  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/open64.c: Move __open64_2 implementation to..
+	* sysdeps/unix/sysv/linux/open64_2.c: ...here.  New file.
+	* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines): Add
+	open64_2.
+	* sysdeps/unix/sysv/linux/ia64/syscalls.list: Add open and creat
+	entries.
+	* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
+	* sysdeps/wordsize-64/alphasort.c: New file.
+	* sysdeps/wordsize-64/alphasort64.c: New file.
+	* sysdeps/wordsize-64/fseeko.c: New file.
+	* sysdeps/wordsize-64/fseeko64.c: New file.
+	* sysdeps/wordsize-64/ftello.c: New file.
+	* sysdeps/wordsize-64/ftello64.c: New file.
+	* sysdeps/wordsize-64/ftw.c: New file.
+	* sysdeps/wordsize-64/ftw64.c: New file.
+	* sysdeps/wordsize-64/iofgetpos.c: New file.
+	* sysdeps/wordsize-64/iofgetpos64.c: New file.
+	* sysdeps/wordsize-64/iofopen.c: New file.
+	* sysdeps/wordsize-64/iofopen64.c: New file.
+	* sysdeps/wordsize-64/iofsetpos.c: New file.
+	* sysdeps/wordsize-64/iofsetpos64.c: New file.
+	* sysdeps/wordsize-64/lockf.c: New file.
+	* sysdeps/wordsize-64/lockf64.c: New file.
+	* sysdeps/wordsize-64/mkostemp.c: New file.
+	* sysdeps/wordsize-64/mkostemp64.c: New file.
+	* sysdeps/wordsize-64/mkstemp.c: New file.
+	* sysdeps/wordsize-64/mkstemp64.c: New file.
+	* sysdeps/wordsize-64/scandir.c: New file.
+	* sysdeps/wordsize-64/scandir64.c: New file.
+	* sysdeps/wordsize-64/tmpfile.c: New file.
+	* sysdeps/wordsize-64/tmpfile64.c: New file.
+	* sysdeps/wordsize-64/versionsort.c: New file.
+	* sysdeps/wordsize-64/versionsort64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/aio_read.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/aio_write.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/creat64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/open64.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/openat.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/openat64.c: New file.
+
+	* crypt/sha256-crypt.c: Fix a comment.
+	* crypt/sha512-crypt.c: Likewise.
+
 2007-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/memset.S: Add sfence after movnti.
diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
index 0db13e4664..dbd29e0efd 100644
--- a/crypt/sha256-crypt.c
+++ b/crypt/sha256-crypt.c
@@ -129,9 +129,8 @@ __sha256_crypt_r (key, salt, buffer, buflen)
   /* Add the key string.  */
   __sha256_process_bytes (key, key_len, &ctx);
 
-  /* The last part is the salt string.  This must be at most 8
-     characters and it ends at the first `$' character (for
-     compatibility with existing implementations).  */
+  /* The last part is the salt string.  This must be at most 16
+     characters and it ends at the first `$' character.  */
   __sha256_process_bytes (salt, salt_len, &ctx);
 
 
diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
index 4b8949f5f1..ea96e525fb 100644
--- a/crypt/sha512-crypt.c
+++ b/crypt/sha512-crypt.c
@@ -129,9 +129,8 @@ __sha512_crypt_r (key, salt, buffer, buflen)
   /* Add the key string.  */
   __sha512_process_bytes (key, key_len, &ctx);
 
-  /* The last part is the salt string.  This must be at most 8
-     characters and it ends at the first `$' character (for
-     compatibility with existing implementations).  */
+  /* The last part is the salt string.  This must be at most 16
+     characters and it ends at the first `$' character.  */
   __sha512_process_bytes (salt, salt_len, &ctx);
 
 
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 6ba3a25c84..a3c6228812 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -138,7 +138,7 @@ endif
 
 ifeq ($(subdir),io)
 sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
-		   sync_file_range open_2
+		   sync_file_range open_2 open64_2
 endif
 
 ifeq ($(subdir),elf)
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index c55c70ef54..582492706e 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -4,6 +4,9 @@ umount2		-	umount		2	__umount2	umount2
 
 getpriority	-	getpriority	i:ii	__getpriority	getpriority
 
+creat		-	creat		Ci:si	__libc_creat	creat creat64
+open		-	open		Ci:siv	__libc_open	__open open __open64 open64
+
 # semaphore and shm system calls
 msgctl		-	msgctl		i:iip	__msgctl	msgctl
 msgget		-	msgget		i:ii	__msgget	msgget
diff --git a/sysdeps/unix/sysv/linux/open64.c b/sysdeps/unix/sysv/linux/open64.c
index c52ce39db1..21b3d0b010 100644
--- a/sysdeps/unix/sysv/linux/open64.c
+++ b/sysdeps/unix/sysv/linux/open64.c
@@ -52,26 +52,3 @@ __libc_open64 (const char *file, int oflag, ...)
 weak_alias (__libc_open64, __open64)
 libc_hidden_weak (__open64)
 weak_alias (__libc_open64, open64)
-
-
-#ifndef PTW
-int
-__open64_2 (file, oflag)
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid open64 call: O_CREAT without mode");
-
-  if (SINGLE_THREAD_P)
-    return INLINE_SYSCALL (open, 2, file, oflag | O_LARGEFILE);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = INLINE_SYSCALL (open, 2, file, oflag | O_LARGEFILE);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
-}
-#endif
diff --git a/sysdeps/unix/sysv/linux/open64_2.c b/sysdeps/unix/sysv/linux/open64_2.c
new file mode 100644
index 0000000000..76b65e5217
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/open64_2.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2007 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 <fcntl.h>
+#include <stdio.h>
+
+
+int
+__open64_2 (file, oflag)
+     const char *file;
+     int oflag;
+{
+  if (oflag & O_CREAT)
+    __fortify_fail ("invalid open64 call: O_CREAT without mode");
+
+  return __open64 (file, oflag);
+}
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
new file mode 100644
index 0000000000..d10fc4320b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
@@ -0,0 +1,7 @@
+#define aio_read64 __renamed_aio_read64
+
+#include "../../../../pthread/aio_read.c"
+
+#undef aio_read64
+
+weak_alias (aio_read, aio_read64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
new file mode 100644
index 0000000000..6a6a102c8d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
@@ -0,0 +1 @@
+/* Defined in aio_read.c.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
new file mode 100644
index 0000000000..b0fb469cb2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
@@ -0,0 +1,7 @@
+#define aio_write64 __renamed_aio_write64
+
+#include "../../../../pthread/aio_write.c"
+
+#undef aio_write64
+
+weak_alias (aio_write, aio_write64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
new file mode 100644
index 0000000000..ced07fa273
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
@@ -0,0 +1 @@
+/* Defined in aio_write.c.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/creat64.c b/sysdeps/unix/sysv/linux/wordsize-64/creat64.c
new file mode 100644
index 0000000000..c106e2b362
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/creat64.c
@@ -0,0 +1 @@
+/* Defined as alias for the syscall.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c b/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c
new file mode 100644
index 0000000000..298d1e9e91
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c
@@ -0,0 +1,3 @@
+#include "../getdirentries.c"
+
+weak_alias (getdirentries, getdirentries64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c b/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c
new file mode 100644
index 0000000000..622baf0c87
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c
@@ -0,0 +1 @@
+/* Defined in getdirentries.c.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
new file mode 100644
index 0000000000..25ee5a3507
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
@@ -0,0 +1,13 @@
+#define lio_listio64 __renamed_lio_listio64
+
+#include "../../../../pthread/lio_listio.c"
+
+#undef lio_listio64
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+strong_alias (__lio_listio_21, __lio_listio64_21)
+compat_symbol (librt, __lio_listio64_21, lio_listio64, GLIBC_2_1);
+#endif
+
+strong_alias (__lio_listio_item_notify, __lio_listio64_item_notify)
+versioned_symbol (librt, __lio_listio64_item_notify, lio_listio64, GLIBC_2_4);
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
new file mode 100644
index 0000000000..1dabae3692
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
@@ -0,0 +1 @@
+/* Defined in lio_listio.c.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/open64.c b/sysdeps/unix/sysv/linux/wordsize-64/open64.c
new file mode 100644
index 0000000000..0abe30ef62
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/open64.c
@@ -0,0 +1 @@
+/* Defined in open syscall.  */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/openat.c b/sysdeps/unix/sysv/linux/wordsize-64/openat.c
new file mode 100644
index 0000000000..4921fca335
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/openat.c
@@ -0,0 +1,16 @@
+#define __openat64 __rename___openat64
+#define __openat64_2 __rename___openat64_2
+#define __openat64_nocancel __rename___openat64_nocancel
+#define openat64 __rename_openat64
+
+#include "../openat.c"
+
+#undef __openat64
+#undef __openat64_2
+#undef __openat64_nocancel
+#undef openat64
+
+weak_alias (__openat, __openat64)
+weak_alias (__openat_2, __openat64_2)
+weak_alias (__openat_nocancel, __openat64_nocancel)
+weak_alias (openat, openat64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/openat64.c b/sysdeps/unix/sysv/linux/wordsize-64/openat64.c
new file mode 100644
index 0000000000..b4a864b040
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/openat64.c
@@ -0,0 +1 @@
+/* Defined in openat.c.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
index a9d40446db..a3d3d6cf92 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
@@ -1,13 +1,13 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
 arch_prctl	EXTRA	arch_prctl	i:ii	__arch_prctl	arch_prctl
+creat		-	creat		Ci:si	__libc_creat	creat creat64
 modify_ldt	EXTRA	modify_ldt	i:ipi	__modify_ldt	modify_ldt
-
-# semaphore and shm system calls
 msgctl		-	msgctl		i:iip	__msgctl	msgctl
 msgget		-	msgget		i:ii	__msgget	msgget
 msgrcv		-	msgrcv		Ci:ibnii __msgrcv	msgrcv
 msgsnd		-	msgsnd		Ci:ibni	__msgsnd	msgsnd
+open		-	open		Ci:siv	__libc_open	__open open __open64 open64
 shmat		-	shmat		i:ipi	__shmat		shmat
 shmctl		-	shmctl		i:iip	__shmctl	shmctl
 shmdt		-	shmdt		i:s	__shmdt		shmdt
diff --git a/sysdeps/wordsize-64/alphasort.c b/sysdeps/wordsize-64/alphasort.c
new file mode 100644
index 0000000000..5096166625
--- /dev/null
+++ b/sysdeps/wordsize-64/alphasort.c
@@ -0,0 +1,3 @@
+#include "../../dirent/alphasort.c"
+
+weak_alias (alphasort, alphasort64)
diff --git a/sysdeps/wordsize-64/alphasort64.c b/sysdeps/wordsize-64/alphasort64.c
new file mode 100644
index 0000000000..08509131b6
--- /dev/null
+++ b/sysdeps/wordsize-64/alphasort64.c
@@ -0,0 +1 @@
+/* Defined in alphasort.c.  */
diff --git a/sysdeps/wordsize-64/fseeko.c b/sysdeps/wordsize-64/fseeko.c
new file mode 100644
index 0000000000..692885a8be
--- /dev/null
+++ b/sysdeps/wordsize-64/fseeko.c
@@ -0,0 +1,3 @@
+#include "../../libio/fseeko.c"
+
+weak_alias (fseeko, fseeko64)
diff --git a/sysdeps/wordsize-64/fseeko64.c b/sysdeps/wordsize-64/fseeko64.c
new file mode 100644
index 0000000000..73e011afbb
--- /dev/null
+++ b/sysdeps/wordsize-64/fseeko64.c
@@ -0,0 +1 @@
+/* Defined in fseeko.c.  */
diff --git a/sysdeps/wordsize-64/ftello.c b/sysdeps/wordsize-64/ftello.c
new file mode 100644
index 0000000000..fa05cfcf02
--- /dev/null
+++ b/sysdeps/wordsize-64/ftello.c
@@ -0,0 +1,3 @@
+#include "../../libio/ftello.c"
+
+weak_alias (ftello, ftello64)
diff --git a/sysdeps/wordsize-64/ftello64.c b/sysdeps/wordsize-64/ftello64.c
new file mode 100644
index 0000000000..2cbbe6320a
--- /dev/null
+++ b/sysdeps/wordsize-64/ftello64.c
@@ -0,0 +1 @@
+/* Defined in ftello.c.  */
diff --git a/sysdeps/wordsize-64/ftw.c b/sysdeps/wordsize-64/ftw.c
new file mode 100644
index 0000000000..ca19903799
--- /dev/null
+++ b/sysdeps/wordsize-64/ftw.c
@@ -0,0 +1,16 @@
+#define ftw64 __rename_ftw64
+#define nftw64 __rename_nftw64
+
+#include "../../io/ftw.c"
+
+#undef ftw64
+#undef nftw64
+
+weak_alias (ftw, ftw64)
+strong_alias (__new_nftw, __new_nftw64)
+versioned_symbol (libc, __new_nftw64, nftw64, GLIBC_2_3_3);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_3_3)
+strong_alias (__old_nftw, __old_nftw64)
+compat_symbol (libc, __old_nftw64, nftw64, GLIBC_2_1);
+#endif
diff --git a/sysdeps/wordsize-64/ftw64.c b/sysdeps/wordsize-64/ftw64.c
new file mode 100644
index 0000000000..1cfcaadfd1
--- /dev/null
+++ b/sysdeps/wordsize-64/ftw64.c
@@ -0,0 +1 @@
+/* Defined in ftw.c.  */
diff --git a/sysdeps/wordsize-64/iofgetpos.c b/sysdeps/wordsize-64/iofgetpos.c
new file mode 100644
index 0000000000..ba8df67c9b
--- /dev/null
+++ b/sysdeps/wordsize-64/iofgetpos.c
@@ -0,0 +1,12 @@
+#define _IO_new_fgetpos64 __renamed__IO_new_fgetpos64
+#define _IO_fgetpos64 __renamed__IO_fgetpos64
+
+#include "../../libio/iofgetpos.c"
+
+#undef _IO_new_fgetpos64
+#undef _IO_fgetpos64
+
+strong_alias (_IO_new_fgetpos, _IO_new_fgetpos64)
+strong_alias (_IO_new_fgetpos64, __new_fgetpos64)
+versioned_symbol (libc, _IO_new_fgetpos64, _IO_fgetpos64, GLIBC_2_2);
+versioned_symbol (libc, __new_fgetpos64, fgetpos64, GLIBC_2_2);
diff --git a/sysdeps/wordsize-64/iofgetpos64.c b/sysdeps/wordsize-64/iofgetpos64.c
new file mode 100644
index 0000000000..1748b810fb
--- /dev/null
+++ b/sysdeps/wordsize-64/iofgetpos64.c
@@ -0,0 +1 @@
+/* Defined in iofgetpos.c.  */
diff --git a/sysdeps/wordsize-64/iofopen.c b/sysdeps/wordsize-64/iofopen.c
new file mode 100644
index 0000000000..d8d92ca5ec
--- /dev/null
+++ b/sysdeps/wordsize-64/iofopen.c
@@ -0,0 +1,4 @@
+#include "../../libio/iofopen.c"
+
+weak_alias (_IO_new_fopen, _IO_fopen64)
+weak_alias (_IO_new_fopen, fopen64)
diff --git a/sysdeps/wordsize-64/iofopen64.c b/sysdeps/wordsize-64/iofopen64.c
new file mode 100644
index 0000000000..68315d857d
--- /dev/null
+++ b/sysdeps/wordsize-64/iofopen64.c
@@ -0,0 +1 @@
+/* Defined in iofopen.c.  */
diff --git a/sysdeps/wordsize-64/iofsetpos.c b/sysdeps/wordsize-64/iofsetpos.c
new file mode 100644
index 0000000000..f2bb8aec55
--- /dev/null
+++ b/sysdeps/wordsize-64/iofsetpos.c
@@ -0,0 +1,12 @@
+#define _IO_new_fsetpos64 __renamed__IO_new_fsetpos64
+#define _IO_fsetpos64 __renamed__IO_fsetpos64
+
+#include "../../libio/iofsetpos.c"
+
+#undef _IO_new_fsetpos64
+#undef _IO_fsetpos64
+
+strong_alias (_IO_new_fsetpos, _IO_new_fsetpos64)
+strong_alias (_IO_new_fsetpos64, __new_fsetpos64)
+versioned_symbol (libc, __new_fsetpos64, fsetpos64, GLIBC_2_2);
+versioned_symbol (libc, _IO_new_fsetpos64, _IO_fsetpos64, GLIBC_2_2);
diff --git a/sysdeps/wordsize-64/iofsetpos64.c b/sysdeps/wordsize-64/iofsetpos64.c
new file mode 100644
index 0000000000..5fbc7328b5
--- /dev/null
+++ b/sysdeps/wordsize-64/iofsetpos64.c
@@ -0,0 +1 @@
+/* Defined in iofsetpos.c.  */
diff --git a/sysdeps/wordsize-64/lockf.c b/sysdeps/wordsize-64/lockf.c
new file mode 100644
index 0000000000..502472d98b
--- /dev/null
+++ b/sysdeps/wordsize-64/lockf.c
@@ -0,0 +1,3 @@
+#include "../../io/lockf.c"
+
+weak_alias (lockf, lockf64)
diff --git a/sysdeps/wordsize-64/lockf64.c b/sysdeps/wordsize-64/lockf64.c
new file mode 100644
index 0000000000..8ef5fc6b46
--- /dev/null
+++ b/sysdeps/wordsize-64/lockf64.c
@@ -0,0 +1 @@
+/* Defined in lockf.c.  */
diff --git a/sysdeps/wordsize-64/mkostemp.c b/sysdeps/wordsize-64/mkostemp.c
new file mode 100644
index 0000000000..4f81fdf544
--- /dev/null
+++ b/sysdeps/wordsize-64/mkostemp.c
@@ -0,0 +1,3 @@
+#include "../../misc/mkostemp.c"
+
+weak_alias (mkostemp, mkostemp64)
diff --git a/sysdeps/wordsize-64/mkostemp64.c b/sysdeps/wordsize-64/mkostemp64.c
new file mode 100644
index 0000000000..14bb25023e
--- /dev/null
+++ b/sysdeps/wordsize-64/mkostemp64.c
@@ -0,0 +1 @@
+/* Defined in mkostemp.c.  */
diff --git a/sysdeps/wordsize-64/mkstemp.c b/sysdeps/wordsize-64/mkstemp.c
new file mode 100644
index 0000000000..bf6df18485
--- /dev/null
+++ b/sysdeps/wordsize-64/mkstemp.c
@@ -0,0 +1,3 @@
+#include "../../misc/mkstemp.c"
+
+weak_alias (mkstemp, mkstemp64)
diff --git a/sysdeps/wordsize-64/mkstemp64.c b/sysdeps/wordsize-64/mkstemp64.c
new file mode 100644
index 0000000000..e72bb46433
--- /dev/null
+++ b/sysdeps/wordsize-64/mkstemp64.c
@@ -0,0 +1 @@
+/* Defined in mkstemp.c.  */
diff --git a/sysdeps/wordsize-64/scandir.c b/sysdeps/wordsize-64/scandir.c
new file mode 100644
index 0000000000..9af7e9b386
--- /dev/null
+++ b/sysdeps/wordsize-64/scandir.c
@@ -0,0 +1,6 @@
+#define scandir64 scandir64_renamed
+
+#include "../../dirent/scandir.c"
+
+#undef scandir64
+weak_alias (scandir, scandir64)
diff --git a/sysdeps/wordsize-64/scandir64.c b/sysdeps/wordsize-64/scandir64.c
new file mode 100644
index 0000000000..3c2c4a1590
--- /dev/null
+++ b/sysdeps/wordsize-64/scandir64.c
@@ -0,0 +1 @@
+/* Defined in scandir.c.  */
diff --git a/sysdeps/wordsize-64/tmpfile.c b/sysdeps/wordsize-64/tmpfile.c
new file mode 100644
index 0000000000..449a222d98
--- /dev/null
+++ b/sysdeps/wordsize-64/tmpfile.c
@@ -0,0 +1,3 @@
+#include "../../stdio-common/tmpfile.c"
+
+weak_alias (__new_tmpfile, tmpfile64)
diff --git a/sysdeps/wordsize-64/tmpfile64.c b/sysdeps/wordsize-64/tmpfile64.c
new file mode 100644
index 0000000000..5c124c249b
--- /dev/null
+++ b/sysdeps/wordsize-64/tmpfile64.c
@@ -0,0 +1 @@
+/* Defined in tmpfile.c.  */
diff --git a/sysdeps/wordsize-64/versionsort.c b/sysdeps/wordsize-64/versionsort.c
new file mode 100644
index 0000000000..90365a4b25
--- /dev/null
+++ b/sysdeps/wordsize-64/versionsort.c
@@ -0,0 +1,3 @@
+#include "../../dirent/versionsort.c"
+
+weak_alias (versionsort, versionsort64)
diff --git a/sysdeps/wordsize-64/versionsort64.c b/sysdeps/wordsize-64/versionsort64.c
new file mode 100644
index 0000000000..ac6c3c702a
--- /dev/null
+++ b/sysdeps/wordsize-64/versionsort64.c
@@ -0,0 +1 @@
+/* Defined in versionsort.c.  */