diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-11-25 22:39:15 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-11-25 22:39:15 +0000 |
commit | d934827bf44b7cfcf6711964418148fa60877668 (patch) | |
tree | 0625f358789b5e015e49db139cc1dbc9be00428f /dev-util/perf | |
parent | 2e34d110f164bf74d55fced27fe0000201b3eec5 (diff) |
gentoo resync : 25.11.2020
Diffstat (limited to 'dev-util/perf')
-rw-r--r-- | dev-util/perf/Manifest | 7 | ||||
-rw-r--r-- | dev-util/perf/metadata.xml | 75 | ||||
-rw-r--r-- | dev-util/perf/perf-5.8.ebuild | 6 | ||||
-rw-r--r-- | dev-util/perf/perf-5.9.9.ebuild | 250 |
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 +} |