Re: [PATCH v7 14/14] perf callchain: Support aarch64 cross-platform

From: Jiri Olsa
Date: Wed Jun 01 2016 - 04:41:02 EST


On Tue, May 31, 2016 at 11:19:12AM +0000, He Kuang wrote:

SNIP

> diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> index 7746e09..fced833 100644
> --- a/tools/perf/util/Build
> +++ b/tools/perf/util/Build
> @@ -102,6 +102,7 @@ libperf-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o
> libperf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o
> libperf-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
> libperf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
> +libperf-$(CONFIG_LIBUNWIND_AARCH64) += libunwind/arm64.o
>
> libperf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
>
> diff --git a/tools/perf/util/libunwind/arm64.c b/tools/perf/util/libunwind/arm64.c
> new file mode 100644
> index 0000000..99c0d42
> --- /dev/null
> +++ b/tools/perf/util/libunwind/arm64.c
> @@ -0,0 +1,18 @@

also please add some comments in here describing how this file works
like that it setups defines to compile arch specific binary from the
generic one, which is then represented by the arm64_unwind_libunwind_ops,
which get assigned for each arm64 thread

or something along those lines

thanks,
jirka

> +#define REMOTE_UNWIND_LIBUNWIND
> +
> +#define LIBUNWIND__ARCH_REG_ID libunwind__arm64_reg_id
> +
> +#include "unwind.h"
> +#include "debug.h"
> +#include "libunwind-aarch64.h"
> +#include <../../../../arch/arm64/include/uapi/asm/perf_regs.h>
> +#include "../../arch/arm64/util/unwind-libunwind.c"
> +
> +#undef NO_LIBUNWIND_DEBUG_FRAME
> +#ifdef NO_LIBUNWIND_DEBUG_FRAME_AARCH64
> +#define NO_LIBUNWIND_DEBUG_FRAME
> +#endif
> +#include "util/unwind-libunwind-local.c"
> +
> +struct unwind_libunwind_ops *
> +arm64_unwind_libunwind_ops = &_unwind_libunwind_ops;

SNIP