All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <saul.wold@intel.com>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Cc: liang.li@windriver.com
Subject: Re: [PATCH 1/2] recipes-kernel: make perf a standalone package
Date: Sat, 16 Jun 2012 10:34:36 -0700	[thread overview]
Message-ID: <4FDCC3AC.9030703@intel.com> (raw)
In-Reply-To: <40732c1c548493a69d437f3fbb125affa338b3e9.1339791495.git.bruce.ashfield@windriver.com>

On 06/15/2012 01:23 PM, Bruce Ashfield wrote:
> From: Liang Li<liang.li@windriver.com>
>
> 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<liang.li@windriver.com>
> Signed-off-by: Bruce Ashfield<bruce.ashfield@windriver.com>
> ---
>   meta/classes/kernel.bbclass          |    7 +----
>   meta/recipes-kernel/perf/perf_3.4.bb |   52 ++++++++++++++++++++++++++++++++++
>   2 files changed, 53 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 116e10b..02234df 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 0000000..9c8ceb0
> --- /dev/null
> +++ b/meta/recipes-kernel/perf/perf_3.4.bb
> @@ -0,0 +1,52 @@
> +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"
> +
This fails to find the correct file in the poky-lsb case, not sure what 
is going on yet, but here is the error from the autobuilder.

ERROR: Function failed: perf: LIC_FILES_CHKSUM points to an invalid 
file: 
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/sysroots/qemux86/kernel/source/COPYING
NOTE: package perf-3.4-r0: task do_configure: Failed
ERROR: Task 3336 
(/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-x86/build/meta/recipes-kernel/perf/perf_3.4.bb, 
do_configure) failed with exit code '1'

This can be reproduced by setting DISTRO="poky-lsb" in your local.conf

Please investigate, thanks

	Sau!


> +PR = "r0"
> +
> +BUILDPERF_libc-uclibc = "no"
> +
> +PERFDEPENDS = " \
> +virtual/${MLPREFIX}libc:do_populate_sysroot \
> +${MLPREFIX}elfutils:do_populate_sysroot \
> +${MLPREFIX}binutils:do_populate_sysroot \
> +"
> +RDEPENDS += "elfutils perl python"
> +
> +PROVIDES = "virtual/perf"
> +
> +S = "${STAGING_KERNEL_DIR}/source"
> +B = "${WORKDIR}/${BPN}-${PV}"
> +
> +EXTRA_OEMAKE = \
> +		'-C ${S}/tools/perf \
> +		O=${B} \
> +		CROSS_COMPILE=${TARGET_PREFIX} \
> +		ARCH=${TARGET_ARCH} \
> +		CC="${CC}" \
> +		AR="${AR}" \
> +		prefix=/usr \
> +		NO_GTK2=1 NO_NEWT=1 NO_DWARF=1 \
> +		'
> +
> +do_configure[depends] = "virtual/kernel:do_populate_sysroot"
> +
> +do_compile() {
> +	oe_runmake all
> +}
> +
> +do_compile[depends] = "${PERFDEPENDS}"
> +
> +do_install() {
> +	oe_runmake DESTDIR=${D} install
> +}
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +




  reply	other threads:[~2012-06-16 17:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-15 20:23 [PATCH 0/2] perf: make perf a standlone recipe Bruce Ashfield
2012-06-15 20:23 ` [PATCH 1/2] recipes-kernel: make perf a standalone package Bruce Ashfield
2012-06-16 17:34   ` Saul Wold [this message]
2012-06-16 17:47     ` Bruce Ashfield
2012-06-17  1:19     ` Bruce Ashfield
2012-06-17  3:16     ` Bruce Ashfield
2012-06-19 19:11       ` Bruce Ashfield
2012-06-15 20:23 ` [PATCH 2/2] recipes-kernel: remove linux-tools.inc Bruce Ashfield
2012-06-18  0:13 ` [PATCH 0/2] perf: make perf a standlone recipe Tom Zanussi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FDCC3AC.9030703@intel.com \
    --to=saul.wold@intel.com \
    --cc=liang.li@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.