From 6b9c19140cd3c75c9862b22febb17af59930d865 Mon Sep 17 00:00:00 2001 From: Liang Li Date: Wed, 20 Jun 2012 10:31:40 -0400 Subject: 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 Signed-off-by: Bruce Ashfield Signed-off-by: Richard Purdie --- meta/classes/kernel.bbclass | 7 +---- meta/recipes-kernel/perf/perf_3.4.bb | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-kernel/perf/perf_3.4.bb 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 () { metapkg = "kernel-modules" d.setVar('ALLOW_EMPTY_' + metapkg, "1") d.setVar('FILES_' + metapkg, "") - blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'perf', 'perf-dbg', 'kernel-misc' ] + blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'kernel-misc' ] for l in module_deps.values(): for i in l: 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 EXPORT_FUNCTIONS do_deploy -# perf must be enabled in individual kernel recipes -PACKAGES =+ "perf-dbg perf" -FILES_perf = "${bindir}/* \ - ${libexecdir}" -FILES_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 @@ +SUMMARY = "Performance analysis tools for Linux" +DESCRIPTION = "Performance counters for Linux are a new kernel-based \ +subsystem that provide a framework for all things \ +performance analysis. It covers hardware level \ +(CPU/PMU, Performance Monitoring Unit) features \ +and software features (software counters, tracepoints) \ +as well." + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +PR = "r0" + +BUILDPERF_libc-uclibc = "no" + +DEPENDS = "virtual/kernel \ + virtual/${MLPREFIX}libc \ + ${MLPREFIX}elfutils \ + ${MLPREFIX}binutils \ + " +RDEPENDS_${PN} += "elfutils perl python" + +PROVIDES = "virtual/perf" + +inherit kernel-arch + +S = "${STAGING_KERNEL_DIR}" +B = "${WORKDIR}/${BPN}-${PV}" + +EXTRA_OEMAKE = \ + '-C ${S}/tools/perf \ + O=${B} \ + CROSS_COMPILE=${TARGET_PREFIX} \ + ARCH=${ARCH} \ + CC="${CC}" \ + AR="${AR}" \ + prefix=/usr \ + NO_GTK2=1 NO_NEWT=1 NO_DWARF=1 \ + ' + +do_compile() { + oe_runmake all +} + +do_install() { + oe_runmake DESTDIR=${D} install +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + -- cgit v1.2.3-54-g00ecf