Commit Graph

65 Commits

Author SHA1 Message Date
Martin Donnelly f4f5573ba4 perf: add sysroot handling to subcmd
v4.5-rc1 of the kernel splits the subcommand related files
from perf into a new library, this patch adds the modification
of the Makefile to preserve the --sysroot option as for
the other perf related Makefiles.

(From OE-Core rev: e46eae34ac71d28aa92feed369c2d92248ed3e19)

Signed-off-by: Martin Donnelly <martin.donnelly@ge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-26 17:16:20 +00:00
Ross Burton 455ff32426 meta: more removals of redunant FILES_${PN}-dbg
In some recipes overly-split -dbg packages were merged into PN-dbg.  Unless
there's a very good reason, recipes should have a single -dev and -dbg package.

(From OE-Core rev: a3b000643898d7402b9e57c02e8d10e677cc9722)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-16 11:56:30 +00:00
Robert Yang c30ee2a290 perf: mkdir ${B} -> mkdir -p ${B}
${B} is the default cwd of tasks, so there might be race issues such as:
| mkdir: cannot create directory `/path/to/work/qemux86-poky-linux/perf/1.0-r9/perf-1.0/': File exists
[snip]
NOTE: recipe perf-1.0-r9: task do_configure: Failed

(From OE-Core rev: d41e9fc53230a8fd911c61e018ea901caee4cafc)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-18 09:05:30 +01:00
Roy Li db8f796bad perf: fix the install-python_ext on upstream kernel
The Perf source code between Yocto and upstream are different, like below
commit is not in upstream, so broaden the "--root" replacement to Makefile*

   commit 33e96fb1e2d77541e81eb341ccd3fbe9419e4c9a
   Author: Tom Zanussi <tom.zanussi@intel.com>
   Date:   Tue Jul 3 13:07:23 2012 -0500

      perf: change --root to --prefix for python install

      Otherwise we get the sysroot path appended to the build path, not what
      we want.

      Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>

(From OE-Core rev: c849ed0c66a2fb7d91795c421eb4c87b47d03c0d)

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-18 09:05:24 +01:00
Roy Li 4c73aaf09e perf: fix the install-python_ext
1. $(grep xxx xxx) never returns 0, it maybe return empty or string, and
can not compare with 0, this fixes that python module never are installed.

2. python library is installed into /usr/lib/ by default, but we expect
it is installed into ${libdir}, so add --install-lib parameter for python
setup.py to set the library dir;
this fixes not shipped warning, since python modules are installed into
/usr/lib/, but FILE_${PN}-python expects it is under ${libdir}, which is
/usr/lib64/ for 64bit machine

3. the makefile target install-python_ext is moved from Makefile to
Makefile.perf from linux v3.13, so match install-python_ext in Makefile.*
and --root='/\$(DESTDIR_SQ)' before linux v3.13 will install the target
python library to native sysroot, so replace it with --prefix as after linux
3.13;
this fixes not shipped warning, and install target files to native dir, like
below:
ERROR: QA Issue: perf: Files/directories were installed but not shipped in any package:
  /home
  /home/pokybuild
  /home/pokybuild/yocto-autobuilder
  /home/pokybuild/yocto-autobuilder/yocto-worker
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr/lib
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/perf.so
  /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-ppc-lsb/build/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/perf-0.1-py2.7.egg-info

(From OE-Core rev: 43f965061f8af4c4537e9d9c0257253e613a616d)

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12 22:48:32 +01:00
Reinette Chatre a533776d6f perf: fix build breakage on kernels after 4.1
A recent commit fixed perf build failures with a change that duplicates
a fix that can be found in kernels after 4.1. Unfortunately there is a
conflict between these two fixes and we see perf build failures when
building perf in kernels that contain the fix already. The problem is
that the fix from the recipe modifies the location of .config-detected
to $(OUTPUT).config-detected. In a 4.2 kernel the location will be
changed to $(OUTPUT)$(OUTPUT).config-detected.

We change the recipe to require a space in the pattern to only change
kernel sources that do not already place file in $(OUTPUT).

The recent commit that introduced the build failure is:

   commit ea9016b60b47138bc58d84a06954b44527b20a19
    Author: Richard Purdie <richard.purdie@linuxfoundation.org>
    Date:   Sat Jul 25 14:37:58 2015 +0100

        perf: Fix config file conflict with 4.1 kernels

        If you setup mutlitlibs and then:

        bitbake perf libb32-perf
        bitbake perf libb32-perf -c cleansstate
        bitbake perf libb32-perf

        you will see races where the two builds get confused about which directory
        they should be using and they corrupt each other.

        The issue is that .config-detected is created in ${S}, not $(OUTPUT).
        We can fix this by moving the file to $(OUTPUT).

        [YCOTO #8043]

        (From OE-Core rev: 00608cffffb586e8d2a2075117e710113c471448)

        (From OE-Core rev: 57df1ebd910e42af47a0039830a60f41a3bd29b6)

        Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

The commit in the kernel source that fixes the problem from kernel side is:
    commit 642273795fa81da11290ffa90bce6ff242f2a7bb
    Author: Aaro Koskinen <aaro.koskinen@nokia.com>
    Date:   Wed Jul 1 14:54:42 2015 +0300

        perf tools: Create config.detected into OUTPUT directory

        Create config.detected into OUTPUT directory instead of source
        directory.

        This fixes parallel builds that share the same source directory.

        Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
        Acked-by: Jiri Olsa <jolsa@kernel.org>
        Cc: Paul Mackerras <paulus@samba.org>
        Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
        Link: http://lkml.kernel.org/r/1435751683-18500-1-git-send-email-aaro.koskinen@nokia.com
        Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

(From OE-Core rev: cb8d309ff0ea0ca11edc2aae75ddd869491cb330)

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-12 11:31:49 -07:00
Bruce Ashfield 4c8f27430a perf: add liblzma depdenency
With kernel commit 6c6f0f6164f [tools build: Add feature check for lzma
library], perf now performs a test for lzma and adds functionality
appropriately.

This currently is a floating dependency that will sometimes be present,
and sometimes not. The result is the following QA warning:

  WARNING: QA Issue: perf rdepends on liblzma, but it isn't a build dependency? [build-deps]

By adding xz to the DEPENDS, we'll ensure that it is consistently in
place.

[YOCTO: #8045]

(From OE-Core rev: 2b7bf357e126bf272504548a4692cf764fd7f8ea)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-01 07:34:08 +01:00
Richard Purdie 741a44c06b perf: Fix config file conflict with 4.1 kernels
If you setup mutlitlibs and then:

bitbake perf libb32-perf
bitbake perf libb32-perf -c cleansstate
bitbake perf libb32-perf

you will see races where the two builds get confused about which directory
they should be using and they corrupt each other.

The issue is that .config-detected is created in ${S}, not $(OUTPUT).
We can fix this by moving the file to $(OUTPUT).

[YCOTO #8043]

(From OE-Core rev: 00608cffffb586e8d2a2075117e710113c471448)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-25 14:41:43 +01:00
Li xin 2b811ee960 perf: Modify SPDX_S directory to avoid do_spdx error.
This is because S = "${STAGING_KERNEL_DIR}".

(From OE-Core rev: 7c92e64834af8f578b5cfc3cfe33c13bb8a89754)

Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-16 15:09:18 +01:00
Robert Yang 301e73b5af perf: remove invalid sed command
The current kernel supports WERROR now, and there is no Werror in
tools/perf/Makefile, remove both sed commands.

(From OE-Core rev: 664508e6307903fdc3054ca84d37f16718c41ede)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-12 22:55:45 +01:00
Bruce Ashfield 358be3e889 perf: fix build (and feature tests) for 4.1-rcX
The way that perf detects features has changed/moved via commit e6c76d620
[perf build: Move feature checks code under tools/build].

This code movement resulted in the definition of CC being dropped, and
in turn the passing of --sysroot not part of the build.

This results in feature tests failing with errors such as:

  In file included from test-pthread-attr-setaffinity-np.c:1:0:
  sysroots/x86_64-linux/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/4.9.2/include/stdint.h:9:26:
  fatal error: stdint.h: No such file or directory
  # include_next <stdint.h>
                          ^
  compilation terminated.

While the fix is going upstream, we can modify the perf recipe to add
the definition of CC into the Makefile, and we'll continue to work on
patched and unpatched kernels.

Upstream-status: Pending

(From OE-Core rev: 46f842039422aa35f62b03f11b648c02980ea1b1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-03 11:43:50 +01:00
Bruce Ashfield 31f15d6e8a perf: add bash to RDEPENDS
perf has a dependency on bash in its utilities, which generate the
following warning:

  WARNING: QA Issue: perf requires /bin/bash, but no providers in its RDEPENDS [file-rdeps]

Since perf is not installed on extremely small systems, we just add
bash to the RDEPENDS, rather than modifying scripts or removing content.

[YOCTO: #7445]

(From OE-Core rev: 6f39aae20d88a2d764c3a85617cd36b81af804f1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-20 23:56:01 +00:00
Robert Yang 60ae5c2eb0 meta: enable parallel build for several recipes
I used a for loop to build these packages more than 520 times, these
recipes never failed.

(From OE-Core rev: 7957c5bc2771a763d26e50e716733c6335cef3c2)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-15 21:58:27 +00:00
Robert Yang 03038f3b9c perf: add LIBNUMA_DEFINES
Fixed:
WARNING: QA Issue: perf rdepends on numactl, but it isn't a build dependency? [build-deps]

The numactl is in meta-oe.

(From OE-Core rev: 175d6b4e598f78dfa17c101a36a82c0951615b7a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-03 14:53:51 +00:00
Robert Yang 52a837e027 perf: fix for rebuilding
Fix for rebuilding error:
make[3]: *** No rule to make target `/path/to/sysroots/qemuarm64/usr/src/kernel/tools/lib/traceevent//trace-seq.c',
needed by `.trace-seq.d'.  Stop.
make[2]: *** [sub-make] Error 2

(From OE-Core rev: 9dafa571ed0a40d21a886dec7704c31150b21942)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-23 11:36:29 +00:00
Tom Zanussi 14fa1343ec perf: Disable perf-libunwind
It hasn't actually been being enabled anyway: 'Disabling post unwind,
no support found.'.  For now, turn it off because of [YOCTO #7129].

Fixes [YOCTO #7129].

(From OE-Core rev: d8c839afa96925b27909eb5a7b89ee83c87924bc)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-16 23:08:18 +00:00
Tom Zanussi 4e13036d66 perf: Add libdw unwind support to perf-libunwind feature
perf can use either libdw or libunwind dwarf unwinders, or neither.
The perf-libunwind feature implies that if disabled, neither should be
used, so have it disable both libdw and libunwind DWARF unwinders if
disabled.

This fixes [YOCTO #7129].

(From OE-Core rev: 868dd446fa2732858813e96dd8f3f64b2a9ec339)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-16 23:08:18 +00:00
Bruce Ashfield 46cdaf1c7b kernel: move source and build output to work-shared
commit 3b3f7e785e279 [kernel: Rearrange for 1.8] began the process of
moving the kernel source and build artefacts out of sstate control and
into a shared location.

This changed triggered some workflow issues, as well as bugs related
to the kernel source containing build output, and hence being dirty and
breaking kernel rebuilds.

To solve these issues, and to make it clear that the kernel is not under
sstate control, we move the source and build outputs to:

  work-shared/MACHINE/kernel-source
  work-shared/MACHINE/kernel-build-artifacts

Where kernel-build-artifacts is the kernel build output and
kernel-source is kept "pristine". The build-artifacts contain everything
that is required to build external modules against the kernel source,
and includes the defconfig, the kernel-abiversion, System.map files and
output from "make scripts".

External module builds should either pass O= on the command line, or
set KBUILD_OUTPUT to point to the build-artifacts. module-base.bbclass
takes care of setting KBUILD_OUTPUT, so most existing external module
recipes are transparently adapted to the new source/build layout.

recipes that depend on the kernel source must have a depedency on the
do_shared_workdir task:

 do_configure[depends] += "virtual/kernel:do_shared_workdir"

With this dependency added, the STAGING_KERNEL_DIR will be populated and
available to the rest of the build.

(From OE-Core rev: 6a1ff0e7eacef595738f2fed086986fd622ec32a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-16 23:08:18 +00:00
Bruce Ashfield 2214cb2e2c lttng/perf: depend on virtual/kernel:do_install
To ensure that the minimal environment has been created for out of
tree module builds, perf and lttng should depend on the do_install
task of the kernel.

(From OE-Core rev: 7f934946fdb3184a06ce1a2cdc29559e7c468492)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-21 12:37:53 +00:00
Richard Purdie 86893e4ea5 kernel: Rearrange for 1.8
In 1.8 we want to streamline the kernel build process. Basically we
currently have multiple copies of the kernel source floating around
and the copying/compression/decompression is painful.

Lets assume we have a kernel source per machine since in most cases
this is true (and we have a sysroot per machine anyway). Basically,
instead of extracting a source into WORKDIR, then copying to a sysroot,
we now set S to point straight at STAGING_DIR_KERNEL.

Anything using kernel source can then just point at it and use:

do_configure[depends] += "virtual/kernel:do_patch"

to depend on the kernel source being present. Note this is different
behaviour to DEPENDS += "virtual/kernel" which equates to
do_configure[depends] += "virtual/kernel:do_populate_sysroot".

Once we do this, we no longer need the copy operation in
do_populate_sysroot, in fact there is nothing to do there (yay).

The remaining part of the challenge is to kill off the horrible
do_install. This patch splits it off to a different class, the idea here
is to have a separate recipe which depends on the virtual/kernel:do_patch
and just installs and packages the source needed to build modules on
target into a specific package.

Right now this code is proof of concept. It builds kernels and kernel
modules. perf blows up in do_package with issues on finding the kernel
version which can probably be fixed by adding back the right bit of do_install,
and adding a dependency of do_package[depends] += "virtual/kernel:do_install"
to perf. The whole thing needs a good write up, the corner cases testing
and probably a good dose of cleanup to the remaining code.

(From OE-Core rev: 3b3f7e785e27990ba21bc7cd97289c826a9a95d1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-21 12:37:53 +00:00
Bruce Ashfield 319eb6021e perf: fix undefined pr_* routines
When cross compiling libunwind support for ARM a missing debug include means
that pr* macros are not expanded, and hence link failures on the undefined
functions.

Since we must be compatible with many versions of the kernel and perf, we
sed the proper include into the files, while the permanent fix goes upstream
to the mainline kernel.

(From OE-Core rev: 81bb7a163d7e3c0bdcc72894ef731521d58edf90)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-02 00:42:43 +01:00
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
Tom Zanussi b3be3323a0 perf: rename perf.inc to perf-features.inc
The contents of perf.inc are really specific to perf features and
shouldn't use the generic perf.inc name, which implies common recipe
code.  It's always confusing to open up this file and find out that's
not what it is.

(From OE-Core rev: 4a98bd02ab8918e639353829b221b0c4b6c58165)

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
Tom Zanussi 3936a26c3f perf: disable PARALLEL_MAKE
Autobuilder builds periodically and now more frequently have been
failing because of a race between the perf build and the newly
separated libtraceevent - perf tries to link libtraceevent.a, which
hasn't finished building yet in those cases.

This disables the parallel build to prevent that.

(From OE-Core rev: cd1e98513016c01e32bdb175ec7225d7378d952c)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-05 13:14:58 +00:00
Tom Zanussi 84baa1a537 perf: add bash dependency
There are a number of scripts in the perf installation that use bash,
so we need to add a run-time dependency on bash for them. If not, we
can generate build errors like "no package provides /bin/bash".

Fixes [YOCTO #3951].

(From OE-Core rev: 8169adeba67180f062fa7c0105fc4283da3103c6)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-02 12:56:54 +00:00
Fahad Usman f023d05898 iperf: pass in target path vars
(From OE-Core rev: accbcea94091800a90df0f5141990c110ff35ee5)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>

the patch was imported from meta-mentor layer on yoctoproject git server
http://git.yoctoproject.org/cgit/cgit.cgi/meta-mentor as of commit id
71748b54694f4ffe2d598da71f641969df1417c0

slightly modified the patch to apply it on .bb file instead of .bbappend

Signed-off-by: Fahad Usman <fahad_usman@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-17 17:24:54 +00:00
Fahad Usman ec70f9ec3b perf: pass CFLAGS and LDFLAGS
(From OE-Core rev: 373371432b72cb19600a45e741afdfcb9662ecfb)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>

the patch was imported from meta-mentor layer on yoctoproject git server
http://git.yoctoproject.org/cgit/cgit.cgi/meta-mentor as of commit id
9d698004137c1a888d40d6a4808d94afa22387e7

Signed-off-by: Fahad Usman <fahad_usman@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-17 17:24:53 +00:00