Skip to contentSkip to conversation

perf tools, x86: Build perf on older user-space as well

PATCH New Ingo Molnar 1 participant 1 message Mar 13, 2012 perf events

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 perf tools, x86: Build perf on older user-space as well

On ancient systems I get this build failure:

util/../../../arch/x86/include/asm/unistd.h:67:29: error: asm/unistd_64.h: No such file or directory In file included from util/cache.h:7,
from builtin-test.c:8:
util/../perf.h: In function ‘sys_perf_event_open’:In file included from util/../perf.h:16 perf.h:170: error: ‘__NR_perf_event_open’ undeclared (first use in this function)

The reason is that this old system does not have the split unistd.h headers yet, from which to pick up the syscall definitions.

Add the syscall numbers to the already existing i386 and x86_64 blocks in perf.h, and also provide empty include file stubs.

With this patch perf builds and works fine on 5 years old user-space as well.

tools/perf/Makefile +2 -0
index fa04340..74fd7f8 100644
@@ -266,6 +266,8 @@ LIB_H += util/include/asm/uaccess.h
 LIB_H += util/include/dwarf-regs.h
 LIB_H += util/include/asm/dwarf2.h
 LIB_H += util/include/asm/cpufeature.h
+LIB_H += util/include/asm/unistd_32.h
+LIB_H += util/include/asm/unistd_64.h
 LIB_H += perf.h
 LIB_H += util/annotate.h
 LIB_H += util/cache.h
tools/perf/perf.h +6 -0
index eec392e..89e3355 100644
@@ -10,6 +10,9 @@ void get_term_dimensions(struct winsize *ws);
 #define rmb()		asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
 #define cpu_relax()	asm volatile("rep; nop" ::: "memory");
 #define CPUINFO_PROC	"model name"
+#ifndef __NR_perf_event_open
+# define __NR_perf_event_open 336
+#endif
 #endif
 
 #if defined(__x86_64__)
@@ -17,6 +20,9 @@ void get_term_dimensions(struct winsize *ws);
 #define rmb()		asm volatile("lfence" ::: "memory")
 #define cpu_relax()	asm volatile("rep; nop" ::: "memory");
 #define CPUINFO_PROC	"model name"
+#ifndef __NR_perf_event_open
+# define __NR_perf_event_open 298
+#endif
 #endif
 
 #ifdef __powerpc__
tools/perf/util/include/asm/unistd_32.h new file +1 -0
new file mode 100644
index 0000000..8b13789
@@ -0,0 +1 @@
+
tools/perf/util/include/asm/unistd_64.h new file +1 -0
new file mode 100644
index 0000000..8b13789
@@ -0,0 +1 @@
+