perf: make perf a standlone recipe
v2 cover perf: make perf a standlone recipe
Richard/Saul,
Here is the re-work of the standalone perf build patch series. We isolated the errors that Saul was seeing on the autobuilder, and it stemmed from the misuse of the sources symlink back into the working kernel directory. As Richard pointed out, this would also break in a rm_work enabled build.
I've also removed parts of the standalone recipe that were inherited from its former life as a sub-part of the kernel recipes (the non-standard depends usage, etc) as part of this v2.
To build completely out of the sysroot patch 1/3 tells the story. We just need to save $kerndir/tools and $kerndir/lib from being removed during the pruning. As far as I'm concerned this is small and reasonable, since there are a few tools in the kernel source tree that are of interest and may want to be built and packaged separately.
The find now has a couple more prunes in it, which of course makes it a bit harder to read. If we really want, a new magic variable could be created where recipes/kernel could specify what should be saved in the sysroot .. but I didn't want to go there yet.
I've built and runtime tested things here, and everything looks sane.
original v1 text is below
-->-->-->-->-->-->-->-->-->-->-->-->
We've wanted to do this for some time, and now have finally split out perf from being a sub-part of the kernel packages into a standalone package that is built out of the kernel sources.
I've built and tested this by adding task-core-tools-profile to my IMAGE_INSTALL, and perf behaves just as it did before. I've also tested this on my oe-core checkout/repo, and it works fine there as well (but I'm using my easier to access contrib branch for now).
There's additional work that can be done more easily once this is split, so please consider this for inclusion, but I'd like to keep this initial version as an exact functional match as what was previously in place.
I've removed the old linux-tools.inc and updated any kernel recipes that I know about that have references to it. If there are other dependent recipes, they'll need to be updated.
From the patch itself:
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.
-->-->-->-->-->-->-->-->-->-->-->-->
This addresses [YOCTO #1552]
Cheers,
Bruce
The following changes since commit e0a70547069fe7e8a2d6bdaffc985fb172d46c31:
Jason Wessel (1):
perl: Allow perl to cross build and native build in a directory named "t"
are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/perf
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/perf
Bruce Ashfield (2):
kernel: save $kerndir/tools and $kerndir/lib from pruning
recipes-kernel: remove linux-tools.inc
Liang Li (1):
recipes-kernel: make perf a standalone package
meta/classes/kernel.bbclass | 9 +--- meta/recipes-kernel/linux/linux-tools.inc | 41 ------------------ meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.4.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.4.bb | 2 - meta/recipes-kernel/perf/perf_3.4.bb | 50 +++++++++++++++++++++++ 9 files changed, 52 insertions(+), 60 deletions(-) delete mode 100644 meta/recipes-kernel/linux/linux-tools.inc create mode 100644 meta/recipes-kernel/perf/perf_3.4.bb
PATCH v2 1/3 kernel: save $kerndir/tools and $kerndir/lib from pruning
The kernel source tree in the sysroot has all unecessary source code removed. The existing use case is to support module building out of the sysroot, but as more toolsa are moved into the kernel tree itself there are new use cases for the kernel sysroot source.
To avoid putting dependencies on the kernel, and to be able to individually build and package these tools out of the source tree, we can save $kerndir/tools and $kernddir/lib from being removed. This enables tools like perf to be built our of the kernel source in the sysroot, without significantly increasing the amount of source in the sysroot.
--- meta/classes/kernel.bbclass | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/classes/kernel.bbclass +1 -1
@@ -173,7 +173,7 @@ kernel_do_install() { # oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean make -C $kerneldir _mrproper_scripts - find $kerneldir -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; + find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \; # As of Linux kernel version 3.0.1, the clean target removes
Signature · 1 line
1.7.0.4
PATCH v2 2/3 recipes-kernel: make perf a standalone package
In reply to Bruce AshfieldFrom: Liang Li <[email protected]>
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.
--- 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
meta/classes/kernel.bbclass +1 -6
@@ -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}"
meta/recipes-kernel/perf/perf_3.4.bb new file +50 -0
50 lines not on this page · raw message
Signature · 1 line
1.7.0.4
Re: [PATCH 2/3] recipes-kernel: make perf a standalone package
Quoted 68 lines · Bruce Ashfield
From: Liang Li<[email protected]>
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.
Signed-off-by Liang Li<[email protected]>Signed-off-by Bruce Ashfield<[email protected]>--- 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
meta/classes/kernel.bbclass +1
-6@@ -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}"meta/recipes-kernel/perf/perf_3.4.bb new file +12
-0@@ -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"
meta/recipes-kernel/perf/perf_3.4.bb line 22
Quoted 10 lines
meta/recipes-kernel/perf/perf_3.4.bb new file +10
-0+ +BUILDPERF_libc-uclibc = "no" + +DEPENDS = "virtual/kernel \ + virtual/${MLPREFIX}libc \ + ${MLPREFIX}elfutils \ + ${MLPREFIX}binutils \ + " +RDEPENDS_${PN} += "elfutils perl python" +
Do you need to duplicated elfutils here?
And are both perl and python required on the runtime to use perf?
Can we package the perl and python bits independently? Does it make sense to do that? I have not used the kernel perf tools.
Sau!
Quoted 28 lines
meta/recipes-kernel/perf/perf_3.4.bb new file +28
-0+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}" +
Re: [PATCH 2/3] recipes-kernel: make perf a standalone package
Quoted 77 lines · Saul Wold
Quoted 76 lines · Bruce Ashfield
From: Liang Li<[email protected]>
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.
Signed-off-by Liang Li<[email protected]>Signed-off-by Bruce Ashfield<[email protected]>---
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
meta/classes/kernel.bbclass +0
-0@@ -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 inmodule_deps.values():
for i in l:
pkg =module_pattern%legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))meta/classes/kernel.bbclass +0
-0@@ -548,8 +548,3 @@ addtask deploy before do_build after do_install
EXPORT_FUNCTIONSdo_deploymeta/classes/kernel.bbclass +0
-5-# perf must be enabled in individual kernel recipes -PACKAGES =+ "perf-dbg perf" -FILES_perf = "${bindir}/* \ - ${libexecdir}" -FILES_perf-dbg = "${FILES_${PN}-dbg}"meta/recipes-kernel/perf/perf_3.4.bb new file +15
-0@@ -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" +
Quoted 8 lines
meta/recipes-kernel/perf/perf_3.4.bb line 22
Quoted 7 lines
meta/recipes-kernel/perf/perf_3.4.bb new file +7
-0+DEPENDS = "virtual/kernel \ + virtual/${MLPREFIX}libc \ + ${MLPREFIX}elfutils \ + ${MLPREFIX}binutils \ + " +RDEPENDS_${PN} += "elfutils perl python" +Do you need to duplicated elfutils here?
AFAIK yes. Since perf uses them on the target.
Quoted 2 lines
And are both perl and python required on the runtime to use perf?
Yes. With all the perf bindings, which is the plan, and one of the main points in pulling this out from the kernel itself.
Quoted 3 lines
Can we package the perl and python bits independently? Does it make sense to do that? I have not used the kernel perf tools.
That's down the road, TomZ is waiting for this to work on exactly that.
Bruce
Quoted 33 lines
Sau!
Quoted 28 lines
meta/recipes-kernel/perf/perf_3.4.bb new file +28
-0+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}" +
Re: [PATCH 2/3] recipes-kernel: make perf a standalone package
In reply to Bruce Ashfieldmeta/recipes-kernel/perf/perf_3.4.bb line 38
Quoted 11 lines · On Wednesday 20 June 2012 10:31:40 Bruce Ashfield wrote:
From: Liang Li <[email protected]>
...meta/recipes-kernel/perf/perf_3.4.bb new file +9
-0+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 \
Coincidentally, I've just noticed that the current (kernel integrated) perf package can sometimes depend on gtk+/glib-2.0 or not depending on whether these are available when the kernel is built. Presumably NO_GTK2=1 above disables gtk+ support and thus would prevent this?
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre
Re: [PATCH 2/3] recipes-kernel: make perf a standalone package
Quoted 17 lines · Paul Eggleton
meta/recipes-kernel/perf/perf_3.4.bb line 38
Quoted 11 lines · On Wednesday 20 June 2012 10:31:40 Bruce Ashfield wrote:
From: Liang Li<[email protected]>
...meta/recipes-kernel/perf/perf_3.4.bb new file +9
-0+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 \Coincidentally, I've just noticed that the current (kernel integrated) perf package can sometimes depend on gtk+/glib-2.0 or not depending on whether these are available when the kernel is built. Presumably NO_GTK2=1 above disables gtk+ support and thus would prevent this?
That was the plan. It hard disables it for now, and once we have a more flexible package, we can add some optional dependencies and features back into the equation.
Cheers,
Bruce
Quoted 4 lines
Cheers,
Paul
PATCH v2 3/3 recipes-kernel: remove linux-tools.inc
In reply to Bruce Ashfieldperf has been moved to a standalone package, making linux-tools.inc unecessary. It can now be removed and recipes that included it updated.
--- meta/recipes-kernel/linux/linux-tools.inc | 41 ----------------------- meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.4.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.4.bb | 2 - 7 files changed, 0 insertions(+), 53 deletions(-) delete mode 100644 meta/recipes-kernel/linux/linux-tools.inc
meta/recipes-kernel/linux/linux-tools.inc deleted +0 -41
@@ -1,41 +0,0 @@ -# included by kernel recipes if they want to build/provide -# perf functionality from their tree. - -BUILDPERF = "yes" -BUILDPERF_libc-uclibc = "no" -# perf requires binutils which is GPLv3 licensed, don't prevent the entire kernel -# being built if GPLv3 is in INCOMPATIBLE_LICENSE -python () { - if ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1): - # GPLv3, drop perf - d.setVar("BUILDPERF", "no") - d.setVar("PERFDEPENDS", "") -} - -do_compile_perf () { - if [ "${BUILDPERF}" = "yes" ]; then - oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1 - fi -} - -fakeroot do_install_perf () { - if [ "${BUILDPERF}" = "yes" ]; then - oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} DESTDIR=${D} install NO_NEWT=1 NO_DWARF=1 - fi -} - - -# perf tasks -addtask compile_perf after do_compile before do_install -addtask install_perf after do_install before do_package - -do_compile_perf[umask] = "022" -do_install_perf[umask] = "022" - -PERFDEPENDS = "virtual/${MLPREFIX}libc:do_populate_sysroot ${MLPREFIX}elfutils:do_populate_sysroot ${MLPREFIX}binutils:do_populate_sysroot" -PERFDEPENDS_libc-uclibc = "" -PERFRDEPENDS = "python perl elfutils" -PERFRDEPENDS_libc-uclibc = "" - -do_compile_perf[depends] = "${PERFDEPENDS}" -RDEPENDS_perf += "${PERFRDEPENDS}"
meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb +0 -2
@@ -27,5 +27,3 @@ KERNEL_FEATURES = "features/netfilter" KERNEL_FEATURES_append = " features/taskstats" KERNEL_FEATURES_append_qemux86 = " cfg/sound" KERNEL_FEATURES_append_qemux86-64 = " cfg/sound" - -require recipes-kernel/linux/linux-tools.inc
meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb +0 -2
@@ -28,5 +28,3 @@ KERNEL_FEATURES = "features/netfilter" KERNEL_FEATURES_append = " features/taskstats" KERNEL_FEATURES_append_qemux86 = " cfg/sound" KERNEL_FEATURES_append_qemux86-64 = " cfg/sound" - -require recipes-kernel/linux/linux-tools.inc
meta/recipes-kernel/linux/linux-yocto-rt_3.4.bb +0 -2
@@ -28,5 +28,3 @@ KERNEL_FEATURES = "features/netfilter" KERNEL_FEATURES_append = " features/taskstats" KERNEL_FEATURES_append_qemux86 = " cfg/sound" KERNEL_FEATURES_append_qemux86-64 = " cfg/sound" - -require recipes-kernel/linux/linux-tools.inc
meta/recipes-kernel/linux/linux-yocto_3.0.bb +0 -2
@@ -32,5 +32,3 @@ KERNEL_FEATURES = "features/netfilter" KERNEL_FEATURES_append = " features/taskstats" KERNEL_FEATURES_append_qemux86 = " cfg/sound" KERNEL_FEATURES_append_qemux86-64 = " cfg/sound" - -require linux-tools.inc
meta/recipes-kernel/linux/linux-yocto_3.2.bb +0 -2
@@ -32,5 +32,3 @@ KERNEL_FEATURES="features/netfilter" KERNEL_FEATURES_append=" features/taskstats" KERNEL_FEATURES_append_qemux86=" cfg/sound" KERNEL_FEATURES_append_qemux86-64=" cfg/sound" - -require linux-tools.inc
meta/recipes-kernel/linux/linux-yocto_3.4.bb +0 -2
@@ -34,5 +34,3 @@ KERNEL_REVISION_CHECKING="" KERNEL_FEATURES="features/netfilter" KERNEL_FEATURES_append_qemux86=" cfg/sound" KERNEL_FEATURES_append_qemux86-64=" cfg/sound" - -require recipes-kernel/linux/linux-tools.inc
Signature · 1 line
1.7.0.4
Saul Wold
AppliedQuoted 108 lines · Bruce Ashfield
Richard/Saul,
Here is the re-work of the standalone perf build patch series. We isolated the errors that Saul was seeing on the autobuilder, and it stemmed from the misuse of the sources symlink back into the working kernel directory. As Richard pointed out, this would also break in a
rm_workenabled build.I've also removed parts of the standalone recipe that were inherited from its former life as a sub-part of the kernel recipes (the non-standard depends usage, etc) as part of this v2.
To build completely out of the sysroot patch 1/3 tells the story. We just need to save $kerndir/tools and $kerndir/lib from being removed during the pruning. As far as I'm concerned this is small and reasonable, since there are a few tools in the kernel source tree that are of interest and may want to be built and packaged separately.
The find now has a couple more prunes in it, which of course makes it a bit harder to read. If we really want, a new magic variable could be created where recipes/kernel could specify what should be saved in the sysroot .. but I didn't want to go there yet.
I've built and runtime tested things here, and everything looks sane.
original v1 text is below
-->-->-->-->-->-->-->-->-->-->-->-->
We've wanted to do this for some time, and now have finally split out perf from being a sub-part of the kernel packages into a standalone package that is built out of the kernel sources.I've built and tested this by adding task-core-tools-profile to my
IMAGE_INSTALL, and perf behaves just as it did before. I've also tested this on my oe-core checkout/repo, and it works fine there as well (but I'm using my easier to access contrib branch for now).There's additional work that can be done more easily once this is split, so please consider this for inclusion, but I'd like to keep this initial version as an exact functional match as what was previously in place.
I've removed the old linux-tools.inc and updated any kernel recipes that I know about that have references to it. If there are other dependent recipes, they'll need to be updated.
From the patch itself:
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.
-->-->-->-->-->-->-->-->-->-->-->-->This addresses [YOCTO #1552]
cc Tom Zanussi<[email protected]>cc Liang Li<[email protected]>Cheers,
Bruce
The following changes since commit
e0a70547069fe7e8a2d6bdaffc985fb172d46c31:
Jason Wessel (1):
perl: Allow perl to cross build and native build in a directory named "t"are available in the git repository at:
git://git.pokylinux.org/poky-contribzedd/perf
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/perfBruce Ashfield (2):
kernel: save $kerndir/tools and $kerndir/lib from pruning
recipes-kernel: remove linux-tools.incLiang Li (1):
recipes-kernel: make perf a standalone packagemeta/classes/kernel.bbclass | 9 +--- meta/recipes-kernel/linux/linux-tools.inc | 41 ------------------ meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto-rt_3.4.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.0.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 - meta/recipes-kernel/linux/linux-yocto_3.4.bb | 2 - meta/recipes-kernel/perf/perf_3.4.bb | 50 +++++++++++++++++++++++ 9 files changed, 52 insertions(+), 60 deletions(-)
Quoted 10 lines
delete mode 100644 meta/recipes-kernel/linux/linux-tools.inc create mode 100644 meta/recipes-kernel/perf/perf_3.4.bb
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Merged into OE-Core
Thanks
Sau!