On 03/01/2012 20.23, Bernhard Reutner-Fischer wrote: > On Jan 3, 2012 7:11 PM, "Carmelo AMOROSO" <carmelo.amor...@st.com> wrote: >> >> Build raise and abort function with dwarf2 info by using >> -fasynchronous-unwind-tables to make backtrace() working across a >> call to abort. >> >> A scenario where it could be useful is within a signal handler that >> wants to dump a backtrace when catching some signal (i.e SIGABRT). >> Without having abort & raise built with DWARF2 information, it is not >> possible for the libgcc stack unwinder to walk through the call stack >> out of the abort/raise function. >> >> Impacts in terms of size are really limited > > Please use busybox's incarnation of bloat-o-meter to report size changes in > the future.
sure > Acked-by: Bernhard Reutner-Fischer <rep.dot....@gmail.com> thanks. I'll commit shortly. cheers, Carmelo >> >> Current >> text data bss dec hex filename >> 164 0 0 164 a4 > ./libpthread/nptl/sysdeps/unix/sysv/linux/raise.os >> 164 0 0 164 a4 > ./libpthread/nptl/sysdeps/unix/sysv/linux/raise.oS >> 220 24 4 248 f8 ./libc/stdlib/abort.os >> >> With (-fasynchronous-unwind-tables) >> >> text data bss dec hex filename >> 216 0 0 216 d8 > ./libpthread/nptl/sysdeps/unix/sysv/linux/raise.os >> 216 0 0 216 d8 > ./libpthread/nptl/sysdeps/unix/sysv/linux/raise.oS >> 280 24 4 308 134 ./libc/stdlib/abort.os >> >> Signed-off-by: Carmelo Amoroso <carmelo.amor...@st.com> >> --- >> libc/signal/Makefile.in | 2 ++ >> libc/stdlib/Makefile.in | 2 ++ >> .../sysdeps/unix/sysv/linux/Makefile.commonarch | 2 ++ >> 3 files changed, 6 insertions(+), 0 deletions(-) >> >> diff --git a/libc/signal/Makefile.in b/libc/signal/Makefile.in >> index a7e3078..ed8598b 100644 >> --- a/libc/signal/Makefile.in >> +++ b/libc/signal/Makefile.in >> @@ -24,6 +24,8 @@ ifneq ($(strip $(ARCH_OBJS)),) >> CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)),$(CSRC-y)) >> endif >> >> +CFLAGS-raise.c = -fasynchronous-unwind-tables >> + >> SIGNAL_DIR := $(top_srcdir)libc/signal >> SIGNAL_OUT := $(top_builddir)libc/signal >> >> diff --git a/libc/stdlib/Makefile.in b/libc/stdlib/Makefile.in >> index 73e5462..9e96f03 100644 >> --- a/libc/stdlib/Makefile.in >> +++ b/libc/stdlib/Makefile.in >> @@ -27,6 +27,8 @@ CSRC-$(if $(findstring > yy,$(UCLIBC_HAS_FLOATS)$(UCLIBC_SUSV3_LEGACY)),y) += \ >> gcvt.c >> CSRC-$(UCLIBC_SUSV3_LEGACY) += mktemp.c >> >> +CFLAGS-abort.c = -fasynchronous-unwind-tables >> + >> # multi source stdlib.c >> CSRC-y += abs.c labs.c atoi.c atol.c strtol.c strtoul.c > _stdlib_strto_l.c \ >> qsort.c qsort_r.c bsearch.c \ >> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch > b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch >> index e28cec2..b32bc9b 100644 >> --- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch >> +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch >> @@ -128,6 +128,8 @@ CFLAGS-timer_gettime.c = -I$(top_srcdir)librt > -DIS_IN_librt >> CFLAGS-timer_routines.c = -I$(top_srcdir)librt -DIS_IN_librt >> CFLAGS-timer_settime.c = -I$(top_srcdir)librt -DIS_IN_librt >> >> +CFLAGS-raise.c = -fasynchronous-unwind-tables >> + >> CFLAGS-linux = -DNOT_IN_libc -DIS_IN_libpthread $(SSP_ALL_CFLAGS) >> >> CFLAGS-OMIT-libc_pthread_init.c = -DNOT_IN_libc -DIS_IN_libpthread >> -- >> 1.7.4.4 >> >> _______________________________________________ >> uClibc mailing list >> uClibc@uclibc.org >> http://lists.busybox.net/mailman/listinfo/uclibc > _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc