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

Reply via email to