summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Li <liang.li@windriver.com>2012-06-20 10:31:40 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-21 13:03:04 +0100
commit6b9c19140cd3c75c9862b22febb17af59930d865 (patch)
treefa38a45709816f94726c78621998642ad7180d66
parenta5b568eb372ac155718a8700da5e7b3e2ae6e9ce (diff)
downloadpoky-6b9c19140cd3c75c9862b22febb17af59930d865.tar.gz
recipes-kernel: make perf a standalone package
perf has been coupled to the kernel packages via kernel.bbclass. While maintaining the build of perf out of the kernel source tree is desired the package coupling has proved to be awkward in several situations such as: - when a kernel recipe doesn't want to build/provide perf - when licensing of dependencies would prohibit perf and hence the kernel from being built. To solve some of these problems, this recipe is the extraction of the linux-tools.inc provided perf compilation into a standalone perf recipe that builds out of the kernel source, but is otherwise independent. No new functionality is provided above what the linux-tools.inc variant provided, but the separate recipe provides baseline for adding new functionality. (From OE-Core rev: ab883d0c1a05bd99e97e5d71bc7bed05cb1ae8c8) Signed-off-by: Liang Li <liang.li@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel.bbclass7
-rw-r--r--meta/recipes-kernel/perf/perf_3.4.bb50
2 files changed, 51 insertions, 6 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index a80ef9c0a8..31e633b812 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -469,7 +469,7 @@ python populate_packages_prepend () {
469 metapkg = "kernel-modules" 469 metapkg = "kernel-modules"
470 d.setVar('ALLOW_EMPTY_' + metapkg, "1") 470 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
471 d.setVar('FILES_' + metapkg, "") 471 d.setVar('FILES_' + metapkg, "")
472 blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'perf', 'perf-dbg', 'kernel-misc' ] 472 blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'kernel-misc' ]
473 for l in module_deps.values(): 473 for l in module_deps.values():
474 for i in l: 474 for i in l:
475 pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) 475 pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))
@@ -548,8 +548,3 @@ addtask deploy before do_build after do_install
548 548
549EXPORT_FUNCTIONS do_deploy 549EXPORT_FUNCTIONS do_deploy
550 550
551# perf must be enabled in individual kernel recipes
552PACKAGES =+ "perf-dbg perf"
553FILES_perf = "${bindir}/* \
554 ${libexecdir}"
555FILES_perf-dbg = "${FILES_${PN}-dbg}"
diff --git a/meta/recipes-kernel/perf/perf_3.4.bb b/meta/recipes-kernel/perf/perf_3.4.bb
new file mode 100644
index 0000000000..997beb4aef
--- /dev/null
+++ b/meta/recipes-kernel/perf/perf_3.4.bb
@@ -0,0 +1,50 @@
1SUMMARY = "Performance analysis tools for Linux"
2DESCRIPTION = "Performance counters for Linux are a new kernel-based \
3subsystem that provide a framework for all things \
4performance analysis. It covers hardware level \
5(CPU/PMU, Performance Monitoring Unit) features \
6and software features (software counters, tracepoints) \
7as well."
8
9LICENSE = "GPLv2"
10LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
11
12PR = "r0"
13
14BUILDPERF_libc-uclibc = "no"
15
16DEPENDS = "virtual/kernel \
17 virtual/${MLPREFIX}libc \
18 ${MLPREFIX}elfutils \
19 ${MLPREFIX}binutils \
20 "
21RDEPENDS_${PN} += "elfutils perl python"
22
23PROVIDES = "virtual/perf"
24
25inherit kernel-arch
26
27S = "${STAGING_KERNEL_DIR}"
28B = "${WORKDIR}/${BPN}-${PV}"
29
30EXTRA_OEMAKE = \
31 '-C ${S}/tools/perf \
32 O=${B} \
33 CROSS_COMPILE=${TARGET_PREFIX} \
34 ARCH=${ARCH} \
35 CC="${CC}" \
36 AR="${AR}" \
37 prefix=/usr \
38 NO_GTK2=1 NO_NEWT=1 NO_DWARF=1 \
39 '
40
41do_compile() {
42 oe_runmake all
43}
44
45do_install() {
46 oe_runmake DESTDIR=${D} install
47}
48
49PACKAGE_ARCH = "${MACHINE_ARCH}"
50