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 ? thanks, carmelo _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc