diff options
author | Florian Weimer <fweimer@redhat.com> | 2019-07-02 15:12:20 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2019-07-02 16:51:13 +0200 |
commit | 41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0 (patch) | |
tree | ece03ae53e8fd589f2c493cb753c132545a49196 /sysdeps/unix/sysv/linux/m68k | |
parent | 27cec9aed97447dff887a88f4241604fffd8c525 (diff) | |
download | glibc-41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0.tar glibc-41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0.tar.gz glibc-41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0.tar.bz2 glibc-41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0.zip |
nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188]
With commit f0b2132b35248c1f4a80f62a2c38cddcc802aa8c ("ld.so:
Support moving versioned symbols between sonames [BZ #24741]"), the
dynamic linker will find the definition of vfork in libc and binds
a vfork reference to that symbol, even if the soname in the version
reference says that the symbol should be located in libpthread.
As a result, the forwarder (whether it's IFUNC-based or a duplicate
of the libc implementation) is no longer necessary.
On older architectures, a placeholder symbol is required, to make sure
that the GLIBC_2.1.2 symbol version does not go away, or is turned in
to a weak symbol definition by the link editor. (The symbol version
needs to preserved so that the symbol coverage check in
elf/dl-version.c does not fail for old binaries.)
mips32 is an outlier: It defined __vfork@@GLIBC_2.2, but the
baseline is GLIBC_2.0. Since there are other @@GLIBC_2.2 symbols,
the placeholder symbol is not needed there.
Diffstat (limited to 'sysdeps/unix/sysv/linux/m68k')
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/pt-vfork.c | 1 |
3 files changed, 1 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist index af82a4c632..ee3d0290d0 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist @@ -74,7 +74,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 @@ -239,7 +238,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 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist index bece86d246..7199aae573 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist @@ -114,7 +114,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 @@ -155,7 +154,7 @@ GLIBC_2.1 sem_wait F 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 __vfork F +GLIBC_2.1.2 __libpthread_version_placeholder F GLIBC_2.11 pthread_sigqueue F GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F diff --git a/sysdeps/unix/sysv/linux/m68k/pt-vfork.c b/sysdeps/unix/sysv/linux/m68k/pt-vfork.c deleted file mode 100644 index 5fbc6526aa..0000000000 --- a/sysdeps/unix/sysv/linux/m68k/pt-vfork.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c> |