This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch sid in repository glibc.
commit 3702fb1de6c7642b21d4af21e131c2143aa7af9d Author: Samuel Thibault <[email protected]> Date: Tue Oct 18 00:18:27 2016 +0000 hurd: fix unregistering atfork handlers at library unload. hurd-i386/cvs-pthread-atfork.diff: New patch. Closes: #841068. --- debian/changelog | 2 + debian/patches/hurd-i386/cvs-pthread-atfork.diff | 133 +++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 136 insertions(+) diff --git a/debian/changelog b/debian/changelog index a6a5d33..24d89bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,8 @@ glibc (2.24-5) UNRELEASED; urgency=medium [ Samuel Thibault ] * hurd-i386/cvs-libpthread-static-weak.diff: New patch to fix weak references when linking in libpthread statically. + * hurd-i386/cvs-pthread-atfork.diff: New patch to fix unregistering atfork + handlers at library unload. Closes: #841068. -- Aurelien Jarno <[email protected]> Sun, 16 Oct 2016 13:08:40 +0200 diff --git a/debian/patches/hurd-i386/cvs-pthread-atfork.diff b/debian/patches/hurd-i386/cvs-pthread-atfork.diff new file mode 100644 index 0000000..57887e1 --- /dev/null +++ b/debian/patches/hurd-i386/cvs-pthread-atfork.diff @@ -0,0 +1,133 @@ +commit 05babf965ec39be7e1c8a7306ec1c60b1e614654 +Author: Samuel Thibault <[email protected]> +Date: Tue Oct 18 02:10:41 2016 +0200 + + Fix unregistering atfork handlers on library unload + + * sysdeps/generic/old_pt-atfork.c: New file. + * Makefile (libpthread-routines): Add old_pt-atfork. + (libpthread-static-only-routines): Add pt-atfork. + [build-shared=yes] (install): Explicit $(inst_libdir)/libpthread.so + [build-shared=yes] $(inst_libdir)/libpthread.so: Replace with script to + link libpthread_nonshared.a in. + [build-shared=yes] (tests): Link libpthread_nonshared.a in addition to + libpthread.so. + (generated): Add libpthread_nonshared.a. + +Index: glibc-2.24/libpthread/Makefile +=================================================================== +--- glibc-2.24.orig/libpthread/Makefile ++++ glibc-2.24/libpthread/Makefile +@@ -139,6 +139,7 @@ libpthread-routines := pt-attr pt-attr-d + pt-sigstate \ + \ + pt-atfork \ ++ old_pt-atfork \ + pt-kill \ + pt-getcpuclockid \ + \ +@@ -154,6 +155,8 @@ libpthread-routines := pt-attr pt-attr-d + cthreads-compat \ + $(SYSDEPS) + ++libpthread-static-only-routines = pt-atfork ++ + ifeq ($(IN_GLIBC),no) + SRCS := $(addsuffix .c,$(libpthread-routines)) + OBJS = $(addsuffix .o,$(basename $(notdir $(SRCS)))) +@@ -281,6 +284,39 @@ extra-B-pthread.so = -B$(common-objpfx)l + + include ../Rules + ++ifeq (yes,$(build-shared)) ++# What we install as libpthread.so for programs to link against is in fact a ++# link script. It contains references for the various libraries we need. ++# The libpthread.so object is not complete since some functions are only ++# defined in libpthread_nonshared.a. ++# We need to use absolute paths since otherwise local copies (if they exist) ++# of the files are taken by the linker. ++install: $(inst_libdir)/libpthread.so ++ ++$(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \ ++ $(objpfx)libpthread.so$(libpthread.so-version) \ ++ $(inst_libdir)/$(patsubst %,$(libtype.oS),\ ++ $(libprefix)pthread) \ ++ $(+force) ++ (echo '/* GNU ld script';\ ++ echo ' Use the shared library, but some functions are only in';\ ++ echo ' the static library, so try that secondarily. */';\ ++ cat $<; \ ++ echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \ ++ '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\ ++ ')' \ ++ ) > [email protected] ++ mv -f [email protected] $@ ++ ++$(addprefix $(objpfx), \ ++ $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \ ++ $(tests-nolibpthread), \ ++ $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ ++ $(objpfx)libpthread_nonshared.a ++endif ++ ++generated += libpthread_nonshared.a ++ + # Depend on libc.so so a DT_NEEDED is generated in the shared objects. + # This ensures they will load libc.so for needed symbols if loaded by + # a statically-linked program that hasn't already loaded it. +Index: glibc-2.24/libpthread/sysdeps/generic/old_pt-atfork.c +=================================================================== +--- /dev/null ++++ glibc-2.24/libpthread/sysdeps/generic/old_pt-atfork.c +@@ -0,0 +1,27 @@ ++/* Register fork handlers. Generic version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include <shlib-compat.h> ++ ++#if SHLIB_COMPAT(libpthread, GLIBC_2_12, GLIBC_2_23) ++# define pthread_atfork __dyn_pthread_atfork ++# include "pt-atfork.c" ++# undef pthread_atfork ++compat_symbol (libpthread, __dyn_pthread_atfork, pthread_atfork, GLIBC_2_12); ++#endif +Index: glibc-2.24/libpthread/sysdeps/generic/pt-atfork.c +=================================================================== +--- glibc-2.24.orig/libpthread/sysdeps/generic/pt-atfork.c ++++ glibc-2.24/libpthread/sysdeps/generic/pt-atfork.c +@@ -19,6 +19,7 @@ + + #include <pthread.h> + #include <pt-internal.h> ++#include <fork.h> + + /* This is defined by newer gcc version unique for each module. */ + extern void *__dso_handle __attribute__ ((__weak__, +--- glibc-2.24.orig/libpthread/Makeconfig.original 2016-10-17 21:53:34.000000000 +0000 ++++ glibc-2.24/libpthread/Makeconfig 2016-10-17 21:54:00.000000000 +0000 +@@ -3,7 +3,8 @@ + + have-thread-library = yes + +-shared-thread-library = $(common-objpfx)libpthread/libpthread.so ++shared-thread-library = $(common-objpfx)libpthread/libpthread_nonshared.a \ ++ $(common-objpfx)libpthread/libpthread.so + static-thread-library = $(common-objpfx)libpthread/libpthread.a + bounded-thread-library = $(static-thread-library) + diff --git a/debian/patches/series b/debian/patches/series index 7486fb8..ba5be6b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -134,6 +134,7 @@ hurd-i386/tg-pthread_deps.diff hurd-i386/cvs-mallocfork.diff hurd-i386/cvs-setcancelstate.diff hurd-i386/cvs-libpthread-static-weak.diff +hurd-i386/cvs-pthread-atfork.diff i386/local-biarch.diff i386/local-cmov.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git

