summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-01-06 05:22:47 (GMT)
committer Peter Korsgaard <jacmet@sunsite.dk>2013-01-07 20:40:20 (GMT)
commit1727e89e9a6076ac81235a9377b749606e23d110 (patch)
treebd95bf5f0fb7ca26537214fe332c70ac3dbc7dc8
parent69030ca5c9324a36ecaf55aa3b23bfa5443b2c8f (diff)
downloadbuildroot-1727e89e9a6076ac81235a9377b749606e23d110.tar.gz
buildroot-1727e89e9a6076ac81235a9377b749606e23d110.tar.bz2
perf: add kernel version checks
perf is only available since kernel 2.6.31, so if we can't find tools/perf/Makefile, error out and tell the user about this. perf without libelf can only be built since kernel 3.7, so error out and tell the user about this if he's trying to build perf from a < 3.7 kernel without libelf. Unfortunately, those tests can only be build-time checks as we either need to know the real kernel version (i.e, using LINUX_VERSION would not be correct as it can be a Git commit ID, or Git tag), or have access to the kernel sources themselves. So we can't prevent those invalid situations at the configuration, we can only nicely tell the user at build time. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r--package/perf/perf.mk12
1 files changed, 12 insertions, 0 deletions
diff --git a/package/perf/perf.mk b/package/perf/perf.mk
index eed30a2..4356f5d 100644
--- a/package/perf/perf.mk
+++ b/package/perf/perf.mk
@@ -28,6 +28,18 @@ else
endif
define PERF_BUILD_CMDS
+ $(Q)if test ! -f $(LINUX_DIR)/tools/perf/Makefile ; then \
+ echo "Your kernel version is too old and does not have the perf tool." ; \
+ echo "At least kernel 2.6.31 must be used." ; \
+ exit 1 ; \
+ fi
+ $(Q)if test "$(BR2_PACKAGE_ELFUTILS)" = "" ; then \
+ if ! grep -q NO_LIBELF $(LINUX_DIR)/tools/perf/Makefile ; then \
+ echo "The perf tool in your kernel cannot be built without libelf." ; \
+ echo "Either upgrade your kernel to >= 3.7, or enable the elfutils package." ; \
+ exit 1 ; \
+ fi \
+ fi
$(MAKE) -C $(LINUX_DIR)/tools/perf \
$(PERF_MAKE_FLAGS) O=$(@D)
endef