[tip:perf/core] tools: Add copy of perf_event.h to tools/include/linux/

From: tip-bot for Arnaldo Carvalho de Melo
Date: Wed Jul 13 2016 - 03:15:46 EST


Commit-ID: c4b6014e8bb0c8d47fe5c71ebc604f31091e5d3f
Gitweb: http://git.kernel.org/tip/c4b6014e8bb0c8d47fe5c71ebc604f31091e5d3f
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
AuthorDate: Mon, 11 Jul 2016 10:28:48 -0300
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Tue, 12 Jul 2016 15:20:31 -0300

tools: Add copy of perf_event.h to tools/include/linux/

We shouldn't use headers from the kernel sources directly, instead we
should use the system's headers or in cases where that isn't possible,
like with perf_event.h, where the introduction of kernel features such
as perf_event_attr.{write_backwards,sample_max_stack} and
PERF_EVENT_IOC_PAUSE_OUTPUT take some time to become available in
/usr/include/linux/perf_event.h we need a copy.

Do it and check for source code drift, emitting a warning when changes
are detected.

Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-v6aks5un3s5pehory6f42nrl@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
{include => tools/include}/uapi/linux/perf_event.h | 0
tools/perf/MANIFEST | 3 +--
tools/perf/Makefile.perf | 3 +++
tools/perf/config/Makefile | 1 +
4 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
similarity index 100%
copy from include/uapi/linux/perf_event.h
copy to tools/include/uapi/linux/perf_event.h
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index 2bd8c31..0b1ebf3 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -54,6 +54,7 @@ tools/include/linux/hash.h
tools/include/linux/kernel.h
tools/include/linux/list.h
tools/include/linux/log2.h
+tools/include/uapi/linux/perf_event.h
tools/include/linux/poison.h
tools/include/linux/rbtree.h
tools/include/linux/rbtree_augmented.h
@@ -66,7 +67,6 @@ include/asm-generic/bitops/const_hweight.h
include/asm-generic/bitops/fls64.h
include/asm-generic/bitops/__fls.h
include/asm-generic/bitops/fls.h
-include/linux/perf_event.h
include/linux/list.h
include/linux/hash.h
include/linux/stringify.h
@@ -79,7 +79,6 @@ arch/*/lib/memset*.S
arch/*/include/asm/*features.h
include/linux/poison.h
include/linux/hw_breakpoint.h
-include/uapi/linux/perf_event.h
include/uapi/linux/bpf.h
include/uapi/linux/bpf_common.h
include/uapi/linux/const.h
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index d0a2cb1..5e5f8cb 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -345,6 +345,9 @@ export srctree OUTPUT RM CC LD AR CFLAGS V BISON FLEX AWK
include $(srctree)/tools/build/Makefile.include

$(PERF_IN): prepare FORCE
+ @(test -f ../../include/uapi/linux/perf_event.h && ( \
+ (diff -B ../include/uapi/linux/perf_event.h ../../include/uapi/linux/perf_event.h >/dev/null) \
+ || echo "Warning: tools/include/uapi/linux/perf_event.h differs from kernel" >&2 )) || true
$(Q)$(MAKE) $(build)=perf

$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(LIBTRACEEVENT_DYNAMIC_LIST)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 7d2ea69..bbb2210 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -206,6 +206,7 @@ endif

CFLAGS += -I$(src-perf)/util/include
CFLAGS += -I$(src-perf)/arch/$(ARCH)/include
+CFLAGS += -I$(srctree)/tools/include/uapi
CFLAGS += -I$(srctree)/tools/include/
CFLAGS += -I$(srctree)/arch/$(ARCH)/include/uapi
CFLAGS += -I$(srctree)/arch/$(ARCH)/include