Skip to contentSkip to conversation

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

tip:perf/urgent tip-bot for Ingo Molnar 1 participant 1 message Mar 14, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw
Commit-ID:  eae7a755ee81129370c8f555b0d5672e6673735d
Gitweb:     http://git.kernel.org/tip/eae7a755ee81129370c8f555b0d5672e6673735d
Author:     Ingo Molnar <[email protected]>
AuthorDate: Wed, 14 Mar 2012 12:42:34 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Wed, 14 Mar 2012 12:42:34 -0300

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 ++
 tools/perf/perf.h                                  |    6 ++++++
 .../perf/util/include/asm/unistd_32.h              |    0
 .../perf/util/include/asm/unistd_64.h              |    0
 4 files changed, 8 insertions(+), 0 deletions(-)
tools/perf/Makefile +2 -0
index 7c12650..8a4b9bc 100644
@@ -249,6 +249,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 16e7d20..3afa39a 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 renamed from arch/microblaze/include/asm/auxvec.h +0 -0
similarity index 100%
copy from arch/microblaze/include/asm/auxvec.h
copy to tools/perf/util/include/asm/unistd_32.h
tools/perf/util/include/asm/unistd_64.h renamed from arch/microblaze/include/asm/auxvec.h +0 -0
similarity index 100%
copy from arch/microblaze/include/asm/auxvec.h
copy to tools/perf/util/include/asm/unistd_64.h