d3b58af9a8
The registers for ARM and ARM64 are enumerated using two enums that have the same name. In order to be able to import both headers, the name of one can be replaced using the C preprocessor like so: #define perf_event_arm_regs perf_event_arm64_regs #include <asm/perf_regs.h> #undef perf_event_arm_regs This patch updates all imports of ARM64's perf_regs.h in order to prevent the naming collision. Reviewed-by: Athira Jajeev <atrajeev@linux.vnet.ibm.com> Signed-off-by: German Gomez <german.gomez@arm.com> Tested-by: Athira Jajeev <atrajeev@linux.vnet.ibm.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: John Garry <john.garry@huawei.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-csky@vger.kernel.org Cc: linux-riscv@lists.infradead.org Link: https://lore.kernel.org/r/20211207180653.1147374-3-german.gomez@arm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
43 lines
1.4 KiB
C
43 lines
1.4 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* This file setups defines to compile arch specific binary from the
|
|
* generic one.
|
|
*
|
|
* The function 'LIBUNWIND__ARCH_REG_ID' name is set according to arch
|
|
* name and the definition of this function is included directly from
|
|
* 'arch/arm64/util/unwind-libunwind.c', to make sure that this function
|
|
* is defined no matter what arch the host is.
|
|
*
|
|
* Finally, the arch specific unwind methods are exported which will
|
|
* be assigned to each arm64 thread.
|
|
*/
|
|
|
|
#define REMOTE_UNWIND_LIBUNWIND
|
|
|
|
/* Define arch specific functions & regs for libunwind, should be
|
|
* defined before including "unwind.h"
|
|
*/
|
|
#define LIBUNWIND__ARCH_REG_ID(regnum) libunwind__arm64_reg_id(regnum)
|
|
#define LIBUNWIND__ARCH_REG_IP PERF_REG_ARM64_PC
|
|
#define LIBUNWIND__ARCH_REG_SP PERF_REG_ARM64_SP
|
|
|
|
#include "unwind.h"
|
|
#include "libunwind-aarch64.h"
|
|
#define perf_event_arm_regs perf_event_arm64_regs
|
|
#include <../../../../arch/arm64/include/uapi/asm/perf_regs.h>
|
|
#undef perf_event_arm_regs
|
|
#include "../../arch/arm64/util/unwind-libunwind.c"
|
|
|
|
/* NO_LIBUNWIND_DEBUG_FRAME is a feature flag for local libunwind,
|
|
* assign NO_LIBUNWIND_DEBUG_FRAME_AARCH64 to it for compiling arm64
|
|
* unwind methods.
|
|
*/
|
|
#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;
|