about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--nptl/Makefile3
-rw-r--r--nptl/unwind.c2
-rw-r--r--sysdeps/gnu/Makefile2
-rw-r--r--sysdeps/gnu/unwind-resume.c2
-rw-r--r--sysdeps/nptl/unwind-forcedunwind.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c2
7 files changed, 21 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 76a9849e77..aac7f32bbe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 3d61ec1a34..2b804b2ce4 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 f109019b2e..e50900e001 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 ba495ed236..8d407f71e1 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 5044a7182e..a23d19ae7f 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 9d7bdc5b90..bbb366f1ae 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 660d1488e1..3f347a04b4 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__;