Skip to content

Commit

Permalink
Use pragmas rather than makefiles for necessary options for unwind code.
Browse files Browse the repository at this point in the history
  • Loading branch information
Roland McGrath committed Dec 16, 2014
1 parent 380292b commit c324fcf
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 5 deletions.
13 changes: 13 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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]
Expand Down
3 changes: 0 additions & 3 deletions nptl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions nptl/unwind.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
#include "pthreadP.h"
#include <jmpbuf-unwind.h>

#pragma GCC optimize "-fexceptions"

#ifdef HAVE_FORCED_UNWIND

#ifdef _STACK_GROWS_DOWN
Expand Down
2 changes: 0 additions & 2 deletions sysdeps/gnu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 2 additions & 0 deletions sysdeps/gnu/unwind-resume.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions sysdeps/nptl/unwind-forcedunwind.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
Original file line number Diff line number Diff line change
Expand Up @@ -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__;
Expand Down

0 comments on commit c324fcf

Please sign in to comment.