Use pragmas rather than makefiles for necessary options for unwind code.
authorRoland McGrath <roland@hack.frob.com>
Tue, 16 Dec 2014 22:31:24 +0000 (14:31 -0800)
committerRoland McGrath <roland@hack.frob.com>
Tue, 16 Dec 2014 22:31:24 +0000 (14:31 -0800)
ChangeLog
nptl/Makefile
nptl/unwind.c
sysdeps/gnu/Makefile
sysdeps/gnu/unwind-resume.c
sysdeps/nptl/unwind-forcedunwind.c
sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c

index 76a9849..aac7f32 100644 (file)
--- 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]
index 3d61ec1..2b804b2 100644 (file)
@@ -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
index f109019..e50900e 100644 (file)
@@ -25,6 +25,8 @@
 #include "pthreadP.h"
 #include <jmpbuf-unwind.h>
 
+#pragma GCC optimize "-fexceptions"
+
 #ifdef HAVE_FORCED_UNWIND
 
 #ifdef _STACK_GROWS_DOWN
index ba495ed..8d407f7 100644 (file)
@@ -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
index 5044a71..a23d19a 100644 (file)
@@ -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)
index 9d7bdc5..bbb366f 100644 (file)
@@ -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)
index 660d148..3f347a0 100644 (file)
@@ -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__;