mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 03:33:33 +08:00
nptl: restore .interp section in libpthread.so
In commit 02657da2cf
, .interp section
was removed from libpthread.so. This led to an error:
$ /lib64/libpthread.so.0
Native POSIX Threads Library by Ulrich Drepper et al
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Forced unwind support included.
Segmentation fault
(gdb) bt
#0 0x00000000000055a6 in _exit@plt ()
Unfortunately, there is no way to add a regression test for the bug
because .interp specifies the path to dynamic linker of the target
system.
[BZ #18479]
* nptl/pt-interp.c: New file.
* nptl/Makefile (libpthread-routines, libpthread-shared-only-routines):
Add pt-interp.
[$(build-shared) = yes] ($(objpfx)pt-interp.os): Depend on
$(common-objpfx)runtime-linker.h.
This commit is contained in:
parent
ac63a0783c
commit
78ad175b30
@ -1,3 +1,12 @@
|
||||
2015-06-10 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
|
||||
|
||||
[BZ #18479]
|
||||
* nptl/pt-interp.c: New file.
|
||||
* nptl/Makefile (libpthread-routines, libpthread-shared-only-routines):
|
||||
Add pt-interp.
|
||||
[[$(build-shared) = yes] ($(objpfx)pt-interp.os): Depend on
|
||||
$(common-objpfx)runtime-linker.h.
|
||||
|
||||
2015-06-10 Dmitry V. Levin <ldv@altlinux.org>
|
||||
|
||||
* Makeconfig (+interp): Remove unused variable.
|
||||
|
2
NEWS
2
NEWS
@ -20,7 +20,7 @@ Version 2.22
|
||||
18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210,
|
||||
18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319, 18324,
|
||||
18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444,
|
||||
18468, 18469, 18470, 18483, 18495, 18496, 18497, 18498, 18507.
|
||||
18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, 18507.
|
||||
|
||||
* Cache information can be queried via sysconf() function on s390 e.g. with
|
||||
_SC_LEVEL1_ICACHE_SIZE as argument.
|
||||
|
@ -33,7 +33,7 @@ routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
|
||||
register-atfork unregister-atfork
|
||||
shared-only-routines = forward
|
||||
|
||||
libpthread-routines = nptl-init vars events version \
|
||||
libpthread-routines = nptl-init vars events version pt-interp \
|
||||
pthread_create pthread_exit pthread_detach \
|
||||
pthread_join pthread_tryjoin pthread_timedjoin \
|
||||
pthread_self pthread_equal pthread_yield \
|
||||
@ -138,7 +138,8 @@ libpthread-routines = nptl-init vars events version \
|
||||
# pthread_setgid pthread_setegid pthread_setregid \
|
||||
# pthread_setresgid
|
||||
|
||||
libpthread-shared-only-routines = version pt-allocrtsig unwind-forcedunwind
|
||||
libpthread-shared-only-routines = version pt-interp pt-allocrtsig \
|
||||
unwind-forcedunwind
|
||||
libpthread-static-only-routines = pthread_atfork
|
||||
|
||||
# Since cancellation handling is in large parts handled using exceptions
|
||||
@ -608,6 +609,8 @@ $(objpfx)banner.h: Banner
|
||||
generated += banner.h
|
||||
# Give libpthread.so an entry point and make it directly runnable itself.
|
||||
LDFLAGS-pthread.so += -e __nptl_main
|
||||
# pt-interp.c exists just to get the runtime linker path into libpthread.so.
|
||||
$(objpfx)pt-interp.os: $(common-objpfx)runtime-linker.h
|
||||
endif
|
||||
|
||||
ifeq ($(run-built-tests),yes)
|
||||
|
1
nptl/pt-interp.c
Normal file
1
nptl/pt-interp.c
Normal file
@ -0,0 +1 @@
|
||||
#include <elf/interp.c>
|
Loading…
Reference in New Issue
Block a user