summaryrefslogtreecommitdiff
path: root/dev-util/perf
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
commitd934827bf44b7cfcf6711964418148fa60877668 (patch)
tree0625f358789b5e015e49db139cc1dbc9be00428f /dev-util/perf
parent2e34d110f164bf74d55fced27fe0000201b3eec5 (diff)
gentoo resync : 25.11.2020
Diffstat (limited to 'dev-util/perf')
-rw-r--r--dev-util/perf/Manifest7
-rw-r--r--dev-util/perf/metadata.xml75
-rw-r--r--dev-util/perf/perf-5.8.ebuild6
-rw-r--r--dev-util/perf/perf-5.9.9.ebuild250
4 files changed, 298 insertions, 40 deletions
diff --git a/dev-util/perf/Manifest b/dev-util/perf/Manifest
index 21b581209cda..e2bafcb53a7c 100644
--- a/dev-util/perf/Manifest
+++ b/dev-util/perf/Manifest
@@ -5,8 +5,11 @@ AUX perf-5.4.7-propagate-cflags.patch 1502 BLAKE2B d35f94d10ecc2d384cae9084a7f84
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.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.9.9.xz 502816 BLAKE2B 104fa2ecaac3c543662b891de22cb881a917320317d58dcaeb6b6826e3f0296126ab5177cc7a44a438c15d3ae9cab116ff6926cce9d5e4d310df99fca0d9b909 SHA512 87852bc4d08cd5e82c7de9a8c8d50c1b4c67eed7157bfe1034d279370ff21a194f082f126d49812f84ec726100c5d97b3d908994e92c2cbfd231a4ac851babe3
EBUILD perf-5.4.20.ebuild 6651 BLAKE2B e1a091114d71ba1c01f838b8d5ff372e2adad012769b973a2e79d662f6c5f6ed6fd97b2f7be880bfc57fbb99c549c487a084bf2450a935dc34ef22725268047a SHA512 e14917b4e051d3734fa515f3dbf61a2fe2cfdbe5b3aed29b9ce3b05e70609a13276d5f8fd0522f0b4addca16abdd986fb70b16d2b51f1204d02df848b64e6138
EBUILD perf-5.7-r1.ebuild 6481 BLAKE2B 049d8502779dcc2b3f80cff18ab9795855495ce13342ab0394f29c22d552f45652c7faf0b19e24953180d5851167c875b397540375e3db0f66141863851387ab SHA512 66b7922dd0b77f2ee974695bbc6c2330c06b523b1cbc0d0dac0bf16f32489cb4266152267b70ee6130ad252075fac7f3858e5dc222e06d6ab2a8f2a10344f52e
-EBUILD perf-5.8.ebuild 6481 BLAKE2B 049d8502779dcc2b3f80cff18ab9795855495ce13342ab0394f29c22d552f45652c7faf0b19e24953180d5851167c875b397540375e3db0f66141863851387ab SHA512 66b7922dd0b77f2ee974695bbc6c2330c06b523b1cbc0d0dac0bf16f32489cb4266152267b70ee6130ad252075fac7f3858e5dc222e06d6ab2a8f2a10344f52e
-MISC metadata.xml 1355 BLAKE2B adf93b8b750786b9c181b5f4b4477883a365a07201da711d9ea535321d45b9c656397c46bd5f64a740d83e8acf4f2fea837a5a1eac754e9aa9f09692fe1d4d2b SHA512 3e489bb5b3556255d68bcffb3d7a377951da0470ea8e0a89dbc952d0029083fba7f7fd3c6f8a725bfa44c6e4d51871e2376b251f44a4295302be167d55dffb9f
+EBUILD perf-5.8.ebuild 6647 BLAKE2B 961f9690951c762298aa6d87371ce27079bf5387e3f470d6ffa90e8233fa9e1823aeb975658079ce165893420d4a980082414dc28befce63fb522a2250fe3c3e SHA512 39ebe613bafbeb9a2d7544e60e68b15645d51b8514b05e96f4fae8e2f4da0e7bb66059dcefb55e75c2e07c0bda2539468d70dc09d2e08b28fc1bc53c79337258
+EBUILD perf-5.9.9.ebuild 6860 BLAKE2B 1803c9d7d4f1387a1c1d68d16618d2575631566d60a77420aa44809d910a5f1f1982c3a3bfad1e31f3aafa9dfacf4b81536b5837cb542f920007a2b715ff172c SHA512 26d047b194db438875a348317c90fe71550f9523b3c81a26de48b91e0157b89e83ce8a239c63dad622e67f58c7337398c476d88d8aec402f8a5bff07b450a8e9
+MISC metadata.xml 1506 BLAKE2B 3f82b3824ed6e126239ccedc332b79b450a695df6149b094b05674e6bf99c1300919fd7046bc47b62a39f879cfaa72d1f496f46c2f6b76aded8ef154b3ae5a2d SHA512 ba7560b91456c4930c44427865859512166e747002fb4e5331530a2fd2b40f0828870ec59f21abb2836b6c51c70ddf77a820d475f7f8f97a03737c7178b5d8d6
diff --git a/dev-util/perf/metadata.xml b/dev-util/perf/metadata.xml
index 6755b7632512..279962a1a529 100644
--- a/dev-util/perf/metadata.xml
+++ b/dev-util/perf/metadata.xml
@@ -1,41 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/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">
- 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">
- 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="numa">Enable NUMA support</flag>
- <flag name="perl">
- Add support for Perl as a scripting language for perf tools.
- </flag>
- <flag name="systemtap">
- Add support to define SDT event in perf tools.
- </flag>
- <flag name="unwind">
- Use sys-libs/libunwind for frame unwinding support.
- </flag>
- </use>
+ <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">
+ 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">
+ Add support for Perl as a scripting language for perf tools.
+ </flag>
+ <flag name="systemtap">
+ Add support to define SDT event in perf tools.
+ </flag>
+ <flag name="unwind">
+ Use sys-libs/libunwind for frame unwinding support.
+ </flag>
+ </use>
</pkgmetadata>
diff --git a/dev-util/perf/perf-5.8.ebuild b/dev-util/perf/perf-5.8.ebuild
index d0b9058a60c1..b7df33f4c961 100644
--- a/dev-util/perf/perf-5.8.ebuild
+++ b/dev-util/perf/perf-5.8.ebuild
@@ -215,7 +215,11 @@ src_install() {
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
diff --git a/dev-util/perf/perf-5.9.9.ebuild b/dev-util/perf/perf-5.9.9.ebuild
new file mode 100644
index 000000000000..4ab143e4afea
--- /dev/null
+++ b/dev-util/perf/perf-5.9.9.ebuild
@@ -0,0 +1,250 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+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/"
+
+LINUX_V="${PV:0:1}.x"
+if [[ ${PV} == *_rc* ]] ; then
+ LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1))
+ PATCH_VERSION=$(ver_cut 1-3)
+ LINUX_PATCH=patch-${PV//_/-}.xz
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH}
+ https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}"
+elif [[ ${PV} == *.*.* ]] ; then
+ # stable-release series
+ LINUX_VER=$(ver_cut 1-2)
+ LINUX_PATCH=patch-${PV}.xz
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
+else
+ LINUX_VER=${PV}
+ SRC_URI=""
+fi
+
+LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
+SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~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="
+ 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-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:= )
+ python? ( ${PYTHON_DEPS} )
+ slang? ( sys-libs/slang )
+ systemtap? ( dev-util/systemtap )
+ unwind? ( sys-libs/libunwind )
+ zlib? ( sys-libs/zlib )
+ dev-libs/elfutils"
+
+DEPEND="${RDEPEND}
+ >=sys-kernel/linux-headers-4.19
+ ${LINUX_PATCH+dev-util/patchutils}
+ java? ( virtual/jdk )
+"
+
+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
+ scripts include lib "arch/*/lib"
+ )
+
+ # We expect the tar implementation to support the -j option (both
+ # GNU tar and libarchive's tar support that).
+ echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
+ tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
+ "${paths[@]/#/linux-${LINUX_VER}/}" || die
+
+ if [[ -n ${LINUX_PATCH} ]] ; then
+ eshopts_push -o noglob
+ ebegin "Filtering partial source patch"
+ filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \
+ > ${P}.patch
+ eend $? || die "filterdiff failed"
+ eshopts_pop
+ fi
+
+ local a
+ for a in ${A}; do
+ [[ ${a} == ${LINUX_SOURCES} ]] && continue
+ [[ ${a} == ${LINUX_PATCH} ]] && continue
+ unpack ${a}
+ done
+}
+
+src_prepare() {
+ default
+ if [[ -n ${LINUX_PATCH} ]] ; then
+ pushd "${S_K}" >/dev/null || die
+ eapply "${WORKDIR}"/${P}.patch
+ popd || die
+ fi
+
+ # Drop some upstream too-developer-oriented flags and fix the
+ # Makefile in general
+ sed -i \
+ -e "s:\$(sysconfdir_SQ)/bash_completion.d:$(get_bashcompdir):" \
+ "${S}"/Makefile.perf || die
+ # A few places still use -Werror w/out $(WERROR) protection.
+ sed -i -e 's:-Werror::' \
+ "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile || die
+
+ # Avoid the call to make kernelversion
+ 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; }
+perf_make() {
+ # The arch parsing is a bit funky. The perf tools package is integrated
+ # into the kernel, so it wants an ARCH that looks like the kernel arch,
+ # but it also wants to know about the split value -- i386/x86_64 vs just
+ # x86. We can get that by telling the func to use an older linux version.
+ # It's kind of a hack, but not that bad ...
+
+ # LIBDIR sets a search path of perf-gtk.so. Bug 515954
+
+ local arch=$(tc-arch-kernel)
+ local java_dir
+ use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm"
+ # FIXME: NO_CORESIGHT
+ # FIXME: NO_LIBBABELTRACE
+ emake V=1 VF=1 \
+ 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) \
+ feature-gtk2-infobar=$(usex gtk 1 "") \
+ NO_JVMTI=$(puse java) \
+ NO_LIBAUDIT=$(puse audit) \
+ NO_LIBBABELTRACE=1 \
+ NO_LIBBIONIC=1 \
+ NO_LIBBPF= \
+ NO_LIBCRYPTO=$(puse crypt) \
+ NO_LIBDW_DWARF_UNWIND= \
+ NO_LIBELF= \
+ NO_LIBNUMA=$(puse numa) \
+ NO_LIBPERL=$(puse perl) \
+ NO_LIBPYTHON=$(puse python) \
+ NO_LIBUNWIND=$(puse unwind) \
+ NO_SDT=$(puse systemtap) \
+ NO_SLANG=$(puse slang) \
+ NO_LZMA=$(puse lzma) \
+ NO_ZLIB= \
+ WERROR=0 \
+ LIBDIR="/usr/libexec/perf-core" \
+ "$@"
+}
+
+src_compile() {
+ # test-clang.bin not build with g++
+ if use clang; then
+ pushd "${S_K}/tools/build/feature/" || die
+ make V=1 CXX=${CHOST}-clang++ test-clang.bin || die
+ popd
+ fi
+ perf_make -f Makefile.perf
+ use doc && perf_make -C Documentation
+}
+
+src_test() {
+ :
+}
+
+src_install() {
+ _install_python_ext() {
+ perf_make -f Makefile.perf install-python_ext DESTDIR="${D}"
+ }
+
+ perf_make -f Makefile.perf install DESTDIR="${D}"
+
+ if use python; then
+ python_foreach_impl _install_python_ext
+ fi
+
+ if use gtk; then
+ 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
+}