glibc/glibc-rh1326903.patch
Florian Weimer 3585735339 Resolves: #1326903
Experimental fix for NULL fork/vfork symbols in libpthread
2016-05-09 14:23:15 +02:00

1342 lines
42 KiB
Diff

This is an experimental patch which removes the fork and vfork symbols
from libpthread. Thanks to the DT_NEEDED entry in libpthread.so,
their definitions will come from libc.so instead.
commit 4fa031b3d936a7e0b1dad50957a3010f41320f68
Author: Florian Weimer <fweimer@redhat.com>
Date: Mon May 9 13:59:35 2016 +0200
nptl: Remove fork, vfork wrappers [BZ #19861]
Index: b/nptl/Makefile
===================================================================
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -109,7 +109,6 @@ libpthread-routines = nptl-init vars eve
cancellation \
lowlevellock lowlevelrobustlock \
lll_timedlock_wait lll_timedwait_tid \
- pt-fork pt-vfork \
ptw-write ptw-read ptw-close ptw-fcntl ptw-accept \
ptw-connect ptw-recv ptw-recvfrom ptw-recvmsg ptw-send \
ptw-sendmsg ptw-sendto ptw-fsync ptw-lseek ptw-llseek \
Index: b/nptl/pt-fork.c
===================================================================
--- a/nptl/pt-fork.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ABI compatibility for 'fork' symbol in libpthread ABI.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* libpthread once had its own fork, though there was no apparent reason
- for it. There is no use in having a separate symbol in libpthread, but
- the historical ABI requires it. For static linking, there is no need to
- provide anything here--the libc version will be linked in. For shared
- library ABI compatibility, there must be __fork and fork symbols in
- libpthread.so; so we define them using IFUNC to redirect to the libc
- function. */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-# if HAVE_IFUNC
-
-static __typeof (fork) *
-__attribute__ ((used))
-fork_resolve (void)
-{
- return &__libc_fork;
-}
-
-# ifdef HAVE_ASM_SET_DIRECTIVE
-# define DEFINE_FORK(name) \
- asm (".set " #name ", fork_resolve\n" \
- ".globl " #name "\n" \
- ".type " #name ", %gnu_indirect_function");
-# else
-# define DEFINE_FORK(name) \
- asm (#name " = fork_resolve\n" \
- ".globl " #name "\n" \
- ".type " #name ", %gnu_indirect_function");
-# endif
-
-# else /* !HAVE_IFUNC */
-
-static pid_t __attribute__ ((used))
-fork_compat (void)
-{
- return __libc_fork ();
-}
-
-# define DEFINE_FORK(name) strong_alias (fork_compat, name)
-
-# endif /* HAVE_IFUNC */
-
-DEFINE_FORK (fork_ifunc)
-compat_symbol (libpthread, fork_ifunc, fork, GLIBC_2_0);
-
-DEFINE_FORK (__fork_ifunc)
-compat_symbol (libpthread, __fork_ifunc, __fork, GLIBC_2_0);
-
-#endif
Index: b/nptl/pt-vfork.c
===================================================================
--- a/nptl/pt-vfork.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2016 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so; so we define them using IFUNC to
- redirect to the libc function. */
-
-/* Note! If the architecture doesn't support IFUNC, then we need an
- alternate target-specific mechanism to implement this. So we just
- assume IFUNC here and require that the target override this file
- if necessary.
-
- If the architecture can assume all supported versions of gcc will
- produce a tail-call to __libc_vfork, consider including the version
- in sysdeps/unix/sysv/linux/aarch64/pt-vfork.c. */
-
-#if !HAVE_IFUNC
-# error "must write pt-vfork for this machine or get IFUNC support"
-#endif
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-extern __typeof (vfork) __libc_vfork; /* Defined in libc. */
-
-static __typeof (vfork) *
-__attribute__ ((used))
-vfork_resolve (void)
-{
- return &__libc_vfork;
-}
-
-# ifdef HAVE_ASM_SET_DIRECTIVE
-# define DEFINE_VFORK(name) \
- asm (".set " #name ", vfork_resolve\n" \
- ".globl " #name "\n" \
- ".type " #name ", %gnu_indirect_function");
-# else
-# define DEFINE_VFORK(name) \
- asm (#name " = vfork_resolve\n" \
- ".globl " #name "\n" \
- ".type " #name ", %gnu_indirect_function");
-# endif
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-DEFINE_VFORK (vfork_ifunc)
-compat_symbol (libpthread, vfork_ifunc, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-DEFINE_VFORK (__vfork_ifunc)
-compat_symbol (libpthread, __vfork_ifunc, __vfork, GLIBC_2_1_2);
-#endif
Index: b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.17 __close F
GLIBC_2.17 __connect F
GLIBC_2.17 __errno_location F
GLIBC_2.17 __fcntl F
-GLIBC_2.17 __fork F
GLIBC_2.17 __h_errno_location F
GLIBC_2.17 __libc_allocate_rtsig F
GLIBC_2.17 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.17 __read F
GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
-GLIBC_2.17 __vfork F
GLIBC_2.17 __wait F
GLIBC_2.17 __write F
GLIBC_2.17 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.17 close F
GLIBC_2.17 connect F
GLIBC_2.17 fcntl F
GLIBC_2.17 flockfile F
-GLIBC_2.17 fork F
GLIBC_2.17 fsync F
GLIBC_2.17 ftrylockfile F
GLIBC_2.17 funlockfile F
@@ -217,7 +214,6 @@ GLIBC_2.17 siglongjmp F
GLIBC_2.17 sigwait F
GLIBC_2.17 system F
GLIBC_2.17 tcdrain F
-GLIBC_2.17 vfork F
GLIBC_2.17 wait F
GLIBC_2.17 waitpid F
GLIBC_2.17 write F
Index: b/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
===================================================================
--- a/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2016 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if HAVE_IFUNC
-# include <nptl/pt-vfork.c>
-#elif (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-/* Thankfully, on AArch64 we can rely on the compiler generating
- a tail call here. */
-
-extern void __libc_vfork (void);
-
-void
-vfork_compat (void)
-{
- __libc_vfork ();
-}
-
-# if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
-# endif
-
-# if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (vfork_compat, vfork_compat2)
-compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2);
-# endif
-
-#endif
Index: b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2016 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-#include <vfork.S>
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-compat_symbol (libpthread, __libc_vfork, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (__libc_vfork, __vfork_compat)
-compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
-#endif
Index: b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.4 __close F
GLIBC_2.4 __connect F
GLIBC_2.4 __errno_location F
GLIBC_2.4 __fcntl F
-GLIBC_2.4 __fork F
GLIBC_2.4 __h_errno_location F
GLIBC_2.4 __libc_allocate_rtsig F
GLIBC_2.4 __libc_current_sigrtmax F
@@ -57,7 +56,6 @@ GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
-GLIBC_2.4 __vfork F
GLIBC_2.4 __wait F
GLIBC_2.4 __write F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -69,7 +67,6 @@ GLIBC_2.4 close F
GLIBC_2.4 connect F
GLIBC_2.4 fcntl F
GLIBC_2.4 flockfile F
-GLIBC_2.4 fork F
GLIBC_2.4 fsync F
GLIBC_2.4 ftrylockfile F
GLIBC_2.4 funlockfile F
@@ -222,7 +219,6 @@ GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
-GLIBC_2.4 vfork F
GLIBC_2.4 wait F
GLIBC_2.4 waitpid F
GLIBC_2.4 write F
Index: b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
@@ -50,7 +49,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -62,7 +60,6 @@ GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
@@ -196,7 +193,6 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
Index: b/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2005-2016 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <tcb-offsets.h>
-
-/* Clone the calling process, but without copying the whole address space.
- The calling process is suspended until the new process exits or is
- replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
-
-/* Load the thread register.
- Load the saved PID value.
- Negate the value.
- Store the temporary PID. */
-#define SAVE_PID \
- mfctl %cr27, %r26 ASM_LINE_SEP \
- ldw PID_THREAD_OFFSET(%r26),%r1 ASM_LINE_SEP \
- sub %r0,%r1,%r1 ASM_LINE_SEP \
- stw %r1,PID_THREAD_OFFSET(%r26) ASM_LINE_SEP
-/* If we are the parent...
- Get the thread pointer.
- Load the saved PID.
- Negate the value (got back original)
- Restore the PID. */
-#define RESTORE_PID \
- cmpb,=,n %r0,%ret0,.Lthread_start ASM_LINE_SEP \
- mfctl %cr27, %r26 ASM_LINE_SEP \
- ldw PID_THREAD_OFFSET(%r26),%r1 ASM_LINE_SEP \
- sub %r0,%r1,%r1 ASM_LINE_SEP \
- stw %r1,PID_THREAD_OFFSET(%r26) ASM_LINE_SEP \
-.Lthread_start: ASM_LINE_SEP
-
- /* r26, r25, r24, r23 are free since vfork has no arguments */
-ENTRY(__vfork)
- /* We must not create a frame. When the child unwinds to call
- exec it will clobber the same frame that the parent
- needs to unwind. */
-
- /* Save the PIC register. */
-#ifdef PIC
- copy %r19, %r25 /* parent */
-#endif
-
- /* Save the process PID */
- SAVE_PID
-
- /* Syscall saves and restores all register states */
- ble 0x100(%sr2,%r0)
- ldi __NR_vfork,%r20
-
- /* Conditionally restore the PID */
- RESTORE_PID
-
- /* Check for error */
- ldi -4096,%r1
- comclr,>>= %r1,%ret0,%r0 /* Note: unsigned compare. */
- b,n .Lerror
-
- /* Return, and DO NOT restore rp. The child may have called
- functions that updated the frame's rp. This works because
- the kernel ensures rp is preserved across the vfork
- syscall. */
- bv,n %r0(%rp)
-
-.Lerror:
- /* Now we need a stack to call a function. We are assured
- that there is no child now, so it's safe to create
- a frame. */
- stw %rp, -20(%sp)
- stwm %r3, 64(%sp)
- stw %sp, -4(%sp)
-
- sub %r0,%ret0,%r3
- SYSCALL_ERROR_HANDLER
- /* Restore the PIC register (in delay slot) on error */
-#ifdef PIC
- copy %r25, %r19 /* parent */
-#else
- nop
-#endif
- /* Write syscall return into errno location */
- stw %r3, 0(%ret0)
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r3
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
Index: b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
@@ -50,7 +49,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -62,7 +60,6 @@ GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
@@ -196,7 +193,6 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
Index: b/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread. IA64 version.
- Copyright (C) 2014-2016 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-LOCAL_LEAF (vfork_compat)
- br __libc_vfork
- ;;
-END (vfork_compat)
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-weak_alias (vfork_compat, vfork)
-compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (vfork_compat, __vfork_compat)
-compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
-#endif
Index: b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.4 __close F
GLIBC_2.4 __connect F
GLIBC_2.4 __errno_location F
GLIBC_2.4 __fcntl F
-GLIBC_2.4 __fork F
GLIBC_2.4 __h_errno_location F
GLIBC_2.4 __libc_allocate_rtsig F
GLIBC_2.4 __libc_current_sigrtmax F
@@ -57,7 +56,6 @@ GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
-GLIBC_2.4 __vfork F
GLIBC_2.4 __wait F
GLIBC_2.4 __write F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -69,7 +67,6 @@ GLIBC_2.4 close F
GLIBC_2.4 connect F
GLIBC_2.4 fcntl F
GLIBC_2.4 flockfile F
-GLIBC_2.4 fork F
GLIBC_2.4 fsync F
GLIBC_2.4 ftrylockfile F
GLIBC_2.4 funlockfile F
@@ -222,7 +219,6 @@ GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
-GLIBC_2.4 vfork F
GLIBC_2.4 wait F
GLIBC_2.4 waitpid F
GLIBC_2.4 write F
Index: b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
===================================================================
--- a/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
Index: b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.18 __close F
GLIBC_2.18 __connect F
GLIBC_2.18 __errno_location F
GLIBC_2.18 __fcntl F
-GLIBC_2.18 __fork F
GLIBC_2.18 __h_errno_location F
GLIBC_2.18 __libc_allocate_rtsig F
GLIBC_2.18 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.18 __read F
GLIBC_2.18 __res_state F
GLIBC_2.18 __send F
GLIBC_2.18 __sigaction F
-GLIBC_2.18 __vfork F
GLIBC_2.18 __wait F
GLIBC_2.18 __write F
GLIBC_2.18 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.18 close F
GLIBC_2.18 connect F
GLIBC_2.18 fcntl F
GLIBC_2.18 flockfile F
-GLIBC_2.18 fork F
GLIBC_2.18 fsync F
GLIBC_2.18 ftrylockfile F
GLIBC_2.18 funlockfile F
@@ -219,7 +216,6 @@ GLIBC_2.18 siglongjmp F
GLIBC_2.18 sigwait F
GLIBC_2.18 system F
GLIBC_2.18 tcdrain F
-GLIBC_2.18 vfork F
GLIBC_2.18 wait F
GLIBC_2.18 waitpid F
GLIBC_2.18 write F
Index: b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
Index: b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -145,7 +142,6 @@ 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 __vfork F
GLIBC_2.2 lseek64 F
GLIBC_2.2 open64 F
GLIBC_2.2 pread F
Index: b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -145,7 +142,6 @@ 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 __vfork F
GLIBC_2.2 lseek64 F
GLIBC_2.2 open64 F
GLIBC_2.2 pread F
Index: b/sysdeps/unix/sysv/linux/mips/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/mips/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
Index: b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.21 __close F
GLIBC_2.21 __connect F
GLIBC_2.21 __errno_location F
GLIBC_2.21 __fcntl F
-GLIBC_2.21 __fork F
GLIBC_2.21 __h_errno_location F
GLIBC_2.21 __libc_allocate_rtsig F
GLIBC_2.21 __libc_current_sigrtmax F
@@ -57,7 +56,6 @@ GLIBC_2.21 close F
GLIBC_2.21 connect F
GLIBC_2.21 fcntl F
GLIBC_2.21 flockfile F
-GLIBC_2.21 fork F
GLIBC_2.21 fsync F
GLIBC_2.21 ftrylockfile F
GLIBC_2.21 funlockfile F
Index: b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.3 __close F
GLIBC_2.3 __connect F
GLIBC_2.3 __errno_location F
GLIBC_2.3 __fcntl F
-GLIBC_2.3 __fork F
GLIBC_2.3 __h_errno_location F
GLIBC_2.3 __libc_allocate_rtsig F
GLIBC_2.3 __libc_current_sigrtmax F
@@ -51,7 +50,6 @@ GLIBC_2.3 __read F
GLIBC_2.3 __res_state F
GLIBC_2.3 __send F
GLIBC_2.3 __sigaction F
-GLIBC_2.3 __vfork F
GLIBC_2.3 __wait F
GLIBC_2.3 __write F
GLIBC_2.3 _pthread_cleanup_pop F
@@ -63,7 +61,6 @@ GLIBC_2.3 close F
GLIBC_2.3 connect F
GLIBC_2.3 fcntl F
GLIBC_2.3 flockfile F
-GLIBC_2.3 fork F
GLIBC_2.3 fsync F
GLIBC_2.3 ftrylockfile F
GLIBC_2.3 funlockfile F
@@ -197,7 +194,6 @@ GLIBC_2.3 siglongjmp F
GLIBC_2.3 sigwait F
GLIBC_2.3 system F
GLIBC_2.3 tcdrain F
-GLIBC_2.3 vfork F
GLIBC_2.3 wait F
GLIBC_2.3 waitpid F
GLIBC_2.3 write F
Index: b/sysdeps/unix/sysv/linux/s390/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/s390/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
Index: b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -20,7 +20,6 @@ GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
@@ -53,7 +52,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -65,7 +63,6 @@ GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
@@ -199,7 +196,6 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
Index: b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
@@ -50,7 +49,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -62,7 +60,6 @@ GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
@@ -196,7 +193,6 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
Index: b/sysdeps/unix/sysv/linux/sh/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/sh/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
Index: b/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
===================================================================
--- a/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
Index: b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.0 __close F
GLIBC_2.0 __connect F
GLIBC_2.0 __errno_location F
GLIBC_2.0 __fcntl F
-GLIBC_2.0 __fork F
GLIBC_2.0 __h_errno_location F
GLIBC_2.0 __lseek F
GLIBC_2.0 __open F
@@ -36,7 +35,6 @@ GLIBC_2.0 close F
GLIBC_2.0 connect F
GLIBC_2.0 fcntl F
GLIBC_2.0 flockfile F
-GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
@@ -115,7 +113,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -159,7 +156,6 @@ GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 GLIBC_2.1.2 A
-GLIBC_2.1.2 __vfork F
GLIBC_2.11 GLIBC_2.11 A
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 GLIBC_2.12 A
Index: b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
@@ -50,7 +49,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -62,7 +60,6 @@ GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
@@ -196,7 +193,6 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
Index: b/sysdeps/unix/sysv/linux/tile/pt-vfork.c
===================================================================
--- a/sysdeps/unix/sysv/linux/tile/pt-vfork.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
Index: b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.12 __close F
GLIBC_2.12 __connect F
GLIBC_2.12 __errno_location F
GLIBC_2.12 __fcntl F
-GLIBC_2.12 __fork F
GLIBC_2.12 __h_errno_location F
GLIBC_2.12 __libc_allocate_rtsig F
GLIBC_2.12 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.12 __read F
GLIBC_2.12 __res_state F
GLIBC_2.12 __send F
GLIBC_2.12 __sigaction F
-GLIBC_2.12 __vfork F
GLIBC_2.12 __wait F
GLIBC_2.12 __write F
GLIBC_2.12 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.12 close F
GLIBC_2.12 connect F
GLIBC_2.12 fcntl F
GLIBC_2.12 flockfile F
-GLIBC_2.12 fork F
GLIBC_2.12 fsync F
GLIBC_2.12 ftrylockfile F
GLIBC_2.12 funlockfile F
@@ -217,7 +214,6 @@ GLIBC_2.12 siglongjmp F
GLIBC_2.12 sigwait F
GLIBC_2.12 system F
GLIBC_2.12 tcdrain F
-GLIBC_2.12 vfork F
GLIBC_2.12 wait F
GLIBC_2.12 waitpid F
GLIBC_2.12 write F
Index: b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.12 __close F
GLIBC_2.12 __connect F
GLIBC_2.12 __errno_location F
GLIBC_2.12 __fcntl F
-GLIBC_2.12 __fork F
GLIBC_2.12 __h_errno_location F
GLIBC_2.12 __libc_allocate_rtsig F
GLIBC_2.12 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.12 __read F
GLIBC_2.12 __res_state F
GLIBC_2.12 __send F
GLIBC_2.12 __sigaction F
-GLIBC_2.12 __vfork F
GLIBC_2.12 __wait F
GLIBC_2.12 __write F
GLIBC_2.12 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.12 close F
GLIBC_2.12 connect F
GLIBC_2.12 fcntl F
GLIBC_2.12 flockfile F
-GLIBC_2.12 fork F
GLIBC_2.12 fsync F
GLIBC_2.12 ftrylockfile F
GLIBC_2.12 funlockfile F
@@ -217,7 +214,6 @@ GLIBC_2.12 siglongjmp F
GLIBC_2.12 sigwait F
GLIBC_2.12 system F
GLIBC_2.12 tcdrain F
-GLIBC_2.12 vfork F
GLIBC_2.12 wait F
GLIBC_2.12 waitpid F
GLIBC_2.12 write F
Index: b/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.12 __close F
GLIBC_2.12 __connect F
GLIBC_2.12 __errno_location F
GLIBC_2.12 __fcntl F
-GLIBC_2.12 __fork F
GLIBC_2.12 __h_errno_location F
GLIBC_2.12 __libc_allocate_rtsig F
GLIBC_2.12 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.12 __read F
GLIBC_2.12 __res_state F
GLIBC_2.12 __send F
GLIBC_2.12 __sigaction F
-GLIBC_2.12 __vfork F
GLIBC_2.12 __wait F
GLIBC_2.12 __write F
GLIBC_2.12 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.12 close F
GLIBC_2.12 connect F
GLIBC_2.12 fcntl F
GLIBC_2.12 flockfile F
-GLIBC_2.12 fork F
GLIBC_2.12 fsync F
GLIBC_2.12 ftrylockfile F
GLIBC_2.12 funlockfile F
@@ -217,7 +214,6 @@ GLIBC_2.12 siglongjmp F
GLIBC_2.12 sigwait F
GLIBC_2.12 system F
GLIBC_2.12 tcdrain F
-GLIBC_2.12 vfork F
GLIBC_2.12 wait F
GLIBC_2.12 waitpid F
GLIBC_2.12 write F
Index: b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2.5 __close F
GLIBC_2.2.5 __connect F
GLIBC_2.2.5 __errno_location F
GLIBC_2.2.5 __fcntl F
-GLIBC_2.2.5 __fork F
GLIBC_2.2.5 __h_errno_location F
GLIBC_2.2.5 __libc_allocate_rtsig F
GLIBC_2.2.5 __libc_current_sigrtmax F
@@ -50,7 +49,6 @@ GLIBC_2.2.5 __read F
GLIBC_2.2.5 __res_state F
GLIBC_2.2.5 __send F
GLIBC_2.2.5 __sigaction F
-GLIBC_2.2.5 __vfork F
GLIBC_2.2.5 __wait F
GLIBC_2.2.5 __write F
GLIBC_2.2.5 _pthread_cleanup_pop F
@@ -62,7 +60,6 @@ GLIBC_2.2.5 close F
GLIBC_2.2.5 connect F
GLIBC_2.2.5 fcntl F
GLIBC_2.2.5 flockfile F
-GLIBC_2.2.5 fork F
GLIBC_2.2.5 fsync F
GLIBC_2.2.5 ftrylockfile F
GLIBC_2.2.5 funlockfile F
@@ -197,7 +194,6 @@ GLIBC_2.2.5 siglongjmp F
GLIBC_2.2.5 sigwait F
GLIBC_2.2.5 system F
GLIBC_2.2.5 tcdrain F
-GLIBC_2.2.5 vfork F
GLIBC_2.2.5 wait F
GLIBC_2.2.5 waitpid F
GLIBC_2.2.5 write F
Index: b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
===================================================================
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -6,7 +6,6 @@ GLIBC_2.16 __close F
GLIBC_2.16 __connect F
GLIBC_2.16 __errno_location F
GLIBC_2.16 __fcntl F
-GLIBC_2.16 __fork F
GLIBC_2.16 __h_errno_location F
GLIBC_2.16 __libc_allocate_rtsig F
GLIBC_2.16 __libc_current_sigrtmax F
@@ -46,7 +45,6 @@ GLIBC_2.16 __read F
GLIBC_2.16 __res_state F
GLIBC_2.16 __send F
GLIBC_2.16 __sigaction F
-GLIBC_2.16 __vfork F
GLIBC_2.16 __wait F
GLIBC_2.16 __write F
GLIBC_2.16 _pthread_cleanup_pop F
@@ -58,7 +56,6 @@ GLIBC_2.16 close F
GLIBC_2.16 connect F
GLIBC_2.16 fcntl F
GLIBC_2.16 flockfile F
-GLIBC_2.16 fork F
GLIBC_2.16 fsync F
GLIBC_2.16 ftrylockfile F
GLIBC_2.16 funlockfile F
@@ -217,7 +214,6 @@ GLIBC_2.16 siglongjmp F
GLIBC_2.16 sigwait F
GLIBC_2.16 system F
GLIBC_2.16 tcdrain F
-GLIBC_2.16 vfork F
GLIBC_2.16 wait F
GLIBC_2.16 waitpid F
GLIBC_2.16 write F