aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2014-02-05 21:21:09 +1000
committerAllan McRae <allan@archlinux.org>2014-02-06 08:46:20 +1000
commitbf06bcee84d4c19a99925c0f58026a8cbd87a688 (patch)
tree43b2b3a9591828e49ccd147676f9781c658364d6
parentRevert "Patch 3/4 of the effort to make TLS access async-signal-safe." (diff)
downloadglibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.tar.gz
glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.tar.bz2
glibc-bf06bcee84d4c19a99925c0f58026a8cbd87a688.zip
Revert "Patch [1/4] async-signal safe TLS."
This reverts commit 69a17d9d245dc3551792e95e1823cc2d877592f3.
-rw-r--r--ChangeLog11
-rw-r--r--sysdeps/generic/ldsodefs.h5
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.h7
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.c46
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.h4
5 files changed, 0 insertions, 73 deletions
diff --git a/ChangeLog b/ChangeLog
index 80cb619b4c..c579442ec5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1044,17 +1044,6 @@
* manual/install.texi: Suppress menu for plain text output.
* INSTALL: Regenerated.
-2013-12-18 Andrew Hunter <ahh@google.com>
-
- * sysdeps/generic/ldsodefs.h (_dl_mask_all_signals): New prototype.
- (_dl_unmask_signals): Likewise.
- * sysdeps/mach/hurd/dl-sysdep.h (_dl_mask_all_signals): New stub.
- (_dl_unmask_all_signals): Likewise.
- * sysdeps/unix/sysv/linux/dl-sysdep.h (_dl_mask_all_signals): New prototype.
- (_dl_unmask_all_signals): Likewise.
- * sysdeps/unix/sysv/linux/dl-sysdep.c (_dl_mask_all_signals): New function.
- (_dl_unmask_signals): Likewise.
-
2013-12-18 Brooks Moses <bmoses@google.com>
[BZ #15846]
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