about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-09-14 12:47:35 +0100
committerWilco Dijkstra <wdijkstr@arm.com>2017-09-19 15:07:58 +0100
commitca3a382ea3aa9c9ccb57060afae47c7f702727ac (patch)
tree53dbe1397c04c1ee52a024bd4193e1119b625df7 /sysdeps
parenteb375def3ddd2a1738ed6bc5ace98753f0f7e5e6 (diff)
downloadglibc-ca3a382ea3aa9c9ccb57060afae47c7f702727ac.tar.gz
glibc-ca3a382ea3aa9c9ccb57060afae47c7f702727ac.tar.xz
glibc-ca3a382ea3aa9c9ccb57060afae47c7f702727ac.zip
Enable unwind info in libc-start.c and backtrace.c
Add unwind info to __libc_start_main so that unwinding continues one
extra level to _start.  Similarly add unwind info to backtrace.
Given many targets require this, do this in a general way.

	* csu/Makefile: Add -funwind-tables to libc-start.c.
	* debug/Makefile: Add -funwind-tables to backtrace.c.
	* sysdeps/aarch64/Makefile: Remove CFLAGS-backtrace.c.
	* sysdeps/arm/Makefile: Likewise.
	* sysdeps/i386/Makefile: Likewise.
	* sysdeps/m68k/Makefile: Likewise.
	* sysdeps/mips/Makefile: Likewise.
	* sysdeps/nios2/Makefile: Likewise.
	* sysdeps/sh/Makefile: Likewise.
	* sysdeps/sparc/Makefile: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/aarch64/Makefile4
-rw-r--r--sysdeps/arm/Makefile9
-rw-r--r--sysdeps/i386/Makefile4
-rw-r--r--sysdeps/m68k/Makefile4
-rw-r--r--sysdeps/mips/Makefile4
-rw-r--r--sysdeps/nios2/Makefile4
-rw-r--r--sysdeps/sh/Makefile4
-rw-r--r--sysdeps/sparc/Makefile4
8 files changed, 0 insertions, 37 deletions
diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile
index 562c1373ae..5f3e20371a 100644
--- a/sysdeps/aarch64/Makefile
+++ b/sysdeps/aarch64/Makefile
@@ -1,9 +1,5 @@
 long-double-fcts = yes
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
-
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
 gen-as-const-headers += dl-link.sym
diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
index 2849aeda42..ad2042b93a 100644
--- a/sysdeps/arm/Makefile
+++ b/sysdeps/arm/Makefile
@@ -51,11 +51,6 @@ sysdep_routines += $(aeabi_constants) $(aeabi_routines)
 static-only-routines += $(aeabi_constants) aeabi_read_tp
 shared-only-routines += libc-aeabi_read_tp
 
-# In order for unwinding to fail when it falls out of main, we need a
-# cantunwind marker.  There's one in start.S.  To make sure we reach it, add
-# unwind tables for __libc_start_main.
-CFLAGS-libc-start.c += -fexceptions
-
 sysdep_routines += arm-unwind-resume
 shared-only-routines += arm-unwind-resume
 endif
@@ -64,10 +59,6 @@ ifeq ($(subdir),gmon)
 sysdep_routines += arm-mcount
 endif
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
-
 ifeq ($(subdir),rt)
 librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
 librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index e30e1339f0..a1500454e5 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -19,10 +19,6 @@ CFLAGS-dl-load.c += -Wno-unused
 CFLAGS-dl-reloc.c += -Wno-unused
 endif
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -fexceptions
-endif
-
 # Most of the glibc routines don't ever call user defined callbacks
 # nor use any FPU or SSE* and as such don't need bigger %esp alignment
 # than 4 bytes.
diff --git a/sysdeps/m68k/Makefile b/sysdeps/m68k/Makefile
index 26539fa01d..b6910014f8 100644
--- a/sysdeps/m68k/Makefile
+++ b/sysdeps/m68k/Makefile
@@ -40,10 +40,6 @@ ifeq ($(subdir),setjmp)
 CFLAGS-setjmp.c := -fno-omit-frame-pointer
 endif
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
-
 ifeq ($(subdir),elf)
 CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
 endif
diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
index 7c1d77941e..fd891ddf09 100644
--- a/sysdeps/mips/Makefile
+++ b/sysdeps/mips/Makefile
@@ -12,10 +12,6 @@ librt-sysdep_routines += rt-sysdep
 librt-shared-only-routines += rt-sysdep
 endif
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
-
 ifeq ($(subdir),csu)
 CPPFLAGS-crti.S += $(pic-ccflag)
 CPPFLAGS-crtn.S += $(pic-ccflag)
diff --git a/sysdeps/nios2/Makefile b/sysdeps/nios2/Makefile
index 75cab5e5b8..9ceab11297 100644
--- a/sysdeps/nios2/Makefile
+++ b/sysdeps/nios2/Makefile
@@ -29,7 +29,3 @@ endif
 ifeq ($(subdir),csu)
 gen-as-const-headers += tcb-offsets.sym
 endif
-
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
diff --git a/sysdeps/sh/Makefile b/sysdeps/sh/Makefile
index 0c6db9a9d4..de8fa0bc0e 100644
--- a/sysdeps/sh/Makefile
+++ b/sysdeps/sh/Makefile
@@ -5,7 +5,3 @@ endif
 ifeq ($(subdir),gmon)
 sysdep_routines += _mcount
 endif
-
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
diff --git a/sysdeps/sparc/Makefile b/sysdeps/sparc/Makefile
index 31aaeaed8f..3f0c096400 100644
--- a/sysdeps/sparc/Makefile
+++ b/sysdeps/sparc/Makefile
@@ -3,10 +3,6 @@ long-double-fcts = yes
 
 pie-ccflag = -fPIE
 
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
-
 ifeq ($(subdir),gmon)
 sysdep_routines += sparc-mcount
 endif