[PATCH 29/29] perfcounters: updating kerneltop documentation

From: William Cohen
Date: Mon May 04 2009 - 11:45:33 EST


Hi,

I built the kernel-tip kernel from a git tree checkout successful. I have not
installed the kernel headers on the machine, so __NR_perf_counter_open is not
going to be defined in an installed include file. When I tried to build the the
user-space programs in Documentation/perf_counter:


$ make V=1 -C Documentation/perf_counter/
make: Entering directory
`/home/wcohen/kernel/mingo/linux-2.6/Documentation/perf_counter'
gcc -o builtin-record.o -c -g -O2 -Wall -DSHA1_HEADER='<openssl/sha.h>'
builtin-record.c
In file included from builtin-record.c:35:
perf.h: In function ‘sys_perf_counter_open’:
perf.h:53: error: ‘__NR_perf_counter_open’ undeclared (first use in this function)
perf.h:53: error: (Each undeclared identifier is reported only once
perf.h:53: error: for each function it appears in.)
make: *** [builtin-record.o] Error 1
make: Leaving directory
`/home/wcohen/kernel/mingo/linux-2.6/Documentation/perf_counter'

Is it possible to change the make so that it will compile without having
to install the kernel headers? I ended using the attached hack to make it use
the includes with the kernel. However, there is surely a better way to implement
this.

-Will


diff --git a/Documentation/perf_counter/Makefile b/Documentation/perf_counter/Makefile
index 481e4c2..3bc49bc 100644
--- a/Documentation/perf_counter/Makefile
+++ b/Documentation/perf_counter/Makefile
@@ -159,7 +159,7 @@ uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')

# CFLAGS and LDFLAGS are for the users to override from the command line.

-CFLAGS = -g -O2 -Wall
+CFLAGS = -g -O2 -Wall -I../../include -I../../arch/x86/include
LDFLAGS = -lpthread -lrt
ALL_CFLAGS = $(CFLAGS)
ALL_LDFLAGS = $(LDFLAGS)