From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: libc-alpha@sourceware.org
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>, commit-hurd@gnu.org
Subject: [hurd,commited] htl: Move pthread_atfork to libc_nonshared.a
Date: Sat, 4 Jan 2020 19:37:40 +0100 [thread overview]
Message-ID: <20200104183740.923936-1-samuel.thibault@ens-lyon.org> (raw)
This follows bd60ce86520b ('nptl: Move pthread_atfork to libc_nonshared.a')
with the same rationale: there is no non-libpthread equivalent to be used
for making linking against libpthread optional.
libpthread_nonshared.a is unused after this, so remove it from the
build.
There is no ABI impact because pthread_atfork was implemented using
__register_atfork in libc even before this change.
pthread_atfork has to be a weak alias because pthread_* names are not
reserved in libc.
---
htl/Makefile | 34 +++-------------------------------
sysdeps/htl/Makeconfig | 3 +--
sysdeps/htl/pt-atfork.c | 3 ++-
3 files changed, 6 insertions(+), 34 deletions(-)
diff --git a/htl/Makefile b/htl/Makefile
index 3b5c10635d..e091077a28 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -120,7 +120,6 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \
pt-sigstate-destroy \
pt-sigstate \
\
- pt-atfork \
old_pt-atfork \
pt-kill \
pt-getcpuclockid \
@@ -137,8 +136,6 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \
cthreads-compat \
$(SYSDEPS)
-libpthread-static-only-routines = pt-atfork
-
headers := \
pthread.h \
semaphore.h \
@@ -166,8 +163,9 @@ headers := \
distribute :=
-routines := forward libc_pthread_init alloca_cutoff
+routines := forward libc_pthread_init alloca_cutoff pt-atfork
shared-only-routines = forward
+static-only-routines = pt-atfork
extra-libs := libpthread
extra-libs-others := $(extra-libs)
@@ -204,34 +202,8 @@ extra-B-pthread.so = -B$(common-objpfx)htl/
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)'\
- ')' \
- ) > $@.new
- mv -f $@.new $@
-
$(addprefix $(objpfx), \
$(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
$(tests-nolibpthread), \
- $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
- $(objpfx)libpthread_nonshared.a
+ $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so
endif
-
-generated += libpthread_nonshared.a
diff --git a/sysdeps/htl/Makeconfig b/sysdeps/htl/Makeconfig
index 3af4c1de35..ad56cc6bd1 100644
--- a/sysdeps/htl/Makeconfig
+++ b/sysdeps/htl/Makeconfig
@@ -3,8 +3,7 @@
have-thread-library = yes
-shared-thread-library = $(common-objpfx)htl/libpthread_nonshared.a \
- $(common-objpfx)htl/libpthread.so
+shared-thread-library = $(common-objpfx)htl/libpthread.so
static-thread-library = $(common-objpfx)htl/libpthread.a
bounded-thread-library = $(static-thread-library)
diff --git a/sysdeps/htl/pt-atfork.c b/sysdeps/htl/pt-atfork.c
index 4512fe72b6..d547dd58e6 100644
--- a/sysdeps/htl/pt-atfork.c
+++ b/sysdeps/htl/pt-atfork.c
@@ -22,9 +22,10 @@
#include <dso_handle.h>
int
-pthread_atfork (void (*prepare) (void),
+__pthread_atfork (void (*prepare) (void),
void (*parent) (void),
void (*child) (void))
{
return __register_atfork (prepare, parent, child, __dso_handle);
}
+weak_alias (__pthread_atfork, pthread_atfork)
--
2.24.1
reply other threads:[~2020-01-04 18:37 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200104183740.923936-1-samuel.thibault@ens-lyon.org \
--to=samuel.thibault@ens-lyon.org \
--cc=commit-hurd@gnu.org \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).