Message ID | 1484574253-30817-1-git-send-email-ross.burton@intel.com |
---|---|
State | Accepted |
Commit | 33d05772c30036e8d2bb2dc8928989bf98d388f1 |
Headers | show |
Series | [1/2] perf: use PACKAGECONFIG instead of hand-rolled logic | expand |
On 2017-01-16 8:44 AM, Ross Burton wrote: > PERF_FEATURES_ENABLE and perf_feature_enabled() was basically a poor man's clone > of PACKAGECONFIG, without the automatic handling of dependencies and configure > options. I think some of the parts pre-dated packageconfig capabilities, but yah, something that needed to get tossed in the bin. > > As part of the port to PACKAGECONFIG the options have been changed to remove the > perf- prefix, but are otherwise unchanged. > > Also remove BUILDPERF_libc_uclibc assignment as nothing in the metadata uses a > BUILDPERF variable. I applied the patches here, and was able to build a perf in my standard config. Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com> Bruce > > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > meta/recipes-kernel/perf/perf-features.inc | 22 ---------------------- > meta/recipes-kernel/perf/perf.bb | 26 +++++++++----------------- > 2 files changed, 9 insertions(+), 39 deletions(-) > delete mode 100644 meta/recipes-kernel/perf/perf-features.inc > > diff --git a/meta/recipes-kernel/perf/perf-features.inc b/meta/recipes-kernel/perf/perf-features.inc > deleted file mode 100644 > index a4402cc..0000000 > --- a/meta/recipes-kernel/perf/perf-features.inc > +++ /dev/null > @@ -1,22 +0,0 @@ > -PERF_FEATURES_ENABLE ?= "perf-scripting perf-tui" > - > -def perf_feature_enabled(feature, trueval, falseval, d): > - """ > - Check which perf features are enabled. > - > - The PERF_FEATURES_ENABLE variable lists the perf features to > - enable. Override it if you want something different from what's > - listed above, which is the default. If empty, the build won't > - enable any features (which may be exactly what you want, just a > - barebones perf without any extra baggage, what you get if you > - specify an empty feature list). > - > - Available perf features: > - perf-scripting: enable support for Perl and Python bindings > - perf-tui: enable support for the perf TUI (via libnewt) > - > - """ > - enabled_features = d.getVar("PERF_FEATURES_ENABLE") or "" > - if feature in enabled_features: > - return trueval > - return falseval > diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb > index cfbe628..8b5028e 100644 > --- a/meta/recipes-kernel/perf/perf.bb > +++ b/meta/recipes-kernel/perf/perf.bb > @@ -10,24 +10,21 @@ LICENSE = "GPLv2" > > PR = "r9" > > -require perf-features.inc > - > BUILDPERF_libc-uclibc = "no" > > +PACKAGECONFIG ??= "scripting tui" > +PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python" > # gui support was added with kernel 3.6.35 > # since 3.10 libnewt was replaced by slang > # to cover a wide range of kernel we add both dependencies > -TUI_DEPENDS = "${@perf_feature_enabled('perf-tui', 'libnewt slang', '',d)}" > -SCRIPTING_DEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl python', '',d)}" > -LIBUNWIND_DEPENDS = "${@perf_feature_enabled('perf-libunwind', 'libunwind', '',d)}" > +PACKAGECONFIG[tui] = ",NO_NEWT=1,libnewt slang" > +PACKAGECONFIG[libunwind] = ",NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1,libunwind" > +PACKAGECONFIG[libnuma] = ",NO_LIBNUMA=1" > > DEPENDS = " \ > virtual/${MLPREFIX}libc \ > ${MLPREFIX}elfutils \ > ${MLPREFIX}binutils \ > - ${TUI_DEPENDS} \ > - ${SCRIPTING_DEPENDS} \ > - ${LIBUNWIND_DEPENDS} \ > bison flex xz \ > xmlto-native \ > asciidoc-native \ > @@ -61,11 +58,6 @@ inherit kernelsrc > B = "${WORKDIR}/${BPN}-${PV}" > SPDX_S = "${S}/tools/perf" > > -SCRIPTING_DEFINES = "${@perf_feature_enabled('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}" > -TUI_DEFINES = "${@perf_feature_enabled('perf-tui', '', 'NO_NEWT=1',d)}" > -LIBUNWIND_DEFINES = "${@perf_feature_enabled('perf-libunwind', '', 'NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1',d)}" > -LIBNUMA_DEFINES = "${@perf_feature_enabled('perf-libnuma', '', 'NO_LIBNUMA=1',d)}" > - > # The LDFLAGS is required or some old kernels fails due missing > # symbols and this is preferred than requiring patches to every old > # supported kernel. > @@ -82,8 +74,8 @@ EXTRA_OEMAKE = '\ > EXTRA_CFLAGS="-ldw" \ > EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \ > perfexecdir=${libexecdir} \ > - NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${LIBUNWIND_DEFINES} \ > - ${SCRIPTING_DEFINES} ${LIBNUMA_DEFINES} \ > + NO_GTK2=1 NO_DWARF=1 \ > + ${PACKAGECONFIG_CONFARGS} \ > ' > > EXTRA_OEMAKE += "\ > @@ -116,7 +108,7 @@ do_install() { > unset CFLAGS > oe_runmake install > # we are checking for this make target to be compatible with older perf versions > - if [ "${@perf_feature_enabled('perf-scripting', 1, 0, d)}" = "1" ] && grep -q install-python_ext ${S}/tools/perf/Makefile*; then > + if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then > oe_runmake DESTDIR=${D} install-python_ext > fi > } > @@ -225,7 +217,7 @@ RDEPENDS_${PN}-python =+ "bash python python-modules" > RDEPENDS_${PN}-perl =+ "bash perl perl-modules" > RDEPENDS_${PN}-tests =+ "python" > > -RSUGGESTS_SCRIPTING = "${@perf_feature_enabled('perf-scripting', '${PN}-perl ${PN}-python', '',d)}" > +RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG', 'scripting', '${PN}-perl ${PN}-python', '',d)}" > RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}" > > #FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core /usr/lib64/traceevent ${libdir}/traceevent" > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff --git a/meta/recipes-kernel/perf/perf-features.inc b/meta/recipes-kernel/perf/perf-features.inc deleted file mode 100644 index a4402cc..0000000 --- a/meta/recipes-kernel/perf/perf-features.inc +++ /dev/null @@ -1,22 +0,0 @@ -PERF_FEATURES_ENABLE ?= "perf-scripting perf-tui" - -def perf_feature_enabled(feature, trueval, falseval, d): - """ - Check which perf features are enabled. - - The PERF_FEATURES_ENABLE variable lists the perf features to - enable. Override it if you want something different from what's - listed above, which is the default. If empty, the build won't - enable any features (which may be exactly what you want, just a - barebones perf without any extra baggage, what you get if you - specify an empty feature list). - - Available perf features: - perf-scripting: enable support for Perl and Python bindings - perf-tui: enable support for the perf TUI (via libnewt) - - """ - enabled_features = d.getVar("PERF_FEATURES_ENABLE") or "" - if feature in enabled_features: - return trueval - return falseval diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index cfbe628..8b5028e 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -10,24 +10,21 @@ LICENSE = "GPLv2" PR = "r9" -require perf-features.inc - BUILDPERF_libc-uclibc = "no" +PACKAGECONFIG ??= "scripting tui" +PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python" # gui support was added with kernel 3.6.35 # since 3.10 libnewt was replaced by slang # to cover a wide range of kernel we add both dependencies -TUI_DEPENDS = "${@perf_feature_enabled('perf-tui', 'libnewt slang', '',d)}" -SCRIPTING_DEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl python', '',d)}" -LIBUNWIND_DEPENDS = "${@perf_feature_enabled('perf-libunwind', 'libunwind', '',d)}" +PACKAGECONFIG[tui] = ",NO_NEWT=1,libnewt slang" +PACKAGECONFIG[libunwind] = ",NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1,libunwind" +PACKAGECONFIG[libnuma] = ",NO_LIBNUMA=1" DEPENDS = " \ virtual/${MLPREFIX}libc \ ${MLPREFIX}elfutils \ ${MLPREFIX}binutils \ - ${TUI_DEPENDS} \ - ${SCRIPTING_DEPENDS} \ - ${LIBUNWIND_DEPENDS} \ bison flex xz \ xmlto-native \ asciidoc-native \ @@ -61,11 +58,6 @@ inherit kernelsrc B = "${WORKDIR}/${BPN}-${PV}" SPDX_S = "${S}/tools/perf" -SCRIPTING_DEFINES = "${@perf_feature_enabled('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}" -TUI_DEFINES = "${@perf_feature_enabled('perf-tui', '', 'NO_NEWT=1',d)}" -LIBUNWIND_DEFINES = "${@perf_feature_enabled('perf-libunwind', '', 'NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1',d)}" -LIBNUMA_DEFINES = "${@perf_feature_enabled('perf-libnuma', '', 'NO_LIBNUMA=1',d)}" - # The LDFLAGS is required or some old kernels fails due missing # symbols and this is preferred than requiring patches to every old # supported kernel. @@ -82,8 +74,8 @@ EXTRA_OEMAKE = '\ EXTRA_CFLAGS="-ldw" \ EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \ perfexecdir=${libexecdir} \ - NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${LIBUNWIND_DEFINES} \ - ${SCRIPTING_DEFINES} ${LIBNUMA_DEFINES} \ + NO_GTK2=1 NO_DWARF=1 \ + ${PACKAGECONFIG_CONFARGS} \ ' EXTRA_OEMAKE += "\ @@ -116,7 +108,7 @@ do_install() { unset CFLAGS oe_runmake install # we are checking for this make target to be compatible with older perf versions - if [ "${@perf_feature_enabled('perf-scripting', 1, 0, d)}" = "1" ] && grep -q install-python_ext ${S}/tools/perf/Makefile*; then + if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then oe_runmake DESTDIR=${D} install-python_ext fi } @@ -225,7 +217,7 @@ RDEPENDS_${PN}-python =+ "bash python python-modules" RDEPENDS_${PN}-perl =+ "bash perl perl-modules" RDEPENDS_${PN}-tests =+ "python" -RSUGGESTS_SCRIPTING = "${@perf_feature_enabled('perf-scripting', '${PN}-perl ${PN}-python', '',d)}" +RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG', 'scripting', '${PN}-perl ${PN}-python', '',d)}" RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}" #FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core /usr/lib64/traceevent ${libdir}/traceevent"
PERF_FEATURES_ENABLE and perf_feature_enabled() was basically a poor man's clone of PACKAGECONFIG, without the automatic handling of dependencies and configure options. As part of the port to PACKAGECONFIG the options have been changed to remove the perf- prefix, but are otherwise unchanged. Also remove BUILDPERF_libc_uclibc assignment as nothing in the metadata uses a BUILDPERF variable. Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/recipes-kernel/perf/perf-features.inc | 22 ---------------------- meta/recipes-kernel/perf/perf.bb | 26 +++++++++----------------- 2 files changed, 9 insertions(+), 39 deletions(-) delete mode 100644 meta/recipes-kernel/perf/perf-features.inc -- 2.8.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core