forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-util/perf: version bump, for 5.{10,11}.x
Package-Manager: Portage-3.0.14, Repoman-3.0.2 Signed-off-by: Yixun Lan <[email protected]>
- Loading branch information
Showing
3 changed files
with
503 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,9 @@ | ||
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.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.10.16.xz 498880 BLAKE2B 14061b505285f24938fb955ccc7f9fbd78ccc0b1026bffb17a89fdad08ea54bfee7bbb841123d9af4d0720a960a27c649c39852af7e2be8a286af926c7bce9c0 SHA512 be9cfe1ae6697956ca7476cedc212a8cbd9da2c3c72096a89afaaf73c5b6655fd04d458f96c472f680c5513c0ea3e4449c4092a958425b6040f0c7774453cd2f | ||
DIST patch-5.4.20.xz 776552 BLAKE2B bad2a95ed8521ac5c379fe91e16d60b2a38de19b9239755084621e5230677b232ec4cf9e2e8161c0022daff43fdbb37d5b5b5bfdc9e932ef3a860bcd17f640f8 SHA512 65fbcdbd41e35c17601ff15bbe33933be2ab7a694aa181a0b802cc11c1c653c9b688dbb382076cbad05983a0c07467955c035ae25f5175f7ce5bc24339303d77 | ||
DIST patch-5.9.9.xz 502816 BLAKE2B 104fa2ecaac3c543662b891de22cb881a917320317d58dcaeb6b6826e3f0296126ab5177cc7a44a438c15d3ae9cab116ff6926cce9d5e4d310df99fca0d9b909 SHA512 87852bc4d08cd5e82c7de9a8c8d50c1b4c67eed7157bfe1034d279370ff21a194f082f126d49812f84ec726100c5d97b3d908994e92c2cbfd231a4ac851babe3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,250 @@ | ||
# Copyright 1999-2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python3_{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 ~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-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 | ||
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) \ | ||
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_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 | ||
} |
Oops, something went wrong.