diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-05-03 08:12:11 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-05-03 08:13:32 +0200 |
commit | ad201afe5c348de265b92bae6688034102a4386b (patch) | |
tree | 61d621079929b61f50fd375134ce9ff45f198a71 | |
parent | 23fdf8178cce3c2ec320dd5eca8b544245bcaef0 (diff) | |
download | glibc-ad201afe5c348de265b92bae6688034102a4386b.zip glibc-ad201afe5c348de265b92bae6688034102a4386b.tar.gz glibc-ad201afe5c348de265b92bae6688034102a4386b.tar.bz2 |
Add pthread-in-libc, libpthread-routines-var, librt-routines-var
These make variables can be used to add routines to different
libraries for the Hurd and Linux builds.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
-rw-r--r-- | Makeconfig | 11 | ||||
-rw-r--r-- | config.h.in | 3 | ||||
-rw-r--r-- | config.make.in | 1 | ||||
-rwxr-xr-x | configure | 8 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | rt/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/configure | 3 | ||||
-rw-r--r-- | sysdeps/mach/hurd/configure.ac | 3 | ||||
-rw-r--r-- | sysdeps/pthread/Makefile | 3 |
9 files changed, 40 insertions, 0 deletions
@@ -1328,6 +1328,17 @@ endif sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\ $(firstword $(subst :, ,$p)))) +# $(libpthread-routines-var) and $(librt-routines-var) are the make +# variable to which pthread routines need to be added to land in the +# right library. +ifeq ($(pthread-in-libc),yes) +libpthread-routines-var = routines +librt-routines-var = routines +else +libpthread-routines-var = libpthread-routines +librt-routines-var = libpthread-routines +endif + # A sysdeps Makeconfig fragment may set libc-reentrant to yes. ifeq (yes,$(libc-reentrant)) defines += -D_LIBC_REENTRANT diff --git a/config.h.in b/config.h.in index ea56e5b..99036b8 100644 --- a/config.h.in +++ b/config.h.in @@ -200,6 +200,9 @@ multiple symbol versions for one symbol. */ #define SYMVER_NEEDS_ALIAS 0 +/* Define to 1 if libpthread actually resides in libc. */ +#define PTHREAD_IN_LIBC 0 + /* */ diff --git a/config.make.in b/config.make.in index 7f47f0c..cbf5911 100644 --- a/config.make.in +++ b/config.make.in @@ -103,6 +103,7 @@ use-nscd = @use_nscd@ build-hardcoded-path-in-tests= @hardcoded_path_in_tests@ build-pt-chown = @build_pt_chown@ have-tunables = @have_tunables@ +pthread-in-libc = @pthread_in_libc@ # Build tools. CC = @CC@ @@ -588,6 +588,7 @@ ac_unique_file="include/features.h" enable_option_checking=no ac_subst_vars='LTLIBOBJS LIBOBJS +pthread_in_libc RELEASE VERSION mach_interface_list @@ -6780,6 +6781,7 @@ libc_cv_sysconfdir=$sysconfdir libc_cv_localstatedir=$localstatedir libc_cv_gcc_unwind_find_fde=no libc_cv_idn=no +pthread_in_libc=yes # Iterate over all the sysdep directories we will use, running their # configure fragments. @@ -6939,6 +6941,12 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h` +if test "$pthread_in_libc" = yes; then + $as_echo "#define PTHREAD_IN_LIBC 1" >>confdefs.h + +fi + + ac_config_files="$ac_config_files config.make Makefile" ac_config_commands="$ac_config_commands default" diff --git a/configure.ac b/configure.ac index cc47e56..64be29d 100644 --- a/configure.ac +++ b/configure.ac @@ -1777,6 +1777,7 @@ libc_cv_sysconfdir=$sysconfdir libc_cv_localstatedir=$localstatedir libc_cv_gcc_unwind_find_fde=no libc_cv_idn=no +pthread_in_libc=yes # Iterate over all the sysdep directories we will use, running their # configure fragments. @@ -1903,6 +1904,11 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h` AC_SUBST(VERSION) AC_SUBST(RELEASE) +if test "$pthread_in_libc" = yes; then + AC_DEFINE(PTHREAD_IN_LIBC) +fi +AC_SUBST(pthread_in_libc) + AC_CONFIG_FILES([config.make Makefile]) AC_CONFIG_COMMANDS([default],[[ case $CONFIG_FILES in *config.make*) diff --git a/rt/Makefile b/rt/Makefile index 7b374f2..c1a0fde 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -39,6 +39,8 @@ librt-routines = $(aio-routines) \ $(timer-routines) \ $(shm-routines) $(mq-routines) +$(librt-routines-var) = \ + tests := tst-shm tst-timer tst-timer2 \ tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \ tst-aio7 tst-aio8 tst-aio9 tst-aio10 \ diff --git a/sysdeps/mach/hurd/configure b/sysdeps/mach/hurd/configure index 537f235..4876e1f 100644 --- a/sysdeps/mach/hurd/configure +++ b/sysdeps/mach/hurd/configure @@ -45,3 +45,6 @@ fi if test -n "$sysheaders"; then CPPFLAGS=$OLD_CPPFLAGS fi + +# Hurd has libpthread as a separate library. +pthread_in_libc=no diff --git a/sysdeps/mach/hurd/configure.ac b/sysdeps/mach/hurd/configure.ac index eab0e5b..9a049b1 100644 --- a/sysdeps/mach/hurd/configure.ac +++ b/sysdeps/mach/hurd/configure.ac @@ -26,3 +26,6 @@ fi if test -n "$sysheaders"; then CPPFLAGS=$OLD_CPPFLAGS fi + +# Hurd has libpthread as a separate library. +pthread_in_libc=no diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile index ed15c1e..8133bcd 100644 --- a/sysdeps/pthread/Makefile +++ b/sysdeps/pthread/Makefile @@ -39,6 +39,9 @@ libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \ cnd_destroy cnd_init cnd_signal cnd_timedwait cnd_wait \ tss_create tss_delete tss_get tss_set +$(libpthread-routines-var) += \ + + tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \ tst-mtx-recursive tst-tss-basic tst-call-once tst-mtx-timedlock \ |