[OE-core] [PATCH 2/3] perf: add arch-specific perf-scripting feature

Saul Wold sgw at linux.intel.com
Sun Jul 8 22:00:29 UTC 2012


On 07/06/2012 01:29 PM, tom.zanussi at intel.com wrote:
> From: Tom Zanussi <tom.zanussi at intel.com>
>
> Add a new architecture-specific feature named 'perf-scripting'.
> Adding this into the perf_features_by_arch table in perf.inc for a
> given arch will enable perf scripting on a target built for that arch,
> which will turn on all the language bindings currently aavailable in
> perf (Perl and Python), if perf is included in an image.
>
> If 'perf-scripting' isn't named as a feature (the default), all perf
> language bindings will be disabled and unavailable.
>
> Signed-off-by: Tom Zanussi <tom.zanussi at intel.com>
> ---
>   meta/recipes-kernel/perf/perf_3.4.bb |   12 +++++++++---
>   1 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-kernel/perf/perf_3.4.bb b/meta/recipes-kernel/perf/perf_3.4.bb
> index d494243..a79e9e6 100644
> --- a/meta/recipes-kernel/perf/perf_3.4.bb
> +++ b/meta/recipes-kernel/perf/perf_3.4.bb
> @@ -9,7 +9,7 @@ as well."
>   LICENSE = "GPLv2"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
>
> -PR = "r1"
> +PR = "r2"
>
>   require perf.inc
>
> @@ -21,7 +21,8 @@ DEPENDS = "virtual/kernel \
>              ${MLPREFIX}binutils \
>             "
>
> -RDEPENDS_${PN} += "elfutils perl perl-modules python"
> +SCRIPTING_RDEPENDS = "${@perf_arch_supports_feature('perf-scripting', 'perl perl-modules python', '',d)}"
> +RDEPENDS_${PN} += "elfutils ${SCRIPTING_RDEPENDS}"
>
>   PROVIDES = "virtual/perf"
>
> @@ -45,6 +46,8 @@ export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version
>   S = "${STAGING_KERNEL_DIR}"
>   B = "${WORKDIR}/${BPN}-${PV}"
>
> +SCRIPTING_DEFINES = "${@perf_arch_supports_feature('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}"
> +
>   EXTRA_OEMAKE = \
>   		'-C ${S}/tools/perf \
>   		O=${B} \
> @@ -53,7 +56,7 @@ EXTRA_OEMAKE = \
>   		CC="${CC}" \
>   		AR="${AR}" \
>   		prefix=/usr \
> -		NO_GTK2=1 NO_NEWT=1 NO_DWARF=1 \
> +		NO_GTK2=1 NO_NEWT=1 NO_DWARF=1 ${SCRIPTING_DEFINES} \
>   		'
>
>   do_compile() {
> @@ -62,6 +65,9 @@ do_compile() {
>
>   do_install() {
>   	oe_runmake DESTDIR=${D} install
> +	if [ "${@perf_arch_supports_feature('perf-scripting', 1, 0, d)}" = "1" ]; then
> +		oe_runmake DESTDIR=${D} install-python_ext
> +	fi
>   }
>
>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>

Tom,

I am not sure this one is working correctly, I this set of 3 in a build 
and it failed, so I bicested down to this patch.  I am still seeing the 
setup.py: Permission denied problem:
> | install scripts/python/bin/* -t '/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/perf-3.4-r3/image/usr/libexec/perf-core/scripts/python/bin'
> | make: Leaving directory `/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/sysroots/qemux86-64/usr/src/kernel/tools/perf'
> | NOTE: make -j 16 -C /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/sysroots/qemux86-64/usr/src/kernel/tools/perf O=/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/perf-3.4-r3/perf-3.4 CROSS_COMPILE=x86_64-poky-linux- ARCH=x86 CC=x86_64-poky-linux-gcc    -m64 --sysroot=/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/sysroots/qemux86-64 AR=x86_64-poky-linux-ar prefix=/usr NO_GTK2=1 NO_DWARF=1 DESTDIR=/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/perf-3.4-r3/image install-python_ext
> | make: Entering directory `/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/sysroots/qemux86-64/usr/src/kernel/tools/perf'
> | util/setup.py --quiet install --root='//srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/perf-3.4-r3/image'
> | make: execvp: util/setup.py: Permission denied
> | make: *** [install-python_ext] Error 127
> | make: Leaving directory `/srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/sysroots/qemux86-64/usr/src/kernel/tools/perf'
> | ERROR: oe_runmake failed
> | ERROR: Function failed: do_install (see /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/perf-3.4-r3/temp/log.do_install.6037 for further information)


Sau!





More information about the Openembedded-core mailing list