aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/mips
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-07-02 15:12:20 +0200
committerFlorian Weimer <fweimer@redhat.com>2019-07-02 16:51:13 +0200
commit41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0 (patch)
treeece03ae53e8fd589f2c493cb753c132545a49196 /sysdeps/unix/sysv/linux/mips
parent27cec9aed97447dff887a88f4241604fffd8c525 (diff)
downloadglibc-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/mips')
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/pt-vfork.S1
3 files changed, 0 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 02144967c6..f60b22efb5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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
@@ -140,7 +139,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
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 02144967c6..f60b22efb5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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
@@ -140,7 +139,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
diff --git a/sysdeps/unix/sysv/linux/mips/pt-vfork.S b/sysdeps/unix/sysv/linux/mips/pt-vfork.S
deleted file mode 100644
index 65cc3823ac..0000000000
--- a/sysdeps/unix/sysv/linux/mips/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>