summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/perf/perf.bb
Commit message (Collapse)AuthorAgeFilesLines
* perf: Correct the substitution of python shebangsHe Zhe2020-08-041-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | To make the native python3 always used, - Use sed one-liner instead - Add substitution for ${S}/scripts/bpf_helpers_doc.py to fix the following warning. File "/usr/lib/python3.6/sysconfig.py", line 421, in _init_posix _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata' This issue is first reported by Joel Stanley <joel@jms.id.au> The sed one-liner is credited to Anuj Mittal <anuj.mittal@intel.com> (From OE-Core rev: 3f93173130a94310255389cfc62c67102a4fb21b) (From OE-Core rev: c0bcc24ccc6d769935d7fa202a1405250d94e342) Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 3a1a18ba9d28adb5562eabe9ec354f6d93154f5c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix build for v5.5+Bruce Ashfield2020-08-041-0/+1
| | | | | | | | | | | | | | | | | | | In kernel 5.5+ there are python3 scripts that explicitly use /usr/bin/python3 as the interpreter. That will find the host python and produce undefined results. We add that interpreter path to our substitutions to ensure that our sysroot variant is used. (From OE-Core rev: 103316d50d4947b3c3500eb5cbc4845702a62d22) (From OE-Core rev: 3269e3d2d0258ac3788ed63fa46df4d4aae33b1e) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e5c4f3127521607742f7cdf62481b64cf4d3e828) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Fix externalsrc supportPaul Barker2020-04-171-1/+1
| | | | | | | | | | | | | | | | | | When the externalsrc class is used the tasks listed in SRCTREECOVEREDTASKS are deleted to prevent them being executed. If externalsrc is used for the kernel then this will include virtual/kernel:do_patch. We can depend on do_shared_workdir instead as this will survive when externalsrc is used. (From OE-Core rev: c30d6b98b739f1ee9c2ebb937e739453899b513d) Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit eab605bab94552046ec4adae5debe026cc03bb4c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix build on kernels which don't have ${S}/tools/include/linux/bits.hMartin Jansa2019-09-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tools/include/linux/bits.h was added in v4.20-rc1 with this commit: commit ba4aa02b417f08a0bee5e7b8ed70cac788a7c854 Author: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Tue Sep 25 10:55:59 2018 -0300 tools include: Adopt linux/bits.h * also if you're building for such older kernel you will probably see do_compile failing with: | config/Makefile:448: Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev | config/Makefile:495: Python 3 is not yet supported; please set | config/Makefile:496: PYTHON and/or PYTHON_CONFIG appropriately. easiest work around is to disable scripting PACKAGECONFIG, because since oe-core commit: commit 584af667e0000129bcb5c9e8108485f2f6590eaf Author: Bruce Ashfield <bruce.ashfield@gmail.com> Date: Wed Aug 28 22:14:41 2019 -0400 perf: change dependencies on python to python3 The upstream kernel can now handle python3 for the perf scripts, coupled with the impending EOL of python2, we switch the dependencies in perf (scripting) to python3. it now uses python3, but the support for that was added in kernel v4.17-rc1 with: commit 66dfdff03d196e51322c6a85c0d8db8bb2bdd655 Author: Jaroslav Skarvada <jskarvad@redhat.com> Date: Fri Jan 19 21:56:41 2018 +0100 perf tools: Add Python 3 support Added Python 3 support while keeping Python 2.7 compatibility. if you really need scripting support than either backport the kernel patch to your kernel or undo the perf recipe changes. (From OE-Core rev: d6ee3d3bdf183a9060b5b0c25b97688a4b9d40dc) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: v5.3+ build fixesBruce Ashfield2019-08-301-0/+4
| | | | | | | | | | | | | | | | In the 5.3+ perf builds, there are multiple unistd.h files that need to be kept in sync. So not only do we update one, we update both to ensure that libc-headers and the perf build are in sync. perf checks some key files itself to be sure they are in sync, and bits.h can be out of sync. There's no build error that results with bits.h at the moment, but we still make sure they are in sync to avoid the configure/compile warning. (From OE-Core rev: b850ee597e7116cc2a7546853f2b976c891196ef) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: change dependencies on python to python3Bruce Ashfield2019-08-301-8/+11
| | | | | | | | | | | | | | | | | | | | The upstream kernel can now handle python3 for the perf scripts, coupled with the impending EOL of python2, we switch the dependencies in perf (scripting) to python3. Outside of dependency changes, we also pass the following two variables to the perf build: PYTHON=python3 PYTHON_CONFIG=python3-config. To ensure that our python3 components are used. For configurations that disable perf scripting, there is no change in behaviour. [YOCTO #13358] (From OE-Core rev: 584af667e0000129bcb5c9e8108485f2f6590eaf) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: make sure that the tools/include/uapi/asm-generic directory existsMartin Jansa2019-05-151-1/+1
| | | | | | | | | | | | | | | | | | | | * before trying to copy unistd.h into it * older kernels don't have uapi in tools/include and do_configure fails with: DEBUG: Executing shell function do_configure cp: cannot create regular file '.../perf/1.0-r9/perf-1.0/tools/include/uapi/asm-generic/unistd.h': No such file or directory WARNING: exit code 1 from a shell command. * tools/include/uapi was added in kernel 4.8 with https://github.com/torvalds/linux/commit/c4b6014e8bb0c8d47fe5c71ebc604f31091e5d3f tools: Add copy of perf_event.h to tools/include/linux/ (From OE-Core rev: 5fdb96f4996856286c4f72b93d31b7990ceed8aa) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: workaround the error cased by maybe-uninitialized warningDengke Du2019-04-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When enable DEBUG_BUILD, the perf build failed by the following error: libbpf.c:727:36: error: 'data' may be used uninitialized in this function [-Werror=maybe-uninitialized] This is ok until Khem commit a patch in oe-core: 16643b03227466e2c80a24c2d079fe36e89553c1 This commit import "-Og" option to "DEBUG_OPTIMIZATION", result in this error. Actually, the warning was misinformation. We explore the code in libbpf.c: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/lib/bpf/libbpf.c#n640 -------------------------------------------------------------------------- if (scn) data = elf_getdata(scn, NULL); if (!scn || !data) { pr_warning("failed to get Elf_Data from map section %d\n", obj->efile.maps_shndx); return -EINVAL; } ...... using data... ...... -------------------------------------------------------------------------- If the 'scn' was not null, the data will be initialized. if the data was null, the function will return -EINVAL, so the data must be not null, but compiler can't see it in 'if' code block, so treat it as 'maybe-uninitialized'. (From OE-Core rev: 0eb4048bc5865579327f5a88086e3e3241b012cb) Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: synchronize unistd.h between libc-headers and perf sourceBruce Ashfield2019-03-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the build for some architectures, perf generates a program which executes on the host to dump the syscall table. The generation of that program uses the cross compiler + sysroot to expand unistd.h. As such, we are getting the contents of that file from linux-libc-headers. The compilation of that generated program uses the host compiler and a restricted include path to the perf source code. In the perf source there is a captured unistd.h, as such it will be used when compiling the host executable. The perf source code is copied from the kernel version that is being built .. so we have a mismatch between the generation and the compilation of the host program. Normally this mismatch is fine, but if the libc-headers are newer than the kernel, we'll have syscalls (and their syscall numbers) that are not defined in the perf source code. This leads to a compiler error and a cascading failure of the perf build due to a missing generated file. To fix this, we can copy unistd.h from the recipe-sysroot into the perf source code and they will always be in sync. (From OE-Core rev: 3a23e094c4189af878e467f1636aea63955e250d) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Set libunwind dir explicitly to point into staging sysrootKhem Raj2019-03-021-0/+1
| | | | | | | | | | This helps it find the unwind library in sysroot always and not look around and confuse with host (From OE-Core rev: e914c03964c540493523b18660f8a4eaeec78e3d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Package libperf-jvmti.so as part of ${PN}Alex Kiernan2019-02-161-1/+2
| | | | | | | | | | | | | | perf's jvmti support builds libperf-jvmti.so that needs to be packaged as part of the main package, not a developer package. Given there's no files in the developer package, override FILES_SOLIBSDEV so it's not gobbled by FILES_${PN}-dev, and then add just that file to FILES_${PN} so that if in the future there other files which would be added to the dev package we'll fail then. (From OE-Core rev: 284763fcf188a497f15a1c69a50ceeee99d546f8) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Disable libunwind for ARC & RISCV64Alexey Brodkin2018-11-071-0/+4
| | | | | | | | | | | | | | | | libunwind is not yet ported for ARC & RISCV64 and on attempt to build it for those arches we just get an error message. If we explicitly disable libunwind it is gracefully handled by perf build system and it just gets configured to not use it so perf is still usable even on those arches. (From OE-Core rev: bb06900a1f29fdd4066f6d7e7a961d230c2e9438) Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix do_compile failure with /tmp mounted with noexecHongxu Jia2018-10-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | On a builder which has /tmp mounted nexec, the ARM64 generation of the sycall table will fail: [snip] |perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl: /tmp/create-table-6VGPSt: Permission denied [snip] To avoid the permission denied error, we must instruct the perf build to place temporary files in an appropriate directory (versus always using /tmp). To do this, we need both a kernel source change to perf, and a recipe change to pass the temp directory in by a TMPDIR variable. The linux-yocto has a reference kernel change: [perf arm64: Fix generate system call table failed with /tmp mounted with noexec], that has also been submitted upstream mailing list linux-perf-users@vger.kernel.org (From OE-Core rev: d819e7fa76e2b732aa7c33ab0e9a834781090824) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Reviewed-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: make tools needed for API documentation respect the manpages PACKAGECONFIGRoss Burton2018-10-101-3/+1
| | | | | | | (From OE-Core rev: 15d42f84b1fcffc17b21eba50e5d5ee06419a659) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: do not pull in any perl dependencies unless scripting is requestedDima Zavin2018-09-131-7/+1
| | | | | | | | (From OE-Core rev: 79a19811f4039c5d1861094abbbdaea0aedeee04) Signed-off-by: Dima Zavin <dmitriyz@waymo.com> Signed-off-by: Andrew Bresticker <abrestic@waymo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fail if src path does not existMikko Rapeli2018-08-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | A missing src directory from a broken kernel recipe resulted only in a warning: WARNING: copyfile: stat of /home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch failed ([Errno 2] No such file or directory: '/home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch') and the build failed horribly. With this change it's an error which can not be missed: ERROR: perf-1.0-r9 do_configure: Path does not exist: /home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch. Maybe PERF_SRC does not match the kernel version. ERROR: perf-1.0-r9 do_configure: Function failed: copy_perf_source_from_kernel ERROR: Logfile of failure stored in: /home/builder/src/tmp-glibc/work/target-linux/perf/1.0-r9/temp/log.do_configure.21083 NOTE: recipe perf-1.0-r9: task do_configure: Failed ERROR: Task (/home/builder/src/poky/meta/recipes-kernel/perf/perf.bb:do_configure) failed with exit code '1' To get get perf compiling from a custom kernel, a perf.bbappend can be created which defines PERF_SRC as list of files and directories needed from kernel source tree to compile perf. This varies between kernel versions. (From OE-Core rev: c392dabefc431dbfb31d6a1465c75ba9cc765804) Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: inherit manpages instead of adding man to RDEPENDS_${PN}-docMartin Jansa2018-08-141-2/+1
| | | | | | | (From OE-Core rev: 92c79abfdedb4b9f16191e253cf2dcec9e2f0cfb) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: add dwarf to PACKAGECONFIGAnuj Mittal2018-07-151-1/+2
| | | | | | | | | | | | Enable perf to be built with DWARF support. Fixes [YOCTO #3359] (From OE-Core rev: bed3a67932a85d7528179b0a35c21e1b595b6ce7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: disable parallelism for 'make clean'Rasmus Villemoes2018-07-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever perf got rebuilt, I was consistently getting errors such as | find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory | find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory | find: find: '[...]/perf/1.0-r9/perf-1.0/libtraceevent.a''[...]/perf/1.0-r9/perf-1.0/libtraceevent.a': No such file or directory: No such file or directory | [...] | find: cannot delete '/mnt/xfs/devel/pil/yocto/tmp-glibc/work/wandboard-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/util/.pstack.o.cmd': No such file or directory breaking the whole build. The root cause seems to be that the implicit 'make clean' done during do_configure ends up running in parallel, and thus multiple find commands attempt to stat and/or delete the same file. A patch disabling parallelism for the clean target has been ack'ed upstream (lkml.kernel.org/r/20180705134955.GB3686@krava), but it should be harmless to pass JOBS=1 even with a fixed kernel. This can be removed if and when all relevant -stable kernels have that patch. (From OE-Core rev: bb58203b668df42fd08c2e5fa4a172cf63e37369) Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix build with kernel older than 4.8Martin Jansa2018-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * perf is failing to build for me since this oe-core commit: commit 9b38c824961fc9dce51bda95c25dac91a69fc64f Author: Hongxu Jia <hongxu.jia@windriver.com> Date: Tue Apr 24 11:33:47 2018 +0800 perf: make a copy of kernel source to perf workdir the problem is that perf sources in kernel older than 4.8 (in my case 4.4) are depending on the "global" include headers outside tools directory, e.g. swab.h in: kernel-source/tools$ git grep swab.h perf/MANIFEST:include/linux/swab.h perf/MANIFEST:include/uapi/linux/swab.h perf/util/include/asm/byteorder.h:#include "../../../../include/uapi/linux/swab.h" this was resolved in 4.8 with: commit 7e3f36411342a54f1981fa97b43550b8406a3d69 Author: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Mon Jul 18 17:42:16 2016 -0300 perf tools: Remove tools/perf/util/include/asm/byteorder.h Not used anymore. This also stops include linux/swab.h directly from the kernel sources, remove that reference from the MANIFEST. and few more changes to make tools/include more complete and standalone: tools/include in 4.15: asm asm-generic linux tools trace uapi tools/include in 4.4: asm asm-generic linux tools but copying the include header even for kernels which don't really need it doesn't add big overhead, so just copy include to perf sources for all kernels. (From OE-Core rev: 19fb2d11a8bb3c6dfdd5edc1b9155d642dc0f5e0) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: make a copy of kernel source to perf workdirHongxu Jia2018-05-041-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | Since perf contaminates linux shared workdir, it probably caused kernel-devsrc compile failure at world build. ... |0 blocks |cpio: ./tools/perf/arch/arm/util/sedr7ORqk: Cannot stat: No such file or directory |0 blocks ... cpio tried to find a file at ${S}/tools/perf and failed if the input list is not valid. Make a copy of kernel shared source directory into a perf workdir could fix the issue. Drop `Fix for rebuilding' which is obsolete [YOCTO #10880] (From OE-Core rev: 9b38c824961fc9dce51bda95c25dac91a69fc64f) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: enable support for libauditAnuj Mittal2018-03-201-1/+4
| | | | | | | | | | | | | | | | | perf needs audit-python to be able to show syscall names and for 'perf trace' to work. Enable dependency on audit-python if present in PACKAGECONFIG. It's disabled by default since audit as of now is in meta-selinux. Fixes [YOCTO #3343] Fixes [YOCTO #3358] (From OE-Core rev: c386abacae89a148e77ffa51630c7917e90406f9) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix packaging of scripting modulesAnuj Mittal2018-03-041-4/+5
| | | | | | | | | | Make sure that python and perl scripts are packaged in the correct rpm. (From OE-Core rev: c648d946647141350b12b3aaca99eaa433c60cd7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: conditionalise pythonnative and perlnative inheritsRoss Burton2018-01-141-2/+4
| | | | | | | | | | Only inherit these classes (and so, add perl-native and python-native to DEPENDS) if the scripting PACKAGECONFIG is actually enabled. (From OE-Core rev: 6d56f14a7276f076dfe625bc4d2c16a6a4635153) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: depend on native versions of bison and flexDenys Dmytriyenko2018-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly depend on bison-native and flex-native for deterministic builds, as those are required for the build: | Makefile.config:129: *** Error: flex is missing on this system, please install it. Stop. | Makefile.perf:205: recipe for target 'sub-make' failed | make[1]: *** [sub-make] Error 2 | Makefile:68: recipe for target 'all' failed | make: *** [all] Error 2 | Makefile.config:133: *** Error: bison is missing on this system, please install it. Stop. | Makefile.perf:205: recipe for target 'sub-make' failed | make[1]: *** [sub-make] Error 2 | Makefile:68: recipe for target 'all' failed | make: *** [all] Error 2 In most cases, those dependencies come indirectly via toolchain dependencies, specifically binutils-cross, which pulls both bison-native and flex-native. Different setups, such as with external toolchain, would expose this problem, since correct dependency is not marked explicitly. The change is build-tested on all qemu architectures. (From OE-Core rev: 5f4b54a234ad7a859db8a1e23c6892a8b3bc1b52) Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Add HOMEPAGE info into recipe file.Fan Xin2017-09-051-0/+1
| | | | | | | (From OE-Core rev: c46e49c06e16e46422f925662cd2c8c698dc04ee) Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Drop further remnants of uclibc supportRichard Purdie2017-06-221-2/+0
| | | | | | | | | | | | | | uclibc support was removed a while ago and musl works much better. Start to remove the various overrides and patches related to uclibc which are no longer needed. uclibc support in a layer would still be possible. I have strong reasons to believe nobody is still using uclibc since patches are missing and I doubt the metadata even parses anymore. (From OE-Core rev: ec03023d2165b49a52b83bac1ea2f0bfded7b852) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: enable libunwindRoss Burton2017-06-091-1/+1
| | | | | | | (From OE-Core rev: 12e57c58ed25c113934f3370eea241211fa5c0b3) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: add PACKAGECONFIG for jvmtiStefan Müller-Klieser2017-02-151-0/+1
| | | | | | | | | | | | Recent kernel build jvmti, java profiling agent, if a host jdk is detected. The library will be packaged in -dev and throws a qa error. Disable the jvmti build per default. (From OE-Core rev: c2cae2874d88c8e41e12da04198b5368d9968131) Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: add PACKAGECONFIG for systemtapRoss Burton2017-01-191-0/+1
| | | | | | | | | | | | Otherwise it's possible to race with systemtap headers being present during the autodetection and disappearing during the build: tests/sdt.c:14:21: fatal error: sys/sdt.h: No such file or directory #include <sys/sdt.h> ^ (From OE-Core rev: 8aafed5f4757550f2ff688e1b8981e5e8e6e3428) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: use PACKAGECONFIG instead of hand-rolled logicRoss Burton2017-01-191-17/+9
| | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 33d05772c30036e8d2bb2dc8928989bf98d388f1) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-1/+1
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Add EXTRA_LDFLAGS for MIPS N32Zubair Lutfullah Kakakhel2016-11-301-0/+7
| | | | | | | | | | MIPS N32 requires EXTRA_LDFLAGS to link correctly. (From OE-Core rev: 5b3cc758ddd8bfe6e52e6287ddf463c080673a7e) Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove LIC_FILES_CHKSUM from recipes without SRC_URIOlaf Mandel2016-10-281-1/+0
| | | | | | | | | | | | | | | | LICENSE and LIC_FILES_CHKSUM apply to the sources specified by SRC_URI, not to the recipe itself. As such a license declaration for a source-less recipe makes little sense. The LICENSE declaration is mandatory, but LIC_FILES_CHKSUM can be removed in such cases. Remove the LIC_FILES_CHKSUM declarations from all recipes that do not need it. CC: Paul Eggleton <paul.eggleton@linux.intel.com> (From OE-Core rev: b18fa5f2f2f46afc6fdc58f4d29679dea9c36c43) Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Fix to obey LD failureSujith Haridasan2016-10-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch brings the last bit from meta-mentor for the perf to build successfully with minnowmax BSP. The meta-mentor commit for the same is: http://git.yoctoproject.org/cgit/cgit.cgi/meta-mentor/commit/meta-mentor-staging?id=a8db95c0d4081cf96915e0c3c4063a44f55e21cc The previous fix: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/recipes-kernel/perf?id=ef942d6025e1a339642b10ec1e29055f4ee6bd46 was incomplete and was not submitted upstream. And due to that this change is required. When built on minnowmax ( machine name: intel-corei7-64), an error is noticed during the do_compile: /home/sujith/codebench-linux-install-2015.12-133-i686-pc-linux-gnu/codebench/bin/i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (/home/sujith/MEL/dogwood/build-minnowmax/tmp/work/intel_corei7_64-mel-linux/perf/1.0-r9/perf-1.0/fd/array.o) to format elf32-i386 (/home/sujith/MEL/dogwood/build-minnowmax/tmp/work/intel_corei7_64-mel-linux/perf/1.0-r9/perf-1.0/fd/libapi-in.o) is not supported This change help fix the issue. (From OE-Core rev: 122ae03e2f1a2252a6914d51087531557f9a08f2) Signed-off-by: Sujith Haridasan <Sujith_Haridasan@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: Fix to obey LD failure on qemux86-64Christopher Larson2016-09-221-1/+2
| | | | | | | | | | | | | | | | | | | | | When built on an i686 host for qemux86-64 without the fix to obey LD and it fails: /scratch/dogwood/toolchains/x86_64/bin/i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (/scratch/dogwood/perf-ld-test/build/tmp/work/qemux86_64-mel-linux/perf/1.0-r9/perf-1.0/fs/fs.o) to format elf32-i386 (/scratch/dogwood/perf-ld-test/build/tmp/work/qemux86_64-mel-linux/perf/1.0-r9/perf-1.0/fs/libapi-in.o) is not supported This is because LD includes HOST_LD_ARCH, which contains TUNE_LDARGS, which is -m elf32_x86_64 for x86_64. Without that, direct use of ld will fail. (From OE-Core rev: 0ce06611068e74e6ea2e226e3f967aaa91fecd25) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Sujith Haridasan <Sujith_Haridasan@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: adapt to Makefile.configBruce Ashfield2016-09-051-1/+8
| | | | | | | | | | | commit 4842576cd857 [perf tools: Move config/Makefile into Makefile.config] relocated the configuration Makefile of perf. As such, we need to adapt our fixup routines to work with the Makefile no matter where it is. (From OE-Core rev: 573d584ff704025387782e35ed344e73294d6d0a) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Use PYTHON_SITEPACKAGES_DIR insted of hard-coded *site-packages*Ming Liu2016-08-171-1/+1
| | | | | | | | | | | | For thoese recipes that are inheriting python*-dir.bbclass, there is already a PYTHON_SITEPACKAGES_DIR present, use that definition replacing redundant "${libdir}/python*/site-packages". (From OE-Core rev: e7d842673952aa4aaa141f64958bc1344dbe8210) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: enable man pages for 'help' functionalityDengke Du2016-08-041-1/+10
| | | | | | | | | | | | | | When using 'perf help <subcommand>', it can't find 'man' command and pages for perf. The perf man pages depends on the xmlto-native and asciidoc-native, so we just need to add the two packages to the DEPENDS variable and add 'man'to RDEPENDS_perf-doc. (From OE-Core rev: bbff6b07256d63d318066eb1357763467532dd70) Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pythonnative.bbclass, python3native.bbclass: export STAGING_INCDIR, ↵Alexander Kanavin2016-07-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | STAGING_LIBDIR, PYTHON variables We patch Python's distutils modules to access STAGING_INCDIR/LIBDIR, so when they are not set, scripts that utilize distutils (e.g. python-config) fail. Several recipes need to export those manually to prevent such failures, so let's do that in the class instead. PYTHON variable is exported because otherwise autotools' python.m4 macro will pick up its own internal default, which may not be the version that we want. glib recipe in particular was previously using Python 2.x during build due to python.m4 defaulting to it - now it's using Python 3.x, and so needs a small fix in deletion of *.pyc files. (From OE-Core rev: c1e0eb62f2d89b10b187016200018830b1c77945) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python-native, python3-native: remove the use of exported HOST_SYS and ↵Alexander Kanavin2016-06-011-2/+0
| | | | | | | | | | | | | | BUILD_SYS variables The code that utilized them was superseded by the code (in the same patch!) that is utilizing STAGING_LIBDIR/STAGING_INCDIR, and wasn't correct in the first place as HOST_SYS is not necessarily the same as the sysroot directory name. (From OE-Core rev: 8834e81a38c24a066bb4fefa93da61011d0db244) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: pass DESTDIR in EXTRA_OEMAKERoss Burton2016-04-191-1/+2
| | | | | | | | | | | | | Instead of passing DESTDIR just in the make install invocation, pass it in EXTRA_OEMAKE. This appears to stop perf from rebuilding at instal time for me, which appears to be the trigger for the random build failure. [ YOCTO #9182 ] (From OE-Core rev: 76c473dbe9e6a1eb8bca89f26cf29b41ca18d680) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: package python modules into perf-pythonBruce Ashfield2016-03-251-1/+1
| | | | | | | | | | | | | | | | | | The scripts that are part of perf require python and supporting modules. The existing perf-pyton dependency only brought in core python, which left us unable to actually execute the scripts on target. With this additional runtime dependency, we can now execte the sample analysis scripts when perf-scripting is availble. This is a partial fix for [YOCTO #9069], since there are still scripts looking for non-existent modules, and those will be dealt with in future releases. (From OE-Core rev: 1aa2d2a5e91fddb80c792d6c2ff5fd2e80c751eb) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: fix python scripts QA errorsBruce Ashfield2016-03-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | Two QA warnings were being generated from perf, due to the location of python scripts changing in the kernel build: WARNING: perf-1.0-r9 do_package_qa: QA Issue: /usr/libexec/perf-core/scripts/python/call-graph-from-postgresql.py contained in package perf-python requires /usr/bin/python2, but no providers found in RDEPENDS_perf-python? [file-rdeps] WARNING: QA Issue: /usr/libexec/perf-core/tests/attr.py_perf contained in package perf requires /usr/bin/python, but no providers found in its RDEPENDS [file-rdeps] By adding libexec dir to both the tests and scripts packaging, we get the appropriate RDEPENDS on the packages that actually contain the python scripts (without making perf-core depend on python). We also tweak any python scripts to use '/usr/bin/env python', rather than a version specific python, since it won't be provided and generate a QA error. [YOCTO #8991] (From OE-Core rev: d7888b6d7fd1a1930013f3d4e31a2522038cdc62) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* perf: add sysroot handling to subcmdMartin Donnelly2016-02-261-0/+4
| | | | | | | | | | | | 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>
* meta: more removals of redunant FILES_${PN}-dbgRoss Burton2015-12-161-1/+0
| | | | | | | | | | 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>
* perf: mkdir ${B} -> mkdir -p ${B}Robert Yang2015-09-181-1/+1
| | | | | | | | | | | | ${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>
* perf: fix the install-python_ext on upstream kernelRoy Li2015-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* perf: fix the install-python_extRoy Li2015-09-121-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* perf: fix build breakage on kernels after 4.1Reinette Chatre2015-08-121-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>