This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/16628] Segfault after a binary without pthread dlopen()s a library linked with pthread
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Wed, 30 Nov 2016 15:01:12 +0000
- Subject: [Bug dynamic-link/16628] Segfault after a binary without pthread dlopen()s a library linked with pthread
- Auto-submitted: auto-generated
- References: <bug-16628-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=16628
--- Comment #6 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 9e78f6f6e7134a5f299cc8de77370218f8019237 (commit)
from 705a79f82560ff6472cebed86aa5db04cdea3bce (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e78f6f6e7134a5f299cc8de77370218f8019237
commit 9e78f6f6e7134a5f299cc8de77370218f8019237
Author: Florian Weimer <fweimer@redhat.com>
Date: Wed Nov 30 15:59:57 2016 +0100
Implement _dl_catch_error, _dl_signal_error in libc.so [BZ #16628]
This change moves the main implementation of _dl_catch_error,
_dl_signal_error to libc.so, where TLS variables can be used
directly. This removes a writable function pointer from the
rtld_global variable.
For use during initial relocation, minimal implementations of these
functions are provided in ld.so. These are eventually interposed
by the libc.so implementations. This is implemented by compiling
elf/dl-error-skeleton.c twice, via elf/dl-error.c and
elf/dl-error-minimal.c.
As a side effect of this change, the static version of dl-error.c
no longer includes support for the
_dl_signal_cerror/_dl_receive_error mechanism because it is only
used in ld.so.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 78 +++++++
dlfcn/dlerror.c | 4 +-
dlfcn/dlinfo.c | 4 +-
dlfcn/dlmopen.c | 4 +-
dlfcn/dlopen.c | 2 +-
elf/Makefile | 21 ++-
elf/Versions | 6 +
elf/dl-close.c | 2 +-
elf/dl-error-minimal.c | 23 ++
elf/dl-error-skeleton.c | 230 ++++++++++++++++++++
elf/dl-error.c | 210 +-----------------
elf/dl-libc.c | 4 +-
elf/dl-sym.c | 8 +-
elf/dl-tsd.c | 53 -----
elf/rtld.c | 19 --
elf/tst-latepthread.c | 105 +++++++++
elf/tst-latepthreadmod.c | 33 +++
nptl/nptl-init.c | 4 -
sysdeps/generic/ldsodefs.h | 46 +++--
sysdeps/generic/localplt.data | 3 +
sysdeps/unix/sysv/linux/aarch64/localplt.data | 3 +
sysdeps/unix/sysv/linux/alpha/localplt.data | 3 +
sysdeps/unix/sysv/linux/arm/localplt.data | 3 +
sysdeps/unix/sysv/linux/hppa/localplt.data | 3 +
sysdeps/unix/sysv/linux/i386/localplt.data | 3 +
sysdeps/unix/sysv/linux/ia64/localplt.data | 3 +
sysdeps/unix/sysv/linux/m68k/localplt.data | 3 +
sysdeps/unix/sysv/linux/microblaze/localplt.data | 3 +
sysdeps/unix/sysv/linux/nios2/localplt.data | 3 +
.../sysv/linux/powerpc/powerpc32/fpu/localplt.data | 3 +
.../linux/powerpc/powerpc32/nofpu/localplt.data | 3 +
.../sysv/linux/powerpc/powerpc64/localplt.data | 3 +
sysdeps/unix/sysv/linux/s390/localplt.data | 3 +
sysdeps/unix/sysv/linux/sh/localplt.data | 3 +
.../unix/sysv/linux/sparc/sparc32/localplt.data | 3 +
.../unix/sysv/linux/sparc/sparc64/localplt.data | 3 +
sysdeps/x86_64/localplt.data | 3 +
37 files changed, 595 insertions(+), 315 deletions(-)
create mode 100644 elf/dl-error-minimal.c
create mode 100644 elf/dl-error-skeleton.c
delete mode 100644 elf/dl-tsd.c
create mode 100644 elf/tst-latepthread.c
create mode 100644 elf/tst-latepthreadmod.c
--
You are receiving this mail because:
You are on the CC list for the bug.