On Tue, May 24, 2016 at 09:20:28AM +0000, He Kuang wrote:
> Support x86(32-bit) cross platform callchain unwind.
> 
> Signed-off-by: He Kuang <heku...@huawei.com>
> ---
>  .../perf/arch/x86/include/libunwind/libunwind-arch.h  | 18 ++++++++++++++++++
>  tools/perf/arch/x86/util/unwind-libunwind.c           | 19 
> ++++++++++++++-----
>  tools/perf/util/Build                                 |  6 ++++++
>  tools/perf/util/unwind-libunwind_common.c             |  6 ++++--
>  tools/perf/util/unwind.h                              |  5 +++++
>  5 files changed, 47 insertions(+), 7 deletions(-)
>  create mode 100644 tools/perf/arch/x86/include/libunwind/libunwind-arch.h
> 
> diff --git a/tools/perf/arch/x86/include/libunwind/libunwind-arch.h 
> b/tools/perf/arch/x86/include/libunwind/libunwind-arch.h
> new file mode 100644
> index 0000000..be8c675
> --- /dev/null
> +++ b/tools/perf/arch/x86/include/libunwind/libunwind-arch.h
> @@ -0,0 +1,18 @@
> +#ifndef _LIBUNWIND_ARCH_H
> +#define _LIBUNWIND_ARCH_H
> +
> +#include <libunwind-x86.h>
> +#include <../perf_regs.h>
> +#include <../../../../../../arch/x86/include/uapi/asm/perf_regs.h>
> +
> +#define LIBUNWIND_X86_32
> +int libunwind__x86_reg_id(int regnum);
> +
> +#define LIBUNWIND__ARCH_REG_ID libunwind__x86_reg_id
> +
> +#include <../../../x86/util/unwind-libunwind.c>
> +
> +#define UNWT_PREFIX  UNW_PASTE(UNW_PASTE(_U, x86), _)
> +#define UNWT_OBJ(fn) UNW_PASTE(UNWT_PREFIX, fn)

is there a reason for using libunwind define for the symbol prefix?
what's the '_U' and all those '__' for? why dont we use simple macro
for arch prefix?

this explanation would be great to have in those wrapper obects
I meantioned in earlier email:
    util/unwind-libunwind-local.c
    util/unwind-libunwind-x86_32.c
    util/unwind-libunwind-arm64.c


thanks,
jirka

Reply via email to