@@ -57,7 +57,7 @@ extern ssize_t __pwrite64 (int __fd, const void *__buf, size_t __n,
__off64_t __offset);
libc_hidden_proto (__pwrite64)
extern ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __n,
- __off64_t __offset) attribute_hidden;
+ __off64_t __offset);
extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
libc_hidden_proto (__libc_read)
libc_hidden_proto (read)
@@ -81,7 +81,6 @@ static-only-routines = pthread_atfork
# We need to provide certain routines for compatibility with existing
# binaries.
pthread-compat-wrappers = \
- pwrite pwrite64 \
tcdrain msgrcv msgsnd \
sigwait sigsuspend \
recvmsg sendmsg
@@ -284,8 +283,6 @@ CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-lockf.c += -fexceptions
-CFLAGS-pwrite.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pwrite64.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigwait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-msgrcv.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-msgsnd.c += -fexceptions -fasynchronous-unwind-tables
@@ -230,7 +230,6 @@ libpthread {
__pthread_rwlock_trywrlock;
__pthread_rwlock_unlock;
__pthread_rwlock_wrlock;
- __pwrite64;
__res_state;
pthread_attr_getstack;
pthread_attr_setstack;
@@ -254,8 +253,6 @@ libpthread {
pthread_spin_trylock;
pthread_spin_unlock;
pthread_yield;
- pwrite64;
- pwrite;
sem_timedwait;
}
@@ -127,7 +127,7 @@ sem_open (const char *name, int oflag, ...)
}
/* Open the file. Make sure we do not overwrite anything. */
- fd = __libc_open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
+ fd = open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
if (fd == -1)
{
if (errno == EEXIST)
@@ -32,7 +32,6 @@ GLIBC_2.17 __pthread_setspecific F
GLIBC_2.17 __pthread_unregister_cancel F
GLIBC_2.17 __pthread_unregister_cancel_restore F
GLIBC_2.17 __pthread_unwind_next F
-GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __res_state F
GLIBC_2.17 __sigaction F
GLIBC_2.17 _pthread_cleanup_pop F
@@ -140,8 +139,6 @@ GLIBC_2.17 pthread_testcancel F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.17 pthread_yield F
-GLIBC_2.17 pwrite F
-GLIBC_2.17 pwrite64 F
GLIBC_2.17 raise F
GLIBC_2.17 recvmsg F
GLIBC_2.17 sem_close F
@@ -1848,6 +1848,7 @@ GLIBC_2.2 __getmntent_r F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1941,6 +1942,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 rexec_af F
GLIBC_2.2 rresvport_af F
@@ -121,7 +121,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -145,8 +144,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
new file mode 100644
@@ -0,0 +1,32 @@
+/* Write to a file descriptor at a given offset. Linux/alpha version.
+ Copyright (C) 2021 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, see
+ <https://www.gnu.org/licenses/>. */
+
+#define PWRITE64_REQUIRE_PWRITE_COMPAT
+#include <sysdeps/unix/sysv/linux/pwrite64.c>
+
+# if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__libc_pwrite64, __compat_pwrite)
+compat_symbol (libc, __compat_pwrite, pwrite, GLIBC_2_1);
+
+strong_alias (__libc_pwrite64, __default_pwrite)
+versioned_symbol (libc, __default_pwrite, pwrite, GLIBC_2_2);
+
+/* It is a libc_hidden_def (__pwrite), but with a redirection due the symbol
+ versioning. */
+__hidden_ver1 (__compat_pwrite, __GI___pwrite, __compat_pwrite);
+#endif
@@ -31,7 +31,6 @@ GLIBC_2.32 __pthread_setspecific F
GLIBC_2.32 __pthread_unregister_cancel F
GLIBC_2.32 __pthread_unregister_cancel_restore F
GLIBC_2.32 __pthread_unwind_next F
-GLIBC_2.32 __pwrite64 F
GLIBC_2.32 __res_state F
GLIBC_2.32 __sigaction F
GLIBC_2.32 _pthread_cleanup_pop F
@@ -157,8 +156,6 @@ GLIBC_2.32 pthread_testcancel F
GLIBC_2.32 pthread_timedjoin_np F
GLIBC_2.32 pthread_tryjoin_np F
GLIBC_2.32 pthread_yield F
-GLIBC_2.32 pwrite F
-GLIBC_2.32 pwrite64 F
GLIBC_2.32 raise F
GLIBC_2.32 recvmsg F
GLIBC_2.32 sem_clockwait F
@@ -67,7 +67,6 @@ GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
GLIBC_2.4 __pthread_unwind_next F
-GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __res_state F
GLIBC_2.4 __sigaction F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -169,8 +168,6 @@ GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
-GLIBC_2.4 pwrite F
-GLIBC_2.4 pwrite64 F
GLIBC_2.4 raise F
GLIBC_2.4 recvmsg F
GLIBC_2.4 sem_close F
@@ -67,7 +67,6 @@ GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
GLIBC_2.4 __pthread_unwind_next F
-GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __res_state F
GLIBC_2.4 __sigaction F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -169,8 +168,6 @@ GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
-GLIBC_2.4 pwrite F
-GLIBC_2.4 pwrite64 F
GLIBC_2.4 raise F
GLIBC_2.4 recvmsg F
GLIBC_2.4 sem_close F
@@ -31,7 +31,6 @@ GLIBC_2.29 __pthread_setspecific F
GLIBC_2.29 __pthread_unregister_cancel F
GLIBC_2.29 __pthread_unregister_cancel_restore F
GLIBC_2.29 __pthread_unwind_next F
-GLIBC_2.29 __pwrite64 F
GLIBC_2.29 __res_state F
GLIBC_2.29 __sigaction F
GLIBC_2.29 _pthread_cleanup_pop F
@@ -152,8 +151,6 @@ GLIBC_2.29 pthread_testcancel F
GLIBC_2.29 pthread_timedjoin_np F
GLIBC_2.29 pthread_tryjoin_np F
GLIBC_2.29 pthread_yield F
-GLIBC_2.29 pwrite F
-GLIBC_2.29 pwrite64 F
GLIBC_2.29 raise F
GLIBC_2.29 recvmsg F
GLIBC_2.29 sem_close F
@@ -34,7 +34,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -1852,6 +1852,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1950,6 +1951,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -121,7 +121,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -145,8 +144,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
@@ -34,7 +34,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -67,7 +67,6 @@ GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
GLIBC_2.4 __pthread_unwind_next F
-GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __res_state F
GLIBC_2.4 __sigaction F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -169,8 +168,6 @@ GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
-GLIBC_2.4 pwrite F
-GLIBC_2.4 pwrite64 F
GLIBC_2.4 raise F
GLIBC_2.4 recvmsg F
GLIBC_2.4 sem_close F
@@ -1808,6 +1808,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1906,6 +1907,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -121,7 +121,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -145,8 +144,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
@@ -32,7 +32,6 @@ GLIBC_2.18 __pthread_setspecific F
GLIBC_2.18 __pthread_unregister_cancel F
GLIBC_2.18 __pthread_unregister_cancel_restore F
GLIBC_2.18 __pthread_unwind_next F
-GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __res_state F
GLIBC_2.18 __sigaction F
GLIBC_2.18 _pthread_cleanup_pop F
@@ -142,8 +141,6 @@ GLIBC_2.18 pthread_testcancel F
GLIBC_2.18 pthread_timedjoin_np F
GLIBC_2.18 pthread_tryjoin_np F
GLIBC_2.18 pthread_yield F
-GLIBC_2.18 pwrite F
-GLIBC_2.18 pwrite64 F
GLIBC_2.18 raise F
GLIBC_2.18 recvmsg F
GLIBC_2.18 sem_close F
@@ -32,7 +32,6 @@ GLIBC_2.18 __pthread_setspecific F
GLIBC_2.18 __pthread_unregister_cancel F
GLIBC_2.18 __pthread_unregister_cancel_restore F
GLIBC_2.18 __pthread_unwind_next F
-GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __res_state F
GLIBC_2.18 __sigaction F
GLIBC_2.18 _pthread_cleanup_pop F
@@ -142,8 +141,6 @@ GLIBC_2.18 pthread_testcancel F
GLIBC_2.18 pthread_timedjoin_np F
GLIBC_2.18 pthread_tryjoin_np F
GLIBC_2.18 pthread_yield F
-GLIBC_2.18 pwrite F
-GLIBC_2.18 pwrite64 F
GLIBC_2.18 raise F
GLIBC_2.18 recvmsg F
GLIBC_2.18 sem_close F
@@ -87,7 +87,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
@@ -135,8 +134,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
@@ -87,7 +87,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
@@ -135,8 +134,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
@@ -32,7 +32,6 @@ GLIBC_2.21 __pthread_setspecific F
GLIBC_2.21 __pthread_unregister_cancel F
GLIBC_2.21 __pthread_unregister_cancel_restore F
GLIBC_2.21 __pthread_unwind_next F
-GLIBC_2.21 __pwrite64 F
GLIBC_2.21 __res_state F
GLIBC_2.21 __sigaction F
GLIBC_2.21 _pthread_cleanup_pop F
@@ -142,8 +141,6 @@ GLIBC_2.21 pthread_testcancel F
GLIBC_2.21 pthread_timedjoin_np F
GLIBC_2.21 pthread_tryjoin_np F
GLIBC_2.21 pthread_yield F
-GLIBC_2.21 pwrite F
-GLIBC_2.21 pwrite64 F
GLIBC_2.21 raise F
GLIBC_2.21 recvmsg F
GLIBC_2.21 sem_close F
@@ -1814,6 +1814,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1911,6 +1912,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -121,7 +121,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -145,8 +144,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
@@ -1818,6 +1818,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1915,6 +1916,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -55,7 +55,6 @@ GLIBC_2.3 __pthread_rwlock_trywrlock F
GLIBC_2.3 __pthread_rwlock_unlock F
GLIBC_2.3 __pthread_rwlock_wrlock F
GLIBC_2.3 __pthread_setspecific F
-GLIBC_2.3 __pwrite64 F
GLIBC_2.3 __res_state F
GLIBC_2.3 __sigaction F
GLIBC_2.3 _pthread_cleanup_pop F
@@ -140,8 +139,6 @@ GLIBC_2.3 pthread_spin_trylock F
GLIBC_2.3 pthread_spin_unlock F
GLIBC_2.3 pthread_testcancel F
GLIBC_2.3 pthread_yield F
-GLIBC_2.3 pwrite F
-GLIBC_2.3 pwrite64 F
GLIBC_2.3 raise F
GLIBC_2.3 recvmsg F
GLIBC_2.3 sem_close F
@@ -32,7 +32,6 @@ GLIBC_2.17 __pthread_setspecific F
GLIBC_2.17 __pthread_unregister_cancel F
GLIBC_2.17 __pthread_unregister_cancel_restore F
GLIBC_2.17 __pthread_unwind_next F
-GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __res_state F
GLIBC_2.17 __sigaction F
GLIBC_2.17 _pthread_cleanup_pop F
@@ -140,8 +139,6 @@ GLIBC_2.17 pthread_testcancel F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.17 pthread_yield F
-GLIBC_2.17 pwrite F
-GLIBC_2.17 pwrite64 F
GLIBC_2.17 raise F
GLIBC_2.17 recvmsg F
GLIBC_2.17 sem_close F
@@ -18,6 +18,7 @@
#include <unistd.h>
#include <sysdep-cancel.h>
+#include <shlib-compat.h>
#ifndef __OFF_T_MATCHES_OFF64_T
@@ -27,7 +28,19 @@ __libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
return SYSCALL_CANCEL (pwrite64, fd, buf, count, SYSCALL_LL_PRW (offset));
}
+# if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__libc_pwrite, __compat_pwrite)
+compat_symbol (libc, __compat_pwrite, pwrite, GLIBC_2_1);
+
+strong_alias (__libc_pwrite, __default_pwrite)
+versioned_symbol (libc, __default_pwrite, pwrite, GLIBC_2_2);
+
+/* It is a libc_hidden_def (__pwrite64), but with a redirection due the symbol
+ versioning. */
+__hidden_ver1 (__libc_pwrite, __GI___pwrite, __libc_pwrite);
+# else
strong_alias (__libc_pwrite, __pwrite)
libc_hidden_weak (__pwrite)
weak_alias (__libc_pwrite, pwrite)
+# endif
#endif
@@ -18,6 +18,7 @@
#include <unistd.h>
#include <sysdep-cancel.h>
+#include <shlib-compat.h>
ssize_t
__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
@@ -25,12 +26,32 @@ __libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
return SYSCALL_CANCEL (pwrite64, fd, buf, count, SYSCALL_LL64_PRW (offset));
}
-weak_alias (__libc_pwrite64, __pwrite64)
-libc_hidden_weak (__pwrite64)
-weak_alias (__libc_pwrite64, pwrite64)
-
#ifdef __OFF_T_MATCHES_OFF64_T
strong_alias (__libc_pwrite64, __libc_pwrite)
+/* Similar to non-LFS symbol, alpha requires compat symbols for pwrite. */
+# ifndef PWRITE64_REQUIRE_PWRITE_COMPAT
weak_alias (__libc_pwrite64, __pwrite)
weak_alias (__libc_pwrite64, pwrite)
+# endif
+#endif
+
+/* libpthread compat symbols. */
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__libc_pwrite64, __compat_pwrite64)
+compat_symbol (libc, __compat_pwrite64, pwrite64, GLIBC_2_1);
+strong_alias (__libc_pwrite64, __compat___pwrite64)
+compat_symbol (libc, __compat___pwrite64, __pwrite64, GLIBC_2_1);
+
+strong_alias (__libc_pwrite64, __default___pwrite64)
+versioned_symbol (libc, __default___pwrite64, __pwrite64, GLIBC_2_2);
+strong_alias (__libc_pwrite64, __default_pwrite64)
+versioned_symbol (libc, __default_pwrite64, pwrite64, GLIBC_2_2);
+
+/* It is a libc_hidden_def (__pwrite64), but with a redirection due the symbol
+ versioning. */
+__hidden_ver1 (__libc_pwrite64, __GI___pwrite64, __libc_pwrite64);
+#else
+weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
+weak_alias (__libc_pwrite64, pwrite64)
#endif
@@ -31,7 +31,6 @@ GLIBC_2.33 __pthread_setspecific F
GLIBC_2.33 __pthread_unregister_cancel F
GLIBC_2.33 __pthread_unregister_cancel_restore F
GLIBC_2.33 __pthread_unwind_next F
-GLIBC_2.33 __pwrite64 F
GLIBC_2.33 __res_state F
GLIBC_2.33 __sigaction F
GLIBC_2.33 _pthread_cleanup_pop F
@@ -157,8 +156,6 @@ GLIBC_2.33 pthread_testcancel F
GLIBC_2.33 pthread_timedjoin_np F
GLIBC_2.33 pthread_tryjoin_np F
GLIBC_2.33 pthread_yield F
-GLIBC_2.33 pwrite F
-GLIBC_2.33 pwrite64 F
GLIBC_2.33 raise F
GLIBC_2.33 recvmsg F
GLIBC_2.33 sem_clockwait F
@@ -32,7 +32,6 @@ GLIBC_2.27 __pthread_setspecific F
GLIBC_2.27 __pthread_unregister_cancel F
GLIBC_2.27 __pthread_unregister_cancel_restore F
GLIBC_2.27 __pthread_unwind_next F
-GLIBC_2.27 __pwrite64 F
GLIBC_2.27 __res_state F
GLIBC_2.27 __sigaction F
GLIBC_2.27 _pthread_cleanup_pop F
@@ -141,8 +140,6 @@ GLIBC_2.27 pthread_testcancel F
GLIBC_2.27 pthread_timedjoin_np F
GLIBC_2.27 pthread_tryjoin_np F
GLIBC_2.27 pthread_yield F
-GLIBC_2.27 pwrite F
-GLIBC_2.27 pwrite64 F
GLIBC_2.27 raise F
GLIBC_2.27 recvmsg F
GLIBC_2.27 sem_close F
@@ -1812,6 +1812,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1909,6 +1910,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -123,7 +123,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -147,8 +146,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
@@ -36,7 +36,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -122,8 +121,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -34,7 +34,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -34,7 +34,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -1810,6 +1810,7 @@ GLIBC_2.2 __lxstat64 F
GLIBC_2.2 __nl_langinfo_l F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_init F
GLIBC_2.2 __res_nclose F
GLIBC_2.2 __res_ninit F
@@ -1905,6 +1906,8 @@ GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
GLIBC_2.2 rcmd_af F
GLIBC_2.2 readdir64 F
GLIBC_2.2 readdir64_r F
@@ -121,7 +121,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
@@ -145,8 +144,6 @@ GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
@@ -34,7 +34,6 @@ GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
GLIBC_2.2 __sigaction F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
@@ -34,7 +34,6 @@ GLIBC_2.2.5 __pthread_rwlock_trywrlock F
GLIBC_2.2.5 __pthread_rwlock_unlock F
GLIBC_2.2.5 __pthread_rwlock_wrlock F
GLIBC_2.2.5 __pthread_setspecific F
-GLIBC_2.2.5 __pwrite64 F
GLIBC_2.2.5 __res_state F
GLIBC_2.2.5 __sigaction F
GLIBC_2.2.5 _pthread_cleanup_pop F
@@ -120,8 +119,6 @@ GLIBC_2.2.5 pthread_spin_trylock F
GLIBC_2.2.5 pthread_spin_unlock F
GLIBC_2.2.5 pthread_testcancel F
GLIBC_2.2.5 pthread_yield F
-GLIBC_2.2.5 pwrite F
-GLIBC_2.2.5 pwrite64 F
GLIBC_2.2.5 raise F
GLIBC_2.2.5 recvmsg F
GLIBC_2.2.5 sem_close F
@@ -32,7 +32,6 @@ GLIBC_2.16 __pthread_setspecific F
GLIBC_2.16 __pthread_unregister_cancel F
GLIBC_2.16 __pthread_unregister_cancel_restore F
GLIBC_2.16 __pthread_unwind_next F
-GLIBC_2.16 __pwrite64 F
GLIBC_2.16 __res_state F
GLIBC_2.16 __sigaction F
GLIBC_2.16 _pthread_cleanup_pop F
@@ -140,8 +139,6 @@ GLIBC_2.16 pthread_testcancel F
GLIBC_2.16 pthread_timedjoin_np F
GLIBC_2.16 pthread_tryjoin_np F
GLIBC_2.16 pthread_yield F
-GLIBC_2.16 pwrite F
-GLIBC_2.16 pwrite64 F
GLIBC_2.16 raise F
GLIBC_2.16 recvmsg F
GLIBC_2.16 sem_close F