diff options
author | Allan McRae <allan@archlinux.org> | 2014-02-05 21:21:09 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-02-06 08:46:20 +1000 |
commit | bf06bcee84d4c19a99925c0f58026a8cbd87a688 (patch) | |
tree | 43b2b3a9591828e49ccd147676f9781c658364d6 /sysdeps | |
parent | 8b6785f0836011cace9a77f3c24e51a7379238a0 (diff) | |
download | glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.tar glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.tar.gz glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.tar.bz2 glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.zip |
Revert "Patch [1/4] async-signal safe TLS."
This reverts commit 69a17d9d245dc3551792e95e1823cc2d877592f3.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 5 | ||||
-rw-r--r-- | sysdeps/mach/hurd/dl-sysdep.h | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/dl-sysdep.c | 46 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/dl-sysdep.h | 4 |
4 files changed, 0 insertions, 62 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index ff3f20f362..ffeb093887 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -234,11 +234,6 @@ extern int _dl_name_match_p (const char *__name, const struct link_map *__map) extern unsigned long int _dl_higher_prime_number (unsigned long int n) internal_function; -/* Mask every signal, returning the previous sigmask in OLD. */ -extern void _dl_mask_all_signals (sigset_t *old) internal_function; -/* Undo _dl_mask_all_signals. */ -extern void _dl_unmask_signals (sigset_t *old) internal_function; - /* Function used as argument for `_dl_receive_error' function. The arguments are the error code, error string, and the objname the error occurred in. */ diff --git a/sysdeps/mach/hurd/dl-sysdep.h b/sysdeps/mach/hurd/dl-sysdep.h index e7e209625b..0b3158e57e 100644 --- a/sysdeps/mach/hurd/dl-sysdep.h +++ b/sysdeps/mach/hurd/dl-sysdep.h @@ -29,10 +29,3 @@ # define DL_ARGV_NOT_RELRO 1 # define LIBC_STACK_END_NOT_RELRO 1 #endif - -#include <signal.h> -inline void _dl_mask_all_signals (sigset_t *) internal_function; -inline void _dl_mask_all_signals (sigset_t *) { } - -inline void _dl_unmask_all_signals (sigset_t *) internal_function; -inline void _dl_unmask_all_signals (sigset_t *) { } diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c index 676c9b246f..28100742f5 100644 --- a/sysdeps/unix/sysv/linux/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/dl-sysdep.c @@ -19,7 +19,6 @@ /* Linux needs some special initialization, but otherwise uses the generic dynamic linker system interface code. */ -#include <assert.h> #include <string.h> #include <fcntl.h> #include <unistd.h> @@ -131,48 +130,3 @@ _dl_discover_osversion (void) return version; } - -/* Mask every signal, returning the previous sigmask in OLD. */ -void -internal_function -_dl_mask_all_signals (sigset_t *old) -{ - int ret; - sigset_t new; - - sigfillset (&new); - - /* This function serves as a replacement to pthread_sigmask, which - isn't available from within the dynamic linker since it would require - linking with libpthread. We duplicate some of the functionality here - to avoid requiring libpthread. This isn't quite identical to - pthread_sigmask in that we do not mask internal signals used for - cancellation and setxid handling. This disables asynchronous - cancellation for the duration the signals are disabled, but it's a - small window, and prevents any problems with the use of TLS variables - in the signal handlers that would have executed. */ - - /* It's very important we don't touch errno here, as that's TLS; since this - gets called from get_tls_addr we might end up recursing. */ - - INTERNAL_SYSCALL_DECL (err); - - ret = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &new, old, - _NSIG / 8); - - assert (ret == 0); -} - -/* Return sigmask to what it was before a call to _dl_mask_all_signals. */ -void -internal_function -_dl_unmask_signals (sigset_t *old) -{ - int ret; - INTERNAL_SYSCALL_DECL (err); - - ret = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, old, NULL, - _NSIG / 8); - - assert (ret == 0); -} diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.h b/sysdeps/unix/sysv/linux/dl-sysdep.h index 8e39c83217..096019f2a1 100644 --- a/sysdeps/unix/sysv/linux/dl-sysdep.h +++ b/sysdeps/unix/sysv/linux/dl-sysdep.h @@ -30,8 +30,4 @@ /* Get version of the OS. */ extern int _dl_discover_osversion (void) attribute_hidden; # define HAVE_DL_DISCOVER_OSVERSION 1 - -#include <signal.h> -void _dl_mask_all_signals (sigset_t *) internal_function; -void _dl_unmask_all_signals (sigset_t *) internal_function; #endif |