summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2014-03-12 20:30:40 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-21 12:05:29 +0000
commitc1b5a262c0201faf2c6bf545d6acb32dfe383ba3 (patch)
tree34fc43f62760f48f1e4362c4248c78902165d72a /meta
parent306335b13fedc18cf03da1c2a68e97c01eb59075 (diff)
downloadopenembedded-core-c1b5a262c0201faf2c6bf545d6acb32dfe383ba3.tar.gz
openembedded-core-c1b5a262c0201faf2c6bf545d6acb32dfe383ba3.tar.bz2
openembedded-core-c1b5a262c0201faf2c6bf545d6acb32dfe383ba3.zip
perf: add libexec and traceevent to packages
Recent versions of perf may install files into /usr/libexec/perf-core and in /usr/lib/traceevent. To avoid packaging QA errors, we add these two directories to the FILES variables. We also add: INHIBIT_PACKAGE_DEBUG_SPLIT="1" to avoid the following issue (due to a trailing / being removed): ERROR: debugedit failed with exit code 256 ... debugedit: canonicalization unexpectedly shrank by one character And finally, we must ensure that the traceevent libraries are installed to the proper multilib library path. If building some multlibs, the incorrect library path will be selected by perf, since it triggers via: ifeq ($(ARCH),x86_64) (or similiar mechanism per arch). In a 32 bit build, with a 64 bit multilib, the arch won't match and the detection of a 64 bit build (and library) are not exected. To ensure that libraries are installed to the correct location, we can make the substitution in the config/Makefile. For non multilib builds, this has no impact. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-kernel/perf/perf.bb17
1 files changed, 16 insertions, 1 deletions
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 56576d5d65..9dfccdfd60 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -120,6 +120,19 @@ do_install() {
do_configure_prepend () {
#kernels before 3.1 do not support WERROR env variable
sed -i 's,-Werror ,,' ${S}/tools/perf/Makefile
+ if [ -e "${S}/tools/perf/config/Makefile" ]; then
+ sed -i 's,-Werror ,,' ${S}/tools/perf/config/Makefile
+ fi
+
+ # If building a multlib based perf, the incorrect library path will be
+ # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In a 32 bit
+ # build, with a 64 bit multilib, the arch won't match and the detection of a
+ # 64 bit build (and library) are not exected. To ensure that libraries are
+ # installed to the correct location, we can make the substitution in the
+ # config/Makefile. For non multilib builds, this has no impact.
+ if [ -e "${S}/tools/perf/config/Makefile" ]; then
+ sed -i 's,libdir = $(prefix)/$(lib),libdir = $(prefix)/${baselib},' ${S}/tools/perf/config/Makefile
+ fi
}
python do_package_prepend() {
@@ -128,6 +141,8 @@ python do_package_prepend() {
PACKAGE_ARCH = "${MACHINE_ARCH}"
-FILES_${PN} += "${libexecdir}/perf-core"
+FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core ${libdir}/traceevent"
FILES_${PN}-dbg += "${libdir}/python*/site-packages/.debug"
FILES_${PN} += "${libdir}/python*/site-packages"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT="1"