Commit Graph

24 Commits

Author SHA1 Message Date
Chong Lu
8ff856a75e perf: fix issue about package splitting
Currently, perf can't split to perf-archive, perf-tests, perf-python and
perf-perl. All files are included in perf package. Change the perfexecdir
variable to make split successfull. Add python to RDEPENDS_perf-tests.

(From OE-Core rev: 32fcc621401e7761d9b96bc5b7bef143c1c29695)

Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-29 12:12:43 +01:00
Bruce Ashfield
6cb383cab8 perf: fix v3.17 powerpc compilation issues
The powerpc perf arch port has two issues in the current 3.17-rc
seriers. Undefined dwarf symbols and undefined pr_debug calls.

commit a60335ba [perf tools powerpc: Adjust callchain based on DWARF debug info]
introduces skip-callchain-idx.c, and breaks the perf build.

Until fixes get into the mainline kernel, we temporarily fix the issues by
adding a forced linke to -ldw and modifying skip-callchain-idx.c to include
the proper debug files for pr_debug.

(From OE-Core rev: 9f204a02f07f8e378e8a078db103a6ba94ec55cb)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-10 15:38:56 +01:00
Chong Lu
124ad80870 perf: add libunwind support
Add a new feature named 'perf-libunwind'. Adding this support to perf allows it
to do stack traces on ARM - thumb2 and MIPS targets. PERF_FEATURES variable in
perf-features.inc will enable the perf-libunwind.

(From OE-Core rev: 10dfa4ee4e05841be3d3caaa28778aa40b782f97)

Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-10 11:33:22 +01:00
Robert Yang
9bf365cf1a perf.bb: fix multilib build
Fixed:
$ bitbake perf lib32-perf
ERROR: QA Issue: lib32-perf: Files/directories were installed but not shipped
  /usr/lib64
  /usr/lib64/traceevent
  /usr/lib64/traceevent/plugins
  /usr/lib64/traceevent/plugins/plugin_function.so
  /usr/lib64/traceevent/plugins/plugin_scsi.so
  /usr/lib64/traceevent/plugins/plugin_hrtimer.so
  /usr/lib64/traceevent/plugins/plugin_kmem.so
  /usr/lib64/traceevent/plugins/plugin_jbd2.so
  /usr/lib64/traceevent/plugins/plugin_xen.so
  /usr/lib64/traceevent/plugins/plugin_mac80211.so
  /usr/lib64/traceevent/plugins/plugin_cfg80211.so
  /usr/lib64/traceevent/plugins/plugin_sched_switch.so
  /usr/lib64/traceevent/plugins/plugin_kvm.so [installed-vs-shipped]

The perf.do_configure edits kernel's
${STAGING_KERNEL_DIR}/tools/perf/config/Makefile, there would be
problems since kernel doesn't have multilib, and the build result is
undetermined.

Previously, the sed command changed libdir to /usr/lib64 (or 32) in the
Makefile, so the build result was different if we build perf (64) first
or lib32-perf first.

Use the weak assignment "libdir ?=" to instead of "libdir =" will fix
the problem since the multilib builds are in different processes, and
they won't affect each other any more.

The sed command will match both $(prefix)/$(lib) and $(prefix)/lib since
the Makefile may has been modified before this patch.

(From OE-Core rev: c62d693e1341be4afcaaeb1ee37360ecac71f46a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-03 11:09:03 +01:00
Martin Jansa
6fa2d82978 perf: fix indentation
* multiline variables should use spaces not tabs for indentation
* do_configure is also using wrong indentation, but I'm not fixing
  this one (still hoping that we'll eventually fix styleguide to
  use 4 spaces everywhere)

(From OE-Core rev: a8f1e40ddd2bb6f4364281e62935e3cdec148f08)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-06 10:23:39 +01:00
Martin Jansa
522a80816a perf: explicitly disable libunwind
* it's not included in DEPENDS and it's detected from sysroot

(From OE-Core rev: c714ab3cf7b96e1ae25489478135924d410fcb53)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-06 10:23:39 +01:00
Ting Liu
78a38c8ab2 perf: remove CFLAGS override
definition of __SANE_USERSPACE_TYPES__ was added in kernel source by
commit e3541ec75219819d3235f80125a1a75d798ff6e1
perf tools, powerpc: Fix compile warnings in tests/attr.c

Overriding the CFLAGS makes it impossible for kernel build system to
append to it, thus making the build fail in various ways as:

|     CC /.../perf/1.0-r9/perf-1.0/perf.o
| In file included from builtin.h:4:0,
|                  from perf.c:9:
| util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
|  #include <lk/debugfs.h>
|                         ^
| compilation terminated.

(From OE-Core rev: 7e7063e495d6451b46e06d08d16f92d0597a7d11)

Signed-off-by: Ting Liu <ting.liu@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-23 21:59:24 +01:00
Henning Heinold
5a6f1c003c perf: add slang to the dependencies
* TUI/GUI support was added in 2.6.35 based on libnewt
* since 3.10 slang replaced libnewt completly
* changing TUI_DEFINES is not necessary, because NO_NEWT is
  still respected with newer kernels
* add comment about the gui history to the recipe

The patch was sponsored by sysmocom

(From OE-Core rev: bbeb133234fb90b01c9448afdecf03ebff7f7c47)

Signed-off-by: Henning Heinold <henning@itconsulting-heinold.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-17 08:59:21 +01:00
Henning Heinold
36c3e923df perf: split packging
* some fundamental perf commands can work
  without the dependency on perl, python or bash
  make them separate packages and RSUGGEST them

* bump PR

The patch was sponsored by sysmocom

(From OE-Core rev: 6d1c0cde05dbab5ca84b1bbd8abeecf8df49e37b)

Signed-off-by: Henning Heinold <henning@itconsulting-heinold.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-13 12:31:38 +01:00
Henning Heinold
949953d50c perf: fix broken shell comparsion in do_install
The patch was sponsored by sysmocom

(From OE-Core rev: 17bf25adad715754de589d2ae54f97c07f5dafde)

Signed-off-by: Henning Heinold <henning@itconsulting-heinold.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-13 12:31:38 +01:00
Richard Purdie
ee4f52e279 perf: Fix sysroot option to CC handling
If you build perf in tree /xxx/treea, then cleansstate perf and build it
in /xxx/treeb having deleted treea, the build will fail, unable to find libc.

The problem is that the --sysroot option passed in through CC is missing.
This works fine if the default sysroot is ok, if it isn't, things will fail.
In 1.7 we'll start poisoning the default sysroot in gcc to catch this kind of
issue however that doesn't fix the problem with perf.

The problem is that various Makefiles set CC = $(CROSS_COMPILE)gcc. The
easist fix for now is to sed out the problematic Makefile lines. Its worth
noting the tools/lib/traceevent Makefile has a much more funky way of setting
CC which works for us and may be the way we need to fix the other Makefiles
upstream.

This fixes build failures we're occasionally seen on the autobuilders.

(From OE-Core rev: d9bd1ac6d91de932dd3e2fcac9da77e0a7c09f55)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-10 17:35:15 +01:00
Bruce Ashfield
08808c9f40 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.

(From OE-Core rev: c1b5a262c0201faf2c6bf545d6acb32dfe383ba3)

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>
2014-03-21 12:05:51 +00:00
Ross Burton
370717d328 perf: don't use oe.path.relative
Instead of using oe.path.relative, use the Python Standard Library function
os.path.relpath.

(From OE-Core rev: 01f640f2e878ef86db4138f422fdf74f5f41c8c5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07 14:58:44 +00:00
Konrad Scherer
fc0a1aac97 perf: Disable warnings as errors for kernels 3.1+
Turns out the sed command has not been working as intended since
kernel 3.1 due to the trailing space. Adding the WERROR=0 environment
variable is the correct way to disable warnings as errors.

(From OE-Core rev: 963315939610a89b031346ebf93cd5bddc7773d2)

Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-09 18:01:44 +00:00
Wenzong Fan
2570f13dbf perf: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for mips64
As the same reason to powerpc64, mips64 also need the flag.

(From OE-Core rev: d6f3cb0d71c3b6739365f085b6d5a5e20f329fa5)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-26 16:08:38 +01:00
Ting Liu
db1d37aaac perf: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for powerpc64
PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
prevents 64-bit userland from seeing this definition, instead defaulting
to u64 == long in userspace.
Perf want LL64, flag __SANE_USERSPACE_TYPES__ to get int-ll64.h.

Fix the below issue:
| tests/attr.c:71:4: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 6 has type '__u64' [-Werror=format=]
| tests/attr.c:80:7: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 4 has type '__u64' [-Werror=format=]
|        attr->type, attr->config, fd) < 0) {
|        ^

(From OE-Core rev: e0b56f7ed84da4f71f448548e15d5a75e8eada6e)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-18 15:49:57 +01:00
Otavio Salvador
99b4173245 perf: Add LDFLAGS to allow build of old kernels without patching
The LDFLAGS is required or some old kernels fails due missing
symbols and this is preferred than requiring patches to every old
supported kernel.

Fixes [YOCTO: #5221]

(From OE-Core rev: 0eccbf2016e89e6f1c3796f138b02a508d2edbcf)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 17:54:42 +01:00
Otavio Salvador
e624d737b7 perf: Ensure we use CFLAGS and LDFLAGS settings from kernel build system
The kernel build system does the right thing here and we should stop
overriding it. This code has been added based on a change from
'meta-metro' layer, revision 9d698004137c1a888d40d6a4808d94afa22387e7,
without any information about what problem it fixes so I am reverting
it.

Using the CFLAGS and LDFLAGS makes it impossible for kernel build
system to append to it, thus making the build fail in various ways as:

|     CC /.../perf/1.0-r8/perf-1.0/perf.o
| In file included from builtin.h:4:0,
|                  from perf.c:9:
| util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
|  #include <lk/debugfs.h>
|                         ^
| compilation terminated.

The unset is done in do_compile and do_install otherwise it /rebuild/
perf as it detects the compiler options has change.

(From OE-Core rev: 2e90f8846db0f3ed99a175befff9ec67fe12bc4e)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 20:53:56 +01:00
Robert Yang
0c11a7740b perf: source should be ready after do_unpack
In perf.bb:

S = "${STAGING_KERNEL_DIR}"

So the source should be ready after the do_unpack, and we need this:

do_unpack[depends] += "virtual/kernel:do_populate_sysroot"

Otherwise, maybe no source after do_unpack.

[YOCTO #5168]

(From OE-Core rev: 01d3b15518b981199120b3b9c6923678244aefdc)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
d638db8d8f perf: Ensure we general PIC code to avoid build failures
Without this we see relocation errors on mips with 3.10. This should be
safe to be included in general.

(From OE-Core rev: 9958653b2bf9e43312a39c6b89ff0ca1cc46995c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-27 12:31:59 +01:00
Richard Purdie
87bf42977a perf: Ensure license is handled correctly
The do_populate_lic task has a race with the recipe since it relies on the
kernel being populated in the sysroot. This patch adds in the explicit missing
dependency.

[YOCTO #3534]

(From OE-Core rev: 578937213c6db9fa99981778ce61210e391b19a7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-18 21:12:19 +01:00
Richard Purdie
4b7a37e072 perf: Fix parsing error
Due to the use of ${@...} the code will try and expand this when
performing the initial parsing. If the sysroot doesn't exist with
an existing kernel, this will fail at parsing time.

Sinec we're already in python, just remove the ${@....} wrapping
and then we execute at do_package time which is what we want.

(From OE-Core rev: 053ca014e7eb8c9dd05cef42fe23f463f3eb15dd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-19 13:25:34 +00:00
Tom Zanussi
15ab96040f perf: make PKGV match kernel version
Have perf grab and use the kernel version it's built from for PKGV,
rather than the default perf recipe version, so the final packages get
the kernel version instead of the default 1.0, which represents a
backwards value from the previous recipe.

(From OE-Core rev: deb99cefe8be7fa63972edadf69f92d361b9a7c5)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-19 11:54:22 +00:00
Tom Zanussi
bdd6d457a1 perf: rename perf_3.4 to perf
There's nothing kernel-version-specific about the perf_3.4 recipe, so
it's actually misnamed and misleading now that it also gets used with
the 3.8 kernel.

Since the recipe isn't tied to a specific PV, and simply uses
whatever's in STAGING_KERNEL_DIR, there's no reason to add anything
else either to the bare PN, so just use that as the recipe name.

(From OE-Core rev: 9a249e074f0329ad54848b84536e5b7cb117ee2c)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-10 04:36:51 +00:00