mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188]
With commit f0b2132b35
("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.
This commit is contained in:
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
|
@ -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
|
||||
|
@ -46,7 +46,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
|
||||
@ -192,7 +191,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
|
||||
|
Reference in New Issue
Block a user