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

Hekuang
2016-06-01T10:01:11Z

在 2016/6/1 16:40, Jiri Olsa 写道:
> 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
ok
>> +#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
>