Use pragmas rather than makefiles for necessary options for unwind code.

This commit is contained in:
Roland McGrath 2014-12-16 14:31:24 -08:00
parent 380292ba8b
commit c324fcfe75
7 changed files with 21 additions and 5 deletions

View File

@ -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]

View 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

View File

@ -25,6 +25,8 @@
#include "pthreadP.h"
#include <jmpbuf-unwind.h>
#pragma GCC optimize "-fexceptions"
#ifdef HAVE_FORCED_UNWIND
#ifdef _STACK_GROWS_DOWN

View 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

View 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)

View 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)

View 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__;