diff options
Diffstat (limited to 'dev-util/perf')
| -rw-r--r-- | dev-util/perf/Manifest | 6 | ||||
| -rw-r--r-- | dev-util/perf/files/perf-5.1.15-fix-clang8.patch | 17 | ||||
| -rw-r--r-- | dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch | 60 | ||||
| -rw-r--r-- | dev-util/perf/files/perf-5.4.6-fix-clang9.patch | 17 | ||||
| -rw-r--r-- | dev-util/perf/files/perf-5.4.7-propagate-cflags.patch | 44 | ||||
| -rw-r--r-- | dev-util/perf/metadata.xml | 48 | ||||
| -rw-r--r-- | dev-util/perf/perf-5.10.16.ebuild (renamed from dev-util/perf/perf-5.7-r1.ebuild) | 77 | ||||
| -rw-r--r-- | dev-util/perf/perf-5.11.ebuild (renamed from dev-util/perf/perf-5.4.20.ebuild) | 118 |
8 files changed, 134 insertions, 253 deletions
diff --git a/dev-util/perf/Manifest b/dev-util/perf/Manifest index 9d23c4e598be..7742d4dac10e 100644 --- a/dev-util/perf/Manifest +++ b/dev-util/perf/Manifest @@ -1,6 +1,6 @@ -DIST linux-5.4.tar.xz 109441440 BLAKE2B 193bc4a3147e147d5529956164ec4912fad5d5c6fb07f909ff1056e57235834173194afc686993ccd785c1ff15804de0961b625f3008cca0e27493efc8f27b13 SHA512 9f60f77e8ab972b9438ac648bed17551c8491d6585a5e85f694b2eaa4c623fbc61eb18419b2656b6795eac5deec0edaa04547fc6723fbda52256bd7f3486898f -DIST linux-5.7.tar.xz 112690468 BLAKE2B b2b71e231507429b178b6b89be546c4a3ee2757f5d2c58b6137d383f16034a587225a75a9dbca6a01a433056ebe078487132c224e909a2971c9634687e47b1d1 SHA512 45bde01593f6147c8c169b9e46b4b56eee998142552ae0ff82f1dd21b1fd54f3b32f6283f6bd77ea717d374672167849e468c157f235d2f12f7d7816e4623bf6 +DIST linux-5.10.tar.xz 116606704 BLAKE2B b923d7b66309224f42f35f8a5fa219421b0a9362d2adacdadd8d96251f61f7230878ea297a269a7f3b3c56830f0b177e068691e1d7f88501a05653b0a13274d1 SHA512 95bc137d0cf9148da6a9d1f1a878698dc27b40f68e22c597544010a6c591ce1b256f083489d3ff45ff77753289b535135590194d88ef9f007d0ddab3d74de70e +DIST linux-5.11.tar.xz 117619104 BLAKE2B 81300c27bd5476387a83123aaeb4163c73eb61e9245806c23660cb5e6a4fa88ffc9def027031335fa0270fc4080506cd415990014364e3a98b9d2e8c58a29524 SHA512 a567ec133018bb5ec00c60281479b466c26e02137a93a9c690e83997947df02b6fd94e76e8df748f6d70ceb58a19bacc3b1467de10b7a1fad2763db32b3f1330 DIST linux-5.8.tar.xz 114459324 BLAKE2B 7bd97f8fa4527840754434414c07283e89731dc8ebb1e95fa5bc1469a60af1122582c0d3b6e262e77882f023190068df3537bd8b65964b3caa820bb2c8e579c7 SHA512 45a53ecf351096ef6e98242cca4228b8da9b9139ecc6963695791ea6fb7a9484a4e1c19dcca7ce7cbfdfa49de0451b70973bb078f12bdae9cbaddbc3f8092556 DIST linux-5.9.tar.xz 115507140 BLAKE2B e8d11472d63a9f8409ca12a2e8c97c6963a3d4516b5a398b627d6ece565584526f9b5a1377a2fa4bd184c09c7db94c987428bc5d52df0c788464a67e9e8d6dcb SHA512 d3d92ce4246bad74c9a784212f160d98449b1e8793970c2c308276568d852b8effe0528686bdb87d55d691f09a826abf7938d69bdd4759ce65ddd5c05ffe4eca -DIST patch-5.4.20.xz 776552 BLAKE2B bad2a95ed8521ac5c379fe91e16d60b2a38de19b9239755084621e5230677b232ec4cf9e2e8161c0022daff43fdbb37d5b5b5bfdc9e932ef3a860bcd17f640f8 SHA512 65fbcdbd41e35c17601ff15bbe33933be2ab7a694aa181a0b802cc11c1c653c9b688dbb382076cbad05983a0c07467955c035ae25f5175f7ce5bc24339303d77 +DIST patch-5.10.16.xz 498880 BLAKE2B 14061b505285f24938fb955ccc7f9fbd78ccc0b1026bffb17a89fdad08ea54bfee7bbb841123d9af4d0720a960a27c649c39852af7e2be8a286af926c7bce9c0 SHA512 be9cfe1ae6697956ca7476cedc212a8cbd9da2c3c72096a89afaaf73c5b6655fd04d458f96c472f680c5513c0ea3e4449c4092a958425b6040f0c7774453cd2f DIST patch-5.9.9.xz 502816 BLAKE2B 104fa2ecaac3c543662b891de22cb881a917320317d58dcaeb6b6826e3f0296126ab5177cc7a44a438c15d3ae9cab116ff6926cce9d5e4d310df99fca0d9b909 SHA512 87852bc4d08cd5e82c7de9a8c8d50c1b4c67eed7157bfe1034d279370ff21a194f082f126d49812f84ec726100c5d97b3d908994e92c2cbfd231a4ac851babe3 diff --git a/dev-util/perf/files/perf-5.1.15-fix-clang8.patch b/dev-util/perf/files/perf-5.1.15-fix-clang8.patch deleted file mode 100644 index 743f4b017b14..000000000000 --- a/dev-util/perf/files/perf-5.1.15-fix-clang8.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/678652 -Created-By: Maciej S. Szmigiero <mail@maciej.szmigiero.name> ---- ---- a/tools/build/feature/test-clang.cpp 2018-12-24 00:55:59.000000000 +0100 -+++ b/tools/build/feature/test-clang.cpp 2019-04-06 16:05:56.828757243 +0200 -@@ -1,10 +1,10 @@ - // SPDX-License-Identifier: GPL-2.0 --#include "clang/Basic/VirtualFileSystem.h" - #include "clang/Driver/Driver.h" - #include "clang/Frontend/TextDiagnosticPrinter.h" - #include "llvm/ADT/IntrusiveRefCntPtr.h" - #include "llvm/Support/ManagedStatic.h" - #include "llvm/Support/raw_ostream.h" -+#include "llvm/Support/VirtualFileSystem.h" - - using namespace clang; - using namespace clang::driver; diff --git a/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch b/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch deleted file mode 100644 index 9fa191f720a9..000000000000 --- a/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001 -From: Changbin Du <changbin.du@gmail.com> -Date: Tue, 28 Jan 2020 23:29:38 +0800 -Subject: perf: Make perf able to build with latest libbfd - -libbfd has changed the bfd_section_* macros to inline functions -bfd_section_<field> since 2019-09-18. See below two commits: - o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html - o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html - -This fix make perf able to build with both old and new libbfd. - -Signed-off-by: Changbin Du <changbin.du@gmail.com> -Acked-by: Jiri Olsa <jolsa@redhat.com> -Cc: Peter Zijlstra <peterz@infradead.org> -Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com -Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---- - tools/perf/util/srcline.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c -index 6ccf6f6..5b7d6c1 100644 ---- a/tools/perf/util/srcline.c -+++ b/tools/perf/util/srcline.c -@@ -193,16 +193,30 @@ static void find_address_in_section(bfd *abfd, asection *section, void *data) - bfd_vma pc, vma; - bfd_size_type size; - struct a2l_data *a2l = data; -+ flagword flags; - - if (a2l->found) - return; - -- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) -+#ifdef bfd_get_section_flags -+ flags = bfd_get_section_flags(abfd, section); -+#else -+ flags = bfd_section_flags(section); -+#endif -+ if ((flags & SEC_ALLOC) == 0) - return; - - pc = a2l->addr; -+#ifdef bfd_get_section_vma - vma = bfd_get_section_vma(abfd, section); -+#else -+ vma = bfd_section_vma(section); -+#endif -+#ifdef bfd_get_section_size - size = bfd_get_section_size(section); -+#else -+ size = bfd_section_size(section); -+#endif - - if (pc < vma || pc >= vma + size) - return; --- -cgit v1.1 - diff --git a/dev-util/perf/files/perf-5.4.6-fix-clang9.patch b/dev-util/perf/files/perf-5.4.6-fix-clang9.patch deleted file mode 100644 index 614e62f676d2..000000000000 --- a/dev-util/perf/files/perf-5.4.6-fix-clang9.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/695726 -Created-By: Maciej S. Szmigiero <mail@maciej.szmigiero.name> -Created-By: Dennis Schridde <devurandom@gmx.net> ---- a/tools/perf/util/c++/clang.cpp.orig 2019-12-20 16:39:21.015363866 +0100 -+++ b/tools/perf/util/c++/clang.cpp 2019-12-20 16:40:04.051639185 +0100 -@@ -71,7 +71,11 @@ - CompilerInstance Clang; - Clang.createDiagnostics(); - -+#if CLANG_VERSION_MAJOR < 9 - Clang.setVirtualFileSystem(&*VFS); -+#else -+ Clang.createFileManager(&*VFS); -+#endif - - #if CLANG_VERSION_MAJOR < 4 - IntrusiveRefCntPtr<CompilerInvocation> CI = diff --git a/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch b/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch deleted file mode 100644 index b1a9bcc25a1e..000000000000 --- a/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 55542113c690a567e728e40d4181d7d037fc21b0 Mon Sep 17 00:00:00 2001 -From: Jiri Olsa <jolsa@kernel.org> -Date: Fri, 11 Oct 2019 14:21:55 +0200 -Subject: perf tools: Propagate CFLAGS to libperf - -Andi reported that 'make DEBUG=1' does not propagate to the libbperf -code. It's true also for the other flags. Changing the code to propagate -the global build flags to libperf compilation. - -Reported-by: Andi Kleen <ak@linux.intel.com> -Signed-off-by: Jiri Olsa <jolsa@kernel.org> -Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> -Cc: Michael Petlan <mpetlan@redhat.com> -Cc: Namhyung Kim <namhyung@kernel.org> -Cc: Peter Zijlstra <peterz@infradead.org> -Link: http://lore.kernel.org/lkml/20191011122155.15738-1-jolsa@kernel.org -Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---- - tools/perf/lib/core.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -(limited to 'tools/perf/lib/core.c') - -diff --git a/tools/perf/lib/core.c b/tools/perf/lib/core.c -index d0b9ae422b9f..58fc894b76c5 100644 ---- a/tools/perf/lib/core.c -+++ b/tools/perf/lib/core.c -@@ -5,11 +5,12 @@ - #include <stdio.h> - #include <stdarg.h> - #include <unistd.h> -+#include <linux/compiler.h> - #include <perf/core.h> - #include <internal/lib.h> - #include "internal.h" - --static int __base_pr(enum libperf_print_level level, const char *format, -+static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format, - va_list args) - { - return vfprintf(stderr, format, args); --- -cgit 1.2-0.3.lf.el7 - diff --git a/dev-util/perf/metadata.xml b/dev-util/perf/metadata.xml index 279962a1a529..d7cef6bd478f 100644 --- a/dev-util/perf/metadata.xml +++ b/dev-util/perf/metadata.xml @@ -1,42 +1,44 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>naota@gentoo.org</email> - </maintainer> - <maintainer type="person"> - <email>dlan@gentoo.org</email> - <name>Yixun Lan</name> - </maintainer> - <maintainer type="person"> - <email>amadio@gentoo.org</email> - <name>Guilherme Amadio</name> - </maintainer> - <use> - <flag name="clang">Enable builtin clang and LLVM support</flag> - <flag name="demangle"> + <maintainer type="person"> + <email>naota@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <maintainer type="person"> + <email>amadio@gentoo.org</email> + <name>Guilherme Amadio</name> + </maintainer> + + <use> + <flag name="clang">Enable builtin clang and LLVM support</flag> + <flag name="demangle"> Enable C++ symbol name demangling, using libbfd from <pkg>sys-devel/binutils</pkg>. When this flag is enabled, the package will have to be rebuilt after every version bump of binutils. </flag> - <flag name="doc"> + <flag name="doc"> Build documentation and man pages. With this USE flag disabled, the --help parameter for perf and its sub-tools will not be available. This is optional because it depends on a few documentation handling tools that are not always welcome on user systems. </flag> - <flag name="libpfm">Enable <pkg>dev-libs/libpfm</pkg> support</flag> - <flag name="numa">Enable NUMA support</flag> - <flag name="perl"> + <flag name="libpfm">Enable <pkg>dev-libs/libpfm</pkg> support</flag> + <flag name="numa">Enable NUMA support</flag> + <flag name="perl"> Add support for Perl as a scripting language for perf tools. </flag> - <flag name="systemtap"> + <flag name="systemtap"> Add support to define SDT event in perf tools. </flag> - <flag name="unwind"> + <flag name="unwind"> Use sys-libs/libunwind for frame unwinding support. </flag> - </use> -</pkgmetadata> + </use> + <origin>gentoo-staging</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/dev-util/perf/perf-5.7-r1.ebuild b/dev-util/perf/perf-5.10.16.ebuild index 78b82ea748de..1cacf0b8e36a 100644 --- a/dev-util/perf/perf-5.7-r1.ebuild +++ b/dev-util/perf/perf-5.10.16.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -6,9 +6,6 @@ EAPI=7 PYTHON_COMPAT=( python3_{6,7,8,9,10} ) inherit bash-completion-r1 estack eutils llvm toolchain-funcs prefix python-r1 linux-info -MY_PV="${PV/_/-}" -MY_PV="${MY_PV/-pre/-git}" - DESCRIPTION="Userland tools for Linux Performance Counters" HOMEPAGE="https://perf.wiki.kernel.org/" @@ -34,11 +31,22 @@ SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" -IUSE="audit clang crypt debug +demangle +doc gtk java lzma numa perl python slang systemtap unwind zlib" +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="audit clang crypt debug +demangle +doc gtk java libpfm lzma numa perl python slang systemtap unwind zlib" # TODO babeltrace REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +BDEPEND=" + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + RDEPEND="audit? ( sys-process/audit ) crypt? ( dev-libs/openssl:0= ) clang? ( @@ -48,6 +56,7 @@ RDEPEND="audit? ( sys-process/audit ) demangle? ( sys-libs/binutils-libs:= ) gtk? ( x11-libs/gtk+:2 ) java? ( virtual/jre:* ) + libpfm? ( dev-libs/libpfm ) lzma? ( app-arch/xz-utils ) numa? ( sys-process/numactl ) perl? ( dev-lang/perl:= ) @@ -57,24 +66,25 @@ RDEPEND="audit? ( sys-process/audit ) unwind? ( sys-libs/libunwind ) zlib? ( sys-libs/zlib ) dev-libs/elfutils" + DEPEND="${RDEPEND} >=sys-kernel/linux-headers-4.19 - ${LINUX_PATCH+dev-util/patchutils} - sys-devel/bison - sys-devel/flex java? ( virtual/jdk ) - doc? ( - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time - )" +" S_K="${WORKDIR}/linux-${LINUX_VER}" S="${S_K}/tools/perf" CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" +pkg_pretend() { + if ! use doc ; then + ewarn "Without the doc USE flag you won't get any documentation nor man pages." + ewarn "And without man pages, you won't get any --help output for perf and its" + ewarn "sub-tools." + fi +} + pkg_setup() { use clang && LLVM_MAX_SLOT=9 llvm_pkg_setup } @@ -126,7 +136,8 @@ src_prepare() { "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile || die # Avoid the call to make kernelversion - echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die + echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE # The code likes to compile local assembly files which lack ELF markings. find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + @@ -149,7 +160,7 @@ perf_make() { local arch=$(tc-arch-kernel) local java_dir - use java && java_dir="/etc/java-config-2/current-system-vm" + use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" # FIXME: NO_CORESIGHT # FIXME: NO_LIBBABELTRACE emake V=1 VF=1 \ @@ -157,23 +168,26 @@ perf_make() { CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="$(tc-getLD)" NM="$(tc-getNM)" \ PKG_CONFIG="$(tc-getPKG_CONFIG)" \ prefix="${EPREFIX}/usr" bindir_relative="bin" \ + tipdir="share/doc/${PF}" \ EXTRA_CFLAGS="${CFLAGS}" \ ARCH="${arch}" \ JDIR="${java_dir}" \ LIBCLANGLLVM=$(usex clang 1 "") \ + LIBPFM4=$(usex libpfm 1 "") \ NO_AUXTRACE="" \ NO_BACKTRACE="" \ NO_CORESIGHT=1 \ NO_DEMANGLE=$(puse demangle) \ - NO_GTK2=$(puse gtk) \ + GTK2=$(usex gtk 1 "") \ + feature-gtk2-infobar=$(usex gtk 1 "") \ NO_JVMTI=$(puse java) \ NO_LIBAUDIT=$(puse audit) \ NO_LIBBABELTRACE=1 \ NO_LIBBIONIC=1 \ - NO_LIBBPF="" \ + NO_LIBBPF= \ NO_LIBCRYPTO=$(puse crypt) \ - NO_LIBDW_DWARF_UNWIND="" \ - NO_LIBELF="" \ + NO_LIBDW_DWARF_UNWIND= \ + NO_LIBELF= \ NO_LIBNUMA=$(puse numa) \ NO_LIBPERL=$(puse perl) \ NO_LIBPYTHON=$(puse python) \ @@ -208,30 +222,29 @@ src_install() { } perf_make -f Makefile.perf install DESTDIR="${D}" + if use python; then python_foreach_impl _install_python_ext fi - rm -rv "${ED}"/usr/share/doc/perf-tip || die - if use gtk; then - mv "${ED}"/usr/$(get_libdir)/libperf-gtk.so \ + local libdir + libdir="$(get_libdir)" + # on some arches it ends up in lib even on 64bit, ppc64 for instance. + [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" + mv "${ED}"/usr/${libdir}/libperf-gtk.so \ "${ED}"/usr/libexec/perf-core || die fi dodoc CREDITS dodoc *txt Documentation/*.txt + + # perf needs this decompressed to print out tips for users + docompress -x /usr/share/doc/${PF}/tips.txt + if use doc ; then HTML_DOCS="Documentation/*.html" einstalldocs doman Documentation/*.1 fi } - -pkg_postinst() { - if ! use doc ; then - elog "Without the doc USE flag you won't get any documentation nor man pages." - elog "And without man pages, you won't get any --help output for perf and its" - elog "sub-tools." - fi -} diff --git a/dev-util/perf/perf-5.4.20.ebuild b/dev-util/perf/perf-5.11.ebuild index faffbe39b09a..1cacf0b8e36a 100644 --- a/dev-util/perf/perf-5.4.20.ebuild +++ b/dev-util/perf/perf-5.11.ebuild @@ -1,13 +1,10 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 PYTHON_COMPAT=( python3_{6,7,8,9,10} ) -inherit bash-completion-r1 estack eutils toolchain-funcs python-r1 linux-info - -MY_PV="${PV/_/-}" -MY_PV="${MY_PV/-pre/-git}" +inherit bash-completion-r1 estack eutils llvm toolchain-funcs prefix python-r1 linux-info DESCRIPTION="Userland tools for Linux Performance Counters" HOMEPAGE="https://perf.wiki.kernel.org/" @@ -34,20 +31,32 @@ SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" -IUSE="audit clang crypt debug +demangle +doc gtk java lzma numa perl python slang systemtap unwind zlib" +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="audit clang crypt debug +demangle +doc gtk java libpfm lzma numa perl python slang systemtap unwind zlib" # TODO babeltrace REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +BDEPEND=" + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + RDEPEND="audit? ( sys-process/audit ) crypt? ( dev-libs/openssl:0= ) clang? ( - sys-devel/clang:* - sys-devel/llvm:* + <sys-devel/clang-10:* + <sys-devel/llvm-10:* ) demangle? ( sys-libs/binutils-libs:= ) gtk? ( x11-libs/gtk+:2 ) java? ( virtual/jre:* ) + libpfm? ( dev-libs/libpfm ) lzma? ( app-arch/xz-utils ) numa? ( sys-process/numactl ) perl? ( dev-lang/perl:= ) @@ -57,28 +66,33 @@ RDEPEND="audit? ( sys-process/audit ) unwind? ( sys-libs/libunwind ) zlib? ( sys-libs/zlib ) dev-libs/elfutils" + DEPEND="${RDEPEND} >=sys-kernel/linux-headers-4.19 - ${LINUX_PATCH+dev-util/patchutils} - sys-devel/bison - sys-devel/flex java? ( virtual/jdk ) - doc? ( - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time - )" +" S_K="${WORKDIR}/linux-${LINUX_VER}" S="${S_K}/tools/perf" CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" +pkg_pretend() { + if ! use doc ; then + ewarn "Without the doc USE flag you won't get any documentation nor man pages." + ewarn "And without man pages, you won't get any --help output for perf and its" + ewarn "sub-tools." + fi +} + +pkg_setup() { + use clang && LLVM_MAX_SLOT=9 llvm_pkg_setup +} + src_unpack() { local paths=( tools/arch tools/build tools/include tools/lib tools/perf tools/scripts - include lib "arch/*/lib" + scripts include lib "arch/*/lib" ) # We expect the tar implementation to support the -j option (both @@ -102,26 +116,6 @@ src_unpack() { [[ ${a} == ${LINUX_PATCH} ]] && continue unpack ${a} done - - # support clang8 - echo $(clang-major-version) - if use clang; then - local old_CC=${CC} - CC=${CHOST}-clang - if [[ $(clang-major-version) -ge 8 ]]; then - pushd "${S_K}" >/dev/null || die - eapply \ - "${FILESDIR}/perf-5.1.15-fix-clang8.patch" \ - "${FILESDIR}/perf-5.4.6-fix-clang9.patch" - popd || die - fi - CC=${old_CC} - fi - - pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}/perf-5.4.7-propagate-cflags.patch" - eapply "${FILESDIR}/perf-5.4.20-binutil-libs-2.34.patch" - popd || die } src_prepare() { @@ -142,10 +136,16 @@ src_prepare() { "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile || die # Avoid the call to make kernelversion - echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die + echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE # The code likes to compile local assembly files which lack ELF markings. find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + + + # Fix shebang to use python from prefix + if [[ -n "${EPREFIX}" ]]; then + hprefixify ${S_K}/scripts/bpf_helpers_doc.py + fi } puse() { usex $1 "" no; } @@ -160,29 +160,34 @@ perf_make() { local arch=$(tc-arch-kernel) local java_dir - use java && java_dir="/etc/java-config-2/current-system-vm" + use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" # FIXME: NO_CORESIGHT # FIXME: NO_LIBBABELTRACE emake V=1 VF=1 \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="$(tc-getLD)" \ + HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \ + CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="$(tc-getLD)" NM="$(tc-getNM)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ prefix="${EPREFIX}/usr" bindir_relative="bin" \ + tipdir="share/doc/${PF}" \ EXTRA_CFLAGS="${CFLAGS}" \ ARCH="${arch}" \ JDIR="${java_dir}" \ LIBCLANGLLVM=$(usex clang 1 "") \ + LIBPFM4=$(usex libpfm 1 "") \ NO_AUXTRACE="" \ NO_BACKTRACE="" \ NO_CORESIGHT=1 \ NO_DEMANGLE=$(puse demangle) \ - NO_GTK2=$(puse gtk) \ + GTK2=$(usex gtk 1 "") \ + feature-gtk2-infobar=$(usex gtk 1 "") \ NO_JVMTI=$(puse java) \ NO_LIBAUDIT=$(puse audit) \ NO_LIBBABELTRACE=1 \ NO_LIBBIONIC=1 \ - NO_LIBBPF="" \ + NO_LIBBPF= \ NO_LIBCRYPTO=$(puse crypt) \ - NO_LIBDW_DWARF_UNWIND="" \ - NO_LIBELF="" \ + NO_LIBDW_DWARF_UNWIND= \ + NO_LIBELF= \ NO_LIBNUMA=$(puse numa) \ NO_LIBPERL=$(puse perl) \ NO_LIBPYTHON=$(puse python) \ @@ -217,30 +222,29 @@ src_install() { } perf_make -f Makefile.perf install DESTDIR="${D}" + if use python; then python_foreach_impl _install_python_ext fi - rm -rv "${ED}"/usr/share/doc/perf-tip || die - if use gtk; then - mv "${ED}"/usr/$(get_libdir)/libperf-gtk.so \ + local libdir + libdir="$(get_libdir)" + # on some arches it ends up in lib even on 64bit, ppc64 for instance. + [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" + mv "${ED}"/usr/${libdir}/libperf-gtk.so \ "${ED}"/usr/libexec/perf-core || die fi dodoc CREDITS dodoc *txt Documentation/*.txt + + # perf needs this decompressed to print out tips for users + docompress -x /usr/share/doc/${PF}/tips.txt + if use doc ; then HTML_DOCS="Documentation/*.html" einstalldocs doman Documentation/*.1 fi } - -pkg_postinst() { - if ! use doc ; then - elog "Without the doc USE flag you won't get any documentation nor man pages." - elog "And without man pages, you won't get any --help output for perf and its" - elog "sub-tools." - fi -} |
