[PATCH] perf tools: fix build for various architectures

From: Mark Rutland
Date: Tue Nov 27 2012 - 07:16:29 EST


The UAPI changes broke the perf tool, and as of 3.7-rc7, it
still won't build for arm:

In file included from util/../perf.h:81:0,
from util/cache.h:7,
from perf.c:12:
util/../../../arch/arm/include/asm/unistd.h:16:29: fatal error: uapi/asm/unistd.h: No such file or directory
compilation terminated.
make: *** [perf.o] Error 1

It seems the perf tool build infrastructure can't map <uapi/*> paths,
and several architectures (arm, arm64, ia64, mips, parisc, powerpc,
s390) include <uapi/asm/unistd.h> from their <asm/unistd.h>.

This patch copies 77626081: "perf tools: Fix build on sparc." in simply
changing the path to use arch/arm/include/uapi/asm/unistd.h directly for
all of these cases.

I've tested this on arm, but I don't have the necessary toolchains to
check the other cases.

Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Kyle McMartin <kyle@xxxxxxxxxxx>
Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
---
tools/perf/perf.h | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index c50985e..b42fd6a 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -26,14 +26,14 @@ void get_term_dimensions(struct winsize *ws);
#endif

#ifdef __powerpc__
-#include "../../arch/powerpc/include/asm/unistd.h"
+#include "../../arch/powerpc/include/uapi/asm/unistd.h"
#define rmb() asm volatile ("sync" ::: "memory")
#define cpu_relax() asm volatile ("" ::: "memory");
#define CPUINFO_PROC "cpu"
#endif

#ifdef __s390__
-#include "../../arch/s390/include/asm/unistd.h"
+#include "../../arch/s390/include/uapi/asm/unistd.h"
#define rmb() asm volatile("bcr 15,0" ::: "memory")
#define cpu_relax() asm volatile("" ::: "memory");
#endif
@@ -50,7 +50,7 @@ void get_term_dimensions(struct winsize *ws);
#endif

#ifdef __hppa__
-#include "../../arch/parisc/include/asm/unistd.h"
+#include "../../arch/parisc/include/uapi/asm/unistd.h"
#define rmb() asm volatile("" ::: "memory")
#define cpu_relax() asm volatile("" ::: "memory");
#define CPUINFO_PROC "cpu"
@@ -71,14 +71,14 @@ void get_term_dimensions(struct winsize *ws);
#endif

#ifdef __ia64__
-#include "../../arch/ia64/include/asm/unistd.h"
+#include "../../arch/ia64/include/uapi/asm/unistd.h"
#define rmb() asm volatile ("mf" ::: "memory")
#define cpu_relax() asm volatile ("hint @pause" ::: "memory")
#define CPUINFO_PROC "model name"
#endif

#ifdef __arm__
-#include "../../arch/arm/include/asm/unistd.h"
+#include "../../arch/arm/include/uapi/asm/unistd.h"
/*
* Use the __kuser_memory_barrier helper in the CPU helper page. See
* arch/arm/kernel/entry-armv.S in the kernel source for details.
@@ -89,13 +89,13 @@ void get_term_dimensions(struct winsize *ws);
#endif

#ifdef __aarch64__
-#include "../../arch/arm64/include/asm/unistd.h"
+#include "../../arch/arm64/include/uapi/asm/unistd.h"
#define rmb() asm volatile("dmb ld" ::: "memory")
#define cpu_relax() asm volatile("yield" ::: "memory")
#endif

#ifdef __mips__
-#include "../../arch/mips/include/asm/unistd.h"
+#include "../../arch/mips/include/uapi/asm/unistd.h"
#define rmb() asm volatile( \
".set mips2\n\t" \
"sync\n\t" \
--
1.7.0.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/