diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | nptl/Makefile | 3 | ||||
-rw-r--r-- | nptl/unwind.c | 2 | ||||
-rw-r--r-- | sysdeps/gnu/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/gnu/unwind-resume.c | 2 | ||||
-rw-r--r-- | sysdeps/nptl/unwind-forcedunwind.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c | 2 |
7 files changed, 21 insertions, 5 deletions
@@ -1,3 +1,16 @@ +2014-12-16 Roland McGrath <roland@hack.frob.com> + + * nptl/unwind.c: Use pragma to turn on -fexceptions. + * sysdeps/nptl/unwind-forcedunwind.c: Use pragma to turn on + -fexceptions and -fasynchronous-unwind-tables. + * sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c: Likewise. + * sysdeps/gnu/unwind-resume.c: Likewise. + * nptl/Makefile (CFLAGS-unwind.c, CFLAGS-unwind-forcedunwind.c): + Variables removed. + * sysdeps/gnu/Makefile + [$(subdir) = csu] (CFLAGS-unwind-resume.c): Likewise. + [$(subdir) = rt] (CFLAGS-rt-unwind-resume.c): Likewise. + 2014-12-16 Joseph Myers <joseph@codesourcery.com> [BZ #17719] diff --git a/nptl/Makefile b/nptl/Makefile index 3d61ec1..2b804b2 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -146,9 +146,6 @@ libpthread-static-only-routines = pthread_atfork # nptl-init.c contains sigcancel_handler(). CFLAGS-nptl-init.c = -fexceptions -fasynchronous-unwind-tables -# The unwind code itself, -CFLAGS-unwind.c = -fexceptions -CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables # The following three functions must be async-cancel safe. CFLAGS-pthread_cancel.c = -fexceptions -fasynchronous-unwind-tables diff --git a/nptl/unwind.c b/nptl/unwind.c index f109019..e50900e 100644 --- a/nptl/unwind.c +++ b/nptl/unwind.c @@ -25,6 +25,8 @@ #include "pthreadP.h" #include <jmpbuf-unwind.h> +#pragma GCC optimize "-fexceptions" + #ifdef HAVE_FORCED_UNWIND #ifdef _STACK_GROWS_DOWN diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile index ba495ed..8d407f7 100644 --- a/sysdeps/gnu/Makefile +++ b/sysdeps/gnu/Makefile @@ -79,11 +79,9 @@ endif ifeq ($(subdir),csu) routines += unwind-resume shared-only-routines += unwind-resume -CFLAGS-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables endif ifeq ($(subdir),rt) librt-sysdep_routines += rt-unwind-resume librt-shared-only-routines += rt-unwind-resume -CFLAGS-rt-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables endif diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c index 5044a71..a23d19a 100644 --- a/sysdeps/gnu/unwind-resume.c +++ b/sysdeps/gnu/unwind-resume.c @@ -21,6 +21,8 @@ #include <unwind.h> #include <gnu/lib-names.h> +#pragma GCC optimize ("-fexceptions", "-fasynchronous-unwind-tables") + static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) __attribute__ ((noreturn)); static _Unwind_Reason_Code (*libgcc_s_personality) diff --git a/sysdeps/nptl/unwind-forcedunwind.c b/sysdeps/nptl/unwind-forcedunwind.c index 9d7bdc5..bbb366f 100644 --- a/sysdeps/nptl/unwind-forcedunwind.c +++ b/sysdeps/nptl/unwind-forcedunwind.c @@ -23,6 +23,8 @@ #include <sysdep.h> #include <gnu/lib-names.h> +#pragma GCC optimize ("-fexceptions", "-fasynchronous-unwind-tables") + static void *libgcc_s_handle; static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); static _Unwind_Reason_Code (*libgcc_s_personality) diff --git a/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c index 660d148..3f347a0 100644 --- a/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c +++ b/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c @@ -21,6 +21,8 @@ #include <unwind.h> #include <pthreadP.h> +#pragma GCC optimize ("-fexceptions", "-fasynchronous-unwind-tables") + static void *libgcc_s_handle; static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) __attribute_used__; |