On Sun, Jan 22, 2012 at 1:38 AM, Carmelo Amoroso <carmel...@gmail.com> wrote: > On 21/01/12 20:42, Khem Raj wrote: >> On Sat, Jan 21, 2012 at 6:47 AM, Carmelo AMOROSO <carmelo.amor...@st.com> >> wrote: >>> On 21/01/2012 15.08, Khem Raj wrote: >>>> Arm has a different mechanism of getting >>>> _Unwind_GetIP. Therefore we profile arch >>>> specific backtrace file. >>>> >>>> Signed-off-by: Khem Raj <raj.k...@gmail.com> >>>> --- >>>> libubacktrace/Makefile.in | 26 ++++++++-- >>>> libubacktrace/arm/Makefile.arch | 21 ++++++++ >>>> libubacktrace/arm/backtrace.c | 104 >>>> +++++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 145 insertions(+), 6 deletions(-) >>>> create mode 100644 libubacktrace/arm/Makefile.arch >>>> create mode 100644 libubacktrace/arm/backtrace.c >>>> >>>> diff --git a/libubacktrace/Makefile.in b/libubacktrace/Makefile.in >>>> index b18e3e6..f675bf5 100644 >>>> --- a/libubacktrace/Makefile.in >>>> +++ b/libubacktrace/Makefile.in >>>> @@ -6,7 +6,7 @@ >>>> # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. >>>> # >>>> >>>> -subdirs += libubacktrace >>>> +subdirs += libubacktrace libubacktrace/$(TARGET_ARCH) >>>> >>>> CFLAGS-libubacktrace := -DNOT_IN_libc -DIS_IN_libubacktrace >>>> $(SSP_ALL_CFLAGS) >>>> >>>> @@ -23,22 +23,36 @@ libubacktrace_FULL_NAME := libubacktrace-$(VERSION).so >>>> libubacktrace_DIR := $(top_srcdir)libubacktrace >>>> libubacktrace_OUT := $(top_builddir)libubacktrace >>>> >>>> +libubacktrace_ARCH_DIR:=$(libubacktrace_DIR)/$(TARGET_ARCH) >>>> +libubacktrace_ARCH_OUT:=$(libubacktrace_OUT)/$(TARGET_ARCH) >>>> + >>>> +-include $(libubacktrace_ARCH_DIR)/Makefile.arch >>>> + >>>> libubacktrace_SRC-y := >>>> libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c backtracesyms.c >>>> backtracesymsfd.c >>>> >>>> +# remove generic sources, if arch specific version is present >>>> +ifneq ($(strip $(libubacktrace_ARCH_SRC-y)),) >>>> +libubacktrace_SRC-y := $(filter-out $(notdir >>>> $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC-y)) >>>> +endif >>>> + >>>> # -fasynchronous-unwind-tables is required for backtrace to work using >>>> dwarf2 >>>> CFLAGS-backtrace.c := -fasynchronous-unwind-tables >>>> >>>> +# pass common flags to arch dirs >>>> +ifneq ($(strip $(libubacktrace_ARCH_OBJS)),) >>>> +CFLAGS-libubacktrace/$(TARGET_ARCH)/ := $(CFLAGS-libubacktrace) >>>> +endif >>>> >>>> -libubacktrace_SRCS := $(addprefix >>>> $(libubacktrace_DIR)/,$(libubacktrace_SRC-y)) >>>> +libubacktrace_SRCS := $(patsubst >>>> %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC-y)) >>>> libubacktrace_OBJS := $(patsubst >>>> $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SRCS)) >>>> >>>> ifeq ($(DOPIC),y) >>>> -libubacktrace-a-y := $(libubacktrace_OBJS:.o=.os) >>>> +libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os) >>>> else >>>> -libubacktrace-a-y := $(libubacktrace_OBJS) >>>> +libubacktrace-a-y += $(libubacktrace_OBJS) >>>> endif >>>> -libubacktrace-so-y := $(libubacktrace_OBJS:.o=.os) >>>> +libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os) >>>> >>>> lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a >>>> lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so >>>> @@ -61,7 +75,7 @@ $(libubacktrace_OUT)/libubacktrace_so.a: >>>> $(libubacktrace-so-y) >>>> $(Q)$(RM) $@ >>>> $(do_ar) >>>> >>>> -$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) >>>> +$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) >>>> $(libubacktrace_ARCH_SRCS) >>>> $(Q)$(RM) $@ >>>> $(compile-m) >>>> >>>> diff --git a/libubacktrace/arm/Makefile.arch >>>> b/libubacktrace/arm/Makefile.arch >>>> new file mode 100644 >>>> index 0000000..dab3637 >>>> --- /dev/null >>>> +++ b/libubacktrace/arm/Makefile.arch >>>> @@ -0,0 +1,21 @@ >>>> +# Makefile for uClibc (libubacktrace) >>>> +# >>>> +# Author: Khem Raj <raj.k...@gmail.com> >>>> + >>>> +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. >>>> +# >>>> + >>>> +libubacktrace_ARCH_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c >>>> +libubacktrace_ARCH_SRCS := $(addprefix >>>> $(libubacktrace_ARCH_DIR)/,$(libubacktrace_ARCH_SRC-y)) >>>> +libubacktrace_ARCH_OBJS := $(patsubst >>>> $(libubacktrace_ARCH_DIR)/%.c,$(libubacktrace_ARCH_OUT)/%.o,$(libubacktrace_ARCH_SRCS)) >>>> + >>>> +ifeq ($(DOPIC),y) >>>> +libubacktrace-a-y+=$(libubacktrace_ARCH_OBJS:.o=.os) >>>> +else >>>> +libubacktrace-a-y+=$(libubacktrace_ARCH_OBJS) >>>> +endif >>>> +libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.os) >>>> + >>>> +ifeq ($(CONFIG_ARM_EABI),y) >>>> +LIBGCC += $(shell $(CC) -print-file-name=libgcc_eh.a) >>>> +endif >>> with my proposed patch to move __aeabi_unwind_cpp_pr in uclibc_shared.a >>> should not be needed. >> lets make this change after you have installed that patch. For now I will >> keep it. >> > > so, do we agree on that patch ?
I havent really looked into yet. > > thanks, > carmelo > > _______________________________________________ > 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