diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-11-20 03:02:59 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-11-20 03:02:59 +0000 |
commit | 8a5f3383bbc5f817d89554020a3600d06985bc4a (patch) | |
tree | c1f7e85e7de87c74b4c730fab5369051cef5cb32 /dev-util | |
parent | f2e359c456b051f95efc92e21299d55a302e58ed (diff) |
gentoo auto-resync : 20:11:2024 - 03:02:59
Diffstat (limited to 'dev-util')
-rw-r--r-- | dev-util/Manifest.gz | bin | 65174 -> 65177 bytes | |||
-rw-r--r-- | dev-util/android-udev-rules/Manifest | 2 | ||||
-rw-r--r-- | dev-util/android-udev-rules/android-udev-rules-20241109.ebuild | 42 | ||||
-rw-r--r-- | dev-util/babeltrace/Manifest | 2 | ||||
-rw-r--r-- | dev-util/babeltrace/babeltrace-2.0.5.ebuild | 9 | ||||
-rw-r--r-- | dev-util/lttng-tools/Manifest | 4 | ||||
-rw-r--r-- | dev-util/lttng-tools/lttng-tools-2.13.14.ebuild | 4 | ||||
-rw-r--r-- | dev-util/lttng-tools/lttng-tools-2.13.9.ebuild | 4 | ||||
-rw-r--r-- | dev-util/perf/Manifest | 13 | ||||
-rw-r--r-- | dev-util/perf/files/perf-6.10-bpf-capstone.patch | 456 | ||||
-rw-r--r-- | dev-util/perf/files/perf-6.10-expr.patch | 22 | ||||
-rw-r--r-- | dev-util/perf/files/perf-6.10.3-bpf-capstone.patch | 455 | ||||
-rw-r--r-- | dev-util/perf/files/perf-6.11-bpf-capstone.patch | 469 | ||||
-rw-r--r-- | dev-util/perf/perf-6.10.4.ebuild | 345 | ||||
-rw-r--r-- | dev-util/perf/perf-6.10.ebuild | 342 | ||||
-rw-r--r-- | dev-util/perf/perf-6.11.7.ebuild | 2 | ||||
-rw-r--r-- | dev-util/perf/perf-6.12.ebuild (renamed from dev-util/perf/perf-6.11.ebuild) | 10 |
17 files changed, 71 insertions, 2110 deletions
diff --git a/dev-util/Manifest.gz b/dev-util/Manifest.gz Binary files differindex c21bae8d9cb5..e8086abf6550 100644 --- a/dev-util/Manifest.gz +++ b/dev-util/Manifest.gz diff --git a/dev-util/android-udev-rules/Manifest b/dev-util/android-udev-rules/Manifest index fcb2e68cb65e..f0ace46c866b 100644 --- a/dev-util/android-udev-rules/Manifest +++ b/dev-util/android-udev-rules/Manifest @@ -1,7 +1,9 @@ DIST android-udev-rules-20240625.tar.gz 24970 BLAKE2B 40558ad0d6207efa690c632f76ceb71cbd79c6cff68463857a211f3fe9257bbf1d37260ccfec2d9bafff480b14bbf7b2f47b65852b7cc7aeaefc9e36cc122a95 SHA512 c9d534d7ddc5e290a992773a967f1625241f999c22d1c469e7f88c3c39a3a01da922e42d31b0c8b109dac08400f0cf515177a048a2a0ae27d2158ba265d2649e DIST android-udev-rules-20240829.tar.gz 24981 BLAKE2B 8886bb32bd70c4ebb1ce0381ca6799ec12087a59ce7266bfb7cf3a3daba60c4fab854a0a9fa24084acf4db983a1b0f9271b4e1bf32c6b21d21db289281c15f86 SHA512 a75b23ab0ad12d11af3ace9dfbab218fb56ee186a4e69c59358ea77322355150f889a900fd7ae9eb673d3f8ff7acde6262eb8915225df337191d992716665128 DIST android-udev-rules-20241019.tar.gz 25029 BLAKE2B 3e556bfd121a1f413281beec32289ef097faba7e79487483378505fee97e16a6a87fa6559a749bca8d7dffebb95e9cc20a205e36c31eca6e43d8bfa3cc8f1ac6 SHA512 1979b2338bcaeef08a31d1009abdc0c4cf30c9c52b58639bb54879d4a56fde406aa643d32557a367c35cc90cbbf5c52d1d30e9cd1f24878a8bc88b93c6bf9462 +DIST android-udev-rules-20241109.tar.gz 25066 BLAKE2B f4e6aae124d84752cb22365a1362a1865fee98bab45e2726e0c1c586f71aa17fe9e68277b8b38d65bcc1fa5b6a468ce03f6cdb318c5f9b414328cef7a21f4f43 SHA512 93df449cb5fe4f2058f385e9de40559da9ae0cde0cf18aed3c5690c7393027c60b0e6d31a4963449271888b3780fbdfdfcf609a23732194411d90ace744ac556 EBUILD android-udev-rules-20240625.ebuild 766 BLAKE2B 528a426105ae536d5b3b40740c33bf9841f3adb9da37c3889f935c9c6776cbd141c1760ccf0b7b3d0c764dd18b157e2048ecb9bf4d08849f897e4b01b39a38a3 SHA512 cfa90ae659bfbfdc9ae18dbfa1ca6fba43f89ce4c1a9b492b77603306ec8dca6cef3e05666954bc044c68e28f40b27a808fac22b929475d98a5b9b55f070cb50 EBUILD android-udev-rules-20240829.ebuild 766 BLAKE2B 528a426105ae536d5b3b40740c33bf9841f3adb9da37c3889f935c9c6776cbd141c1760ccf0b7b3d0c764dd18b157e2048ecb9bf4d08849f897e4b01b39a38a3 SHA512 cfa90ae659bfbfdc9ae18dbfa1ca6fba43f89ce4c1a9b492b77603306ec8dca6cef3e05666954bc044c68e28f40b27a808fac22b929475d98a5b9b55f070cb50 EBUILD android-udev-rules-20241019.ebuild 769 BLAKE2B 0b07aa117be352ca786d93e9206b07e49257804e2f667402297f29cae654fd5c8434fcef2a512324db2a612649d7783ebc563eda4e53f405ce03cf5a646105d3 SHA512 69f3103464df10a403d04799c7bd24bcc37a40130814edd531849d0a359e3cd0243a0e63fbd6270d99591b8532008feee3727b4b5f2b2a737a52eb5a79d2e889 +EBUILD android-udev-rules-20241109.ebuild 769 BLAKE2B 0b07aa117be352ca786d93e9206b07e49257804e2f667402297f29cae654fd5c8434fcef2a512324db2a612649d7783ebc563eda4e53f405ce03cf5a646105d3 SHA512 69f3103464df10a403d04799c7bd24bcc37a40130814edd531849d0a359e3cd0243a0e63fbd6270d99591b8532008feee3727b4b5f2b2a737a52eb5a79d2e889 MISC metadata.xml 513 BLAKE2B 6c3d6dc38ce42493d7d8a6705b506fd30f47705a51b07530f89fb31b55f3ee304c6af720c068c54090837df5f82043320af9fe165c92afefc5678c16765208e7 SHA512 dc0379358009a9e2548571034a3dbca2f1a446877452c81ef9ed6f07c7f6633af77693c505e3336e9ac87746f4f2e395c29deba9d119a0c41a91a322d180e19d diff --git a/dev-util/android-udev-rules/android-udev-rules-20241109.ebuild b/dev-util/android-udev-rules/android-udev-rules-20241109.ebuild new file mode 100644 index 000000000000..b566bb91970c --- /dev/null +++ b/dev-util/android-udev-rules/android-udev-rules-20241109.ebuild @@ -0,0 +1,42 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit udev + +DESCRIPTION="Android udev rules list aimed to be the most comprehensive on the net" +HOMEPAGE="https://github.com/M0Rf30/android-udev-rules" +SRC_URI="https://github.com/M0Rf30/android-udev-rules/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" + +# No tests +RESTRICT="test" + +RDEPEND=" + acct-group/android + virtual/udev +" + +src_prepare() { + default + + # Use the pre-existing android group + sed -i 's/GROUP="adbusers"/GROUP="android"/' 51-android.rules || die +} + +src_install() { + udev_dorules 51-android.rules + einstalldocs +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/dev-util/babeltrace/Manifest b/dev-util/babeltrace/Manifest index 1b83a2923130..6520e5ff6ef2 100644 --- a/dev-util/babeltrace/Manifest +++ b/dev-util/babeltrace/Manifest @@ -4,5 +4,5 @@ DIST babeltrace-1.5.8.tar.bz2 992610 BLAKE2B 3d47f9ba40b406271a0b35e441968718c93 DIST babeltrace2-2.0.5.tar.bz2 3252593 BLAKE2B 31a8f3c080e4a6b6e33c224ec4a64d5ff12724a5697954cb92b88c569d6f2019f49ddcb88f82d36be3007c7b5d1334370202d1c0e89122acf340a7cb9e399fa3 SHA512 63469cb0796c720b18bfc09569875eb9a44d2f8a776228bfa503af8ba613b2988b2d20be870f41451e5d6146a3dfb08de6284131d25f1a86137deb75c3a4d514 EBUILD babeltrace-1.5.11.ebuild 828 BLAKE2B 003a4829498fe7ab9bd326aa1183c67a71de372bc1c4e014e487f653c39134d151ee02d0a72284e4dced04311507f6200b13ace8a6836496c627805973633a40 SHA512 e349b1c847c11caf5b9d29360f0b5eafd233c939e9c2d5afa158dae4d053eeb92abf2644b472dd1b04ad951a68faf1ae0b049109b8df6d99ef226c628358c384 EBUILD babeltrace-1.5.8.ebuild 814 BLAKE2B dbd7521736175087865d89a6c26bb49ae27bfd4f90d3f8dc6a466d011b3dbfa1a68734941104894c51a15a25dad5976d478aa7da7f637576c924f63e987aac48 SHA512 60decdf160cdbed65e0c537f0858a540ce1e8ce453218468fe8cc53250e717acb3a9b1f73e026876abe12afb04385db99b7c7ea3ca5bb3cfcbe4ffcfe10f0cd1 -EBUILD babeltrace-2.0.5.ebuild 1541 BLAKE2B 9bbbb36bd6a6d0f988a8674e50d9d2583fd1dc2cce2d926ff02901933d2b9afbbe8f579986c4018d4762fa2527094cc554226986913030417e48252f64ec5cf0 SHA512 b954a5545d74027a7567d52d9833cb4ed1047fce7645aa9a07bc6a7c9323244eb6a16e24066755b449af581708bf77cd922455acd5ea9132bc2c87ab07027db9 +EBUILD babeltrace-2.0.5.ebuild 1621 BLAKE2B 030b2f390ea3c5dec62097cfda3824ed2177dc4eb85c929754d943527ae977653f33d5c308bc2d82d8597b858664bbe5f6d66acf4efbaebebe6a8f731c969b42 SHA512 153019e3609c90dd82018fae26fdcf9187e097c934120a716d8d0a26eb48dd0b7c6ce1fc6046598c9718c3babcb043ec481dbef32d41a1071a82ec15dfa79998 MISC metadata.xml 678 BLAKE2B 0298ddf00050c55f360e4e02d9c590db5df5b9b6cfc6d2096685281cef84130a8003bdb9190215310aa955e30fcf6c3fb72eb301091ae9c4f0a3d29b55d9e627 SHA512 2bf5458672c71b4511e64eea1cee4324d245a8adc0bc43b9e9340e43b8a2826555bcceb80f37baf06c99deb60340a752478d033eb8a271ac79d9b86ed0a583cc diff --git a/dev-util/babeltrace/babeltrace-2.0.5.ebuild b/dev-util/babeltrace/babeltrace-2.0.5.ebuild index e20776805f40..a903675a4222 100644 --- a/dev-util/babeltrace/babeltrace-2.0.5.ebuild +++ b/dev-util/babeltrace/babeltrace-2.0.5.ebuild @@ -9,13 +9,13 @@ inherit python-single-r1 DESCRIPTION="A command-line tool and library to read and convert trace files" HOMEPAGE="https://babeltrace.org/" SRC_URI="https://www.efficios.com/files/${PN}/${PN}$(ver_cut 1)-${PV}.tar.bz2" +S="${WORKDIR}/${PN}$(ver_cut 1)-${PV}" LICENSE="GPL-2" SLOT="0/$(ver_cut 1)" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="doc +elfutils +man plugins python" REQUIRED_USE="plugins? ( python ) python? ( ${PYTHON_REQUIRED_USE} )" -S="${WORKDIR}/${PN}$(ver_cut 1)-${PV}" RDEPEND=">=dev-libs/glib-2.28:2 elfutils? ( >=dev-libs/elfutils-0.154 ) @@ -37,6 +37,10 @@ BDEPEND="${RDEPEND} ) " +pkg_setup() { + use python && python-single-r1_pkg_setup +} + src_configure() { use python && export PYTHON_CONFIG="${EPYTHON}-config" econf \ @@ -47,7 +51,8 @@ src_configure() { $(usex python $(use_enable doc python-bindings-doc) --disable-python-bindings-doc) \ $(use_enable plugins python-plugins) \ --disable-built-in-plugins \ - --disable-built-in-python-plugin-support + --disable-built-in-python-plugin-support \ + --disable-Werror } src_install() { diff --git a/dev-util/lttng-tools/Manifest b/dev-util/lttng-tools/Manifest index 0e8532a821db..edcd8e25cc01 100644 --- a/dev-util/lttng-tools/Manifest +++ b/dev-util/lttng-tools/Manifest @@ -1,6 +1,6 @@ AUX lttng-tools-2.13.9-slibtool.patch 4024 BLAKE2B 38aae443574440c9efd3b895c55e7a2e482d0dc1ba27f0bddfe43170a5b1fc20b8be436ce31005bac71c33bf9c312197bde07f20a7e721426f2ed943309a5890 SHA512 186ec460c30de9696685769e0bdba8dcf5f55b13e0bbf1565f087f7ec5381cf4de90795d6fa703136ed0f06ab51931911f30518ff8c6088753d91323be20e3b2 DIST lttng-tools-2.13.14.tar.bz2 1932238 BLAKE2B f079051502d01ffc67c4f8f0bbcdf3a4428546c652dcc352918c4908a37aeb510dd66309306cec835297c8d2f276e5cbd22ea4efef6866d3c0c0cf8651d68ef8 SHA512 61bdebb539cfb4eb61c9806e98742f39dc032d849b03d90cdb98d1891bd5bfbd0cb1f54bbc7bf79a11505ce7fee558497312d650bb41f11f739884e7cb8a750f DIST lttng-tools-2.13.9.tar.bz2 1892293 BLAKE2B 51c4824435164196a77c8b6b3072810df83caf488c5fb692f9990b8d743ced2b07bffffa1e5a671149c75f3d96267f9c92f042c6c13503e03894f4c352c1733b SHA512 ff7a395d9af3fc44561be24163a84ce27ddd1338f7df2805037645b98c4ad17496553f17b8f0ede7bee967d630b53000c080a91ea8e1ced25ce86b010941b94e -EBUILD lttng-tools-2.13.14.ebuild 1095 BLAKE2B 3e6b77692cf793d257946a422a51497211ee0b574d13d8b8f07d89fea0fe5fd006e8da1ae6fe1240cfd737eb289c95a526a18effbfeab025c07a1716c0e4ed5f SHA512 4cf128f283305260445a1dee09ebf89d8cc1eb37df404eb947bafd2b8fb851810e5e1d399891411f1fcad9493ff261101c2dcfe04a35b3807a34e488c8a3756a -EBUILD lttng-tools-2.13.9.ebuild 1275 BLAKE2B fb7f1d283dd76ce53f640d0c9792fac41b2098b7550119191ee6137647f8b25bf3c0226a2374770064d054b57a53a2e42e3ba57421dae276c5950b3666ea9e2d SHA512 67c26d3b67801b2c4651c08f40eea7ac775278e712e87c1ad564ff0b8a5dc5f8a7cc0d9e5112de0266207428491bc8e77ec2e597fb15698f82ee440af13158e4 +EBUILD lttng-tools-2.13.14.ebuild 1120 BLAKE2B fd48da4ce3fb9ee079fab427892c0625b0da6ef1d426b89c21ae53af073750bcba3f9372f1f2996791e5dd128c487ae1cb35689babace5b126569b600184ddf9 SHA512 765e67d1373cf1924ff571a4e672a7a45dbfb076828c73e4cf3f3f373bab71d9e7207dab1a617939e6d58aaef2f774a4d6376a3438f00cefb129a221a8001bb1 +EBUILD lttng-tools-2.13.9.ebuild 1300 BLAKE2B c53975d6e35d6ce6b6534cbae74224b45d5a58ad5de853c55ad6bc526a9dd59efae920de1fa899b339c647a51748025fd8c7eee86d9787fac7078f3a8b2c2f08 SHA512 6af41c75757a4c2014cd25982738709d469e2bd73ffc16f6614bea5581c644c04225a0cc31bb0ecb94f57b637aa98a14a3b4e1411a12c43153712f996ba0053c MISC metadata.xml 502 BLAKE2B 3c29db929f2a3cbc9c72d07f5f0eb9e830879c044f2d902435c21e0e36801cd84999dd4723f129145a3d82a467976236539c75ac07ea2137a461c87d49e396a3 SHA512 9669dcfdfac9097ac2196456c2ae71037f9c0afe9fdaa67a9fdf1b55ef30b3a1b3cc482b7632c3bca72a02ae933dbadcaa328bcbe88e2083e4ad0ce0b60b97fd diff --git a/dev-util/lttng-tools/lttng-tools-2.13.14.ebuild b/dev-util/lttng-tools/lttng-tools-2.13.14.ebuild index 5c8ab318c0d8..77e87b71801b 100644 --- a/dev-util/lttng-tools/lttng-tools-2.13.14.ebuild +++ b/dev-util/lttng-tools/lttng-tools-2.13.14.ebuild @@ -41,7 +41,9 @@ src_configure() { # bug 906928 use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE - econf $(usex ust "" --without-lttng-ust) + econf \ + $(usex ust "" --without-lttng-ust) \ + --disable-Werror } src_install() { diff --git a/dev-util/lttng-tools/lttng-tools-2.13.9.ebuild b/dev-util/lttng-tools/lttng-tools-2.13.9.ebuild index ce9797cfbfb1..d24f0b3772ae 100644 --- a/dev-util/lttng-tools/lttng-tools-2.13.9.ebuild +++ b/dev-util/lttng-tools/lttng-tools-2.13.9.ebuild @@ -52,7 +52,9 @@ src_configure() { # bug 906928 use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE - econf $(usex ust "" --without-lttng-ust) + econf \ + $(usex ust "" --without-lttng-ust) \ + --disable-Werror } src_install() { diff --git a/dev-util/perf/Manifest b/dev-util/perf/Manifest index b6229851f1aa..12e7f71911f0 100644 --- a/dev-util/perf/Manifest +++ b/dev-util/perf/Manifest @@ -1,18 +1,11 @@ -AUX perf-6.10-bpf-capstone.patch 11805 BLAKE2B 5e4f2942b6ab4e7c3e149b86dab9515b0a60ab73e003b59bb2623288896f4db3bd80f372110e9ef7f2da49641c925fe60989fb5e21dd5e2e13409fc7e60b3722 SHA512 ac5270276552b934736dd111eefe7019cfe091a14ed7e2fe107527b69652e82415f4142a1199db5e3a1a3e0b48b7ee0166f650bfe0fb25bdc69908b376baf3d3 -AUX perf-6.10-expr.patch 1355 BLAKE2B d4dcb3b8b79944f304fd8789cd680e91e2fb1deffaa0ac108e200130f9ab669bea6a8ad65efc66b730b3282d523f839812cc4de6861b665c86bf2ba400645743 SHA512 0b031a675c49149b0f7623c0e663e4b6c2866ab4fa7e7e29712a55ebbceccef68bdde8ebe1f70a0f3e035e75e6e8e6fb90c06d0c16d39d2866ecbded4ff0c5cc -AUX perf-6.10.3-bpf-capstone.patch 11856 BLAKE2B 17f3d66a4fd0508f3ac89d4c9d18341dac97cf4b753bde85887a1b9ee79c10a3e1e94d28bb2c77a69dd35c5db21ef7ffe83314c8adca95dcc3ca353829eff139 SHA512 c41dcee2e85676a56178a0cb9998f1a56dab1aba8c49cdac506fd05bf72065a6dc51a46d48fe968a45ab5a872235f6839aab93b3464e6cf25aa66580b92ac652 -AUX perf-6.11-bpf-capstone.patch 12796 BLAKE2B 8d99c9bf701589c025886ff64a3591537676ac6f8f0dc56693d2542f95ceb8ec575c8c5724dc9dfa1eee0253e71efbe304f8b5457b1323a54d10f0cdf9659203 SHA512 b6ee9c74d3839febb90c86ed58f6162b268e06ab2c545e840e5a62cf062f1f6e5d2d8fca978ef6092572c61e168301984fb3ddf27bc02ed9351b01dc5558fe4e AUX perf-6.11.7-annotate.patch 583 BLAKE2B 31fddd43a96409b303d6b516d942a7392a33f105a1b49d97ccdd8b9f46a2170348f668222aaab9fe404e4851fedd429797e2286c64e8bc11ff7e954a367f1331 SHA512 b99c8e7d609cf5dccc67772b5f307c6dc890c74e63060f615602a99c519c951fe075d645ad74919ebf09fb7272a30a06098252a0e5c68a8c8fd0a6c89440ca52 AUX perf-6.4-libtracefs.patch 780 BLAKE2B dc97e42f1d3ece03722441b5a2c1f87ab9871ca92b9cf9f57b2e44627fddfcedaf6d7f64ddf74fd103c23aa0db71c4d147f7841743eb5c5a466c9bbb150597ea SHA512 da1b69c190491dd926ba1e98a43965a5ffd543df4134e6a10d187ab544695617fcffede3190bce4cbef13b897d113dee743f67a98ff249a486f8de2d49e62f9f AUX perf-6.7-expr.patch 1257 BLAKE2B 1ff41975d84f835a343d2b2f9f049edd817bf80ca576879c7f819608506341b5d19147cf3ecd67a731ab6ecf9a45ce494a8a665aa1bff86cc14f3967a6dd12a0 SHA512 8f1a5a8412464f7623b10da562552b2ac17ca8e70eb4507a3751493662e64066828f2b7a73f1bc7546f463d8d21919f59622b978a6bacafed6a93f232a15ff0b -DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2 DIST linux-6.11.tar.xz 146900704 BLAKE2B e7750c0878d71a56a0ce52d4c4c912199dad5bf5e2e8f872585a6494afbb37cbd852e612a6858936d2dc9b7776a3933818f540db408d57e90d18ea5249bba7ab SHA512 329c1f94008742e3f0c2ce7e591a16316d1b2cb9ea4596d4f45604097e07b7aa2f64afa40630a07f321a858455c77aa32ba57b271932ddcf4dc27863f9081cea +DIST linux-6.12.tar.xz 147906904 BLAKE2B b2ec2fc69218cacabbbe49f78384a5d259ca581b717617c12b000b16f4a4c59ee348ea886b37147f5f70fb9a7a01c1e2c8f19021078f6b23f5bc62d1c48d5e5e SHA512 a37b1823df7b4f72542f689b65882634740ba0401a42fdcf6601d9efd2e132e5a7650e70450ba76f6cd1f13ca31180f2ccee9d54fe4df89bc0000ade4380a548 DIST linux-6.7.tar.xz 141406528 BLAKE2B cecdbd19905e43e485ab73b352ced18b37f2a138c97a6956cadcda5d3d271001117dc1cf896b166ff019fc7f405f9539e2ed0d6112b0890efb04d182adf4fd0e SHA512 de06de556191614bd9daf077ae239360352a402bab407748e67f1e5108c92fd933e451707840ab22fe0f9976db3d1e1b60ca9d41cf894f015ca09b3f652b74ad -DIST patch-6.10.4.xz 303168 BLAKE2B d38bbcdd2f730a030add5b38c1ab09c7081c311ed716d3ae976a058dd34b235078700cdff05d79dc93d9badb75c95566a3bdfc39dfa045d54857d82ee2c92e9d SHA512 5f5e8b19d114fed733c8c98a581fe339f8896e05e5da6a37deb1d7d8aa9dd83b3c80a97b1c6f3f51b6f20cca9c435b20c28c2c511da2026980d9fa72624cf420 DIST patch-6.11.7.xz 669756 BLAKE2B f2ec79bd337eaa61c7203c00ce61b3e5afa9eee38a3e38e63a7fc9270af86674e5c369ca7ddfe4fa5f79601b1c874af1ce732bd8987529c7db2f2f9ca54ba85b SHA512 031c22e2fa7e1c7808f50dc2120a35d10a0b81d30636c5d19146fe12558999517f132213b72c39a32d8cc2c0e14e16ff64cac63ef97f8be0ebe8e709a3de8156 -EBUILD perf-6.10.4.ebuild 9495 BLAKE2B 90bf673dcd8c94531bd534e520077c5a049abca75edea00a85c21e96cffc69a449c9c1eca24072f0ea9e00c192e21fd32fd9407829001168d101e9ef6cb0695f SHA512 3aa795231a233cbc85d1dcb8e0bec426b6ffa42dca128d264f64e15b93dd6fbff83d59c1b4b66fad4b4806783dcc76bb1711a2c2dc26bfa328b3b9d349a13f28 -EBUILD perf-6.10.ebuild 9289 BLAKE2B 31127f741e6ec0ab27723ba29b54d1e6e6da2005a6be2e2ec742f03f377473ba0bdbdd309bdce61b767b737fe665b6fe4bdcb44eb46e92ad073a16e5e991b65f SHA512 a338e422d8fde71bce6e680992901fdf2008ea12e4e2bb7e06e5a135d3d61b6c7dbc74f61d1e4c5b72ee57c3bf4f86443a407b77f3d6f9fc556012f53d528d82 -EBUILD perf-6.11.7.ebuild 9482 BLAKE2B 14e53c3ca76608bd023d4f5283014868ae5ec777591b798a56b4d7cb048cf0538c6201ea066b8a8118acdb4708affe6d3104a41384deb27633c104273d6c4356 SHA512 cf256652e05e538ba5f264dda1849ff42c712994925935536546b7a491fb5c60b49059b17a3b3a1676784ce6155b3601324267b533e1f3722520debed9a8beab -EBUILD perf-6.11.ebuild 9483 BLAKE2B 39154089a2bd3de3e4f0dfbf1e96dcee10160dab0fca9d9a9acf31e7a94a421a078f8baa593581ab045256f1dfa16abb9ac00896da70bf6fa6db911127326d42 SHA512 d4eb50d0e524b8d11ec034f1bdac2c4cd58ff77cea72f74040c24248b4415905a2d7a9cbec0d55930c944bc5a7694d8d3b1b15587c7ac52bcd53b4709673a2aa +EBUILD perf-6.11.7.ebuild 9479 BLAKE2B c2157f22e18dab7aabf17463234f1c552298d2e1957c3d7a7b7b0bcf1c6a5c3f6dfafe93f695cf940487d326527f3df6ccf4255eb44ea9bd197dc60b62200e2b SHA512 bc4ada714e1c1db049a5a7c0b8ddddcce087be44118dca6f4acc9c78b35078cd8afc5042fbb6cc6ff518938c7a06159f88a56e0a4111ff13ec97a17636fc75d9 +EBUILD perf-6.12.ebuild 9568 BLAKE2B e14009bc431863b3490abc9b9b015d5625f1fb66b9d9ba3a176a800b1d379af02c2f77f84b6c2c68b46a82ba1ffe686f384a82f054277505b0e0e69efc50dcc8 SHA512 879ea520c3ce4fde5699fdc7d535d3630e170cbcbbd3b5cd376775c47ee48e8b8532bc5933fef5c3f5591e73158ae17805589917a9f72cd5544eaac9ba35be37 EBUILD perf-6.7.ebuild 9089 BLAKE2B 22ca5977135f8b1f411c423697a61e0a4a4582fb9e470c4e816d7a8022f4f90088f640ff5fb4352c963805d3ab5ff9de003f6aa0d0d7b541bc4d788c17ed3df5 SHA512 3d822becfa8100be4e597082cadd51d817358344e79ff65c722c5d1f904cc34fdda0b01ae1ff9417e5b1132b7e13a9271ac21560538bb775b30ef3d5bdd4d247 MISC metadata.xml 1664 BLAKE2B fd151376545e542f591d4a0b06f7a3e51a5e3844a613035fabbeb770a58781ed29cd5d7614560d0f7473b2dec3636e1ca0f736259091371baad96d1bc2ef5d8f SHA512 96d8b853e38317bb526d5d5888b04e706df8dcc37c2ef26a3b047b861f86e33406071d8cebc287fbd09e6e33a2b5e72872b41c3ceb247392adc310f8389c1a26 diff --git a/dev-util/perf/files/perf-6.10-bpf-capstone.patch b/dev-util/perf/files/perf-6.10-bpf-capstone.patch deleted file mode 100644 index ebae9a3ad080..000000000000 --- a/dev-util/perf/files/perf-6.10-bpf-capstone.patch +++ /dev/null @@ -1,456 +0,0 @@ -From a7728af2f25fe99ee72d211bb4ddec17a8601f5f Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio <amadio@gentoo.org> -Date: Tue, 6 Aug 2024 11:34:05 +0200 -Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10. - -Signed-off-by: Guilherme Amadio <amadio@gentoo.org> ---- - tools/perf/util/Build | 1 + - tools/perf/util/disasm.c | 187 +-------------------------------- - tools/perf/util/disasm_bpf.c | 197 +++++++++++++++++++++++++++++++++++ - tools/perf/util/disasm_bpf.h | 12 +++ - 4 files changed, 211 insertions(+), 186 deletions(-) - create mode 100644 tools/perf/util/disasm_bpf.c - create mode 100644 tools/perf/util/disasm_bpf.h - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index da64efd8718f..384c4e06b838 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-y += copyfile.o - perf-y += ctype.o - perf-y += db-export.o - perf-y += disasm.o -+perf-y += disasm_bpf.o - perf-y += env.o - perf-y += event.o - perf-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index 72aec8f61b94..766cbd005f32 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -15,6 +15,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include <bfd.h> --#include <dis-asm.h> --#include <bpf/bpf.h> --#include <bpf/btf.h> --#include <bpf/libbpf.h> --#include <linux/btf.h> --#include <tools/dis-asm-compat.h> -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, -- dso->bpf_prog.id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso->bpf_prog.sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso->bpf_prog.env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include <capstone/capstone.h> - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..010b961c4ae9 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,197 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include <linux/zalloc.h> -+#include <string.h> -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include <bfd.h> -+#include <bpf/bpf.h> -+#include <bpf/btf.h> -+#include <bpf/libbpf.h> -+#include <dis-asm.h> -+#include <errno.h> -+#include <linux/btf.h> -+#include <tools/dis-asm-compat.h> -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, -+ dso->bpf_prog.id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso->bpf_prog.sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso->bpf_prog.env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -+ struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -+ -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ --- -2.45.2 - diff --git a/dev-util/perf/files/perf-6.10-expr.patch b/dev-util/perf/files/perf-6.10-expr.patch deleted file mode 100644 index b4220a062f61..000000000000 --- a/dev-util/perf/files/perf-6.10-expr.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config -index bc980fd..a7f1e1e 100644 ---- a/tools/perf/Makefile.config -+++ b/tools/perf/Makefile.config -@@ -1184,7 +1184,7 @@ ifneq ($(NO_LIBTRACEEVENT),1) - CFLAGS += -DHAVE_LIBTRACEEVENT $(LIBTRACEEVENT_CFLAGS) - LDFLAGS += $(LIBTRACEEVENT_LDFLAGS) - EXTLIBS += ${TRACEEVENTLIBS} -- LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent) -+ LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent).0 - LIBTRACEEVENT_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEEVENT_VERSION))) - LIBTRACEEVENT_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEEVENT_VERSION))) - LIBTRACEEVENT_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEEVENT_VERSION))) -@@ -1198,7 +1198,7 @@ ifneq ($(NO_LIBTRACEEVENT),1) - $(call feature_check,libtracefs) - ifeq ($(feature-libtracefs), 1) - EXTLIBS += -ltracefs -- LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs) -+ LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs).0 - LIBTRACEFS_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEFS_VERSION))) - LIBTRACEFS_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEFS_VERSION))) - LIBTRACEFS_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEFS_VERSION))) diff --git a/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch b/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch deleted file mode 100644 index 57b298d8ccd7..000000000000 --- a/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch +++ /dev/null @@ -1,455 +0,0 @@ -From b382a433e0178d3840a8fb4b05ba3dbecba075fa Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio <amadio@gentoo.org> -Date: Tue, 6 Aug 2024 11:34:05 +0200 -Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.3. - -Signed-off-by: Guilherme Amadio <amadio@gentoo.org> ---- - tools/perf/util/Build | 1 + - tools/perf/util/disasm.c | 187 +-------------------------------- - tools/perf/util/disasm_bpf.c | 196 +++++++++++++++++++++++++++++++++++ - tools/perf/util/disasm_bpf.h | 12 +++ - 4 files changed, 210 insertions(+), 186 deletions(-) - create mode 100644 tools/perf/util/disasm_bpf.c - create mode 100644 tools/perf/util/disasm_bpf.h - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index da64efd8718f..384c4e06b838 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-y += copyfile.o - perf-y += ctype.o - perf-y += db-export.o - perf-y += disasm.o -+perf-y += disasm_bpf.o - perf-y += env.o - perf-y += event.o - perf-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index e10558b79504..766cbd005f32 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -15,6 +15,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include <bfd.h> --#include <dis-asm.h> --#include <bpf/bpf.h> --#include <bpf/btf.h> --#include <bpf/libbpf.h> --#include <linux/btf.h> --#include <tools/dis-asm-compat.h> -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -- dso__bpf_prog(dso)->id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso__bpf_prog(dso)->sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso__bpf_prog(dso)->env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include <capstone/capstone.h> - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..c76a7d2be1a7 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,196 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include <linux/zalloc.h> -+#include <string.h> -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include <bfd.h> -+#include <bpf/bpf.h> -+#include <bpf/btf.h> -+#include <bpf/libbpf.h> -+#include <dis-asm.h> -+#include <errno.h> -+#include <linux/btf.h> -+#include <tools/dis-asm-compat.h> -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -+ dso__bpf_prog(dso)->id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso__bpf_prog(dso)->sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso__bpf_prog(dso)->env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int -+symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ --- -2.45.2 - diff --git a/dev-util/perf/files/perf-6.11-bpf-capstone.patch b/dev-util/perf/files/perf-6.11-bpf-capstone.patch deleted file mode 100644 index 7d8b376869f3..000000000000 --- a/dev-util/perf/files/perf-6.11-bpf-capstone.patch +++ /dev/null @@ -1,469 +0,0 @@ -commit ea59b70a8418a313d6f2ab48a957de015fc33018 -Author: Arnaldo Carvalho de Melo <acme@redhat.com> -Date: Wed Jul 31 11:58:56 2024 -0300 - - perf bpf: Move BPF disassembly routines to separate file to avoid clash with capstone bpf headers - - There is a clash of the libbpf and capstone libraries, that ends up - with: - - In file included from /usr/include/capstone/capstone.h:325, - from util/disasm.c:1513: - /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag - 94 | typedef enum bpf_insn { - - So far we're just trying to avoid this by not having both headers - included in the same .c or .h file, do it one more time by moving the - BPF diassembly routines from util/disasm.c to util/disasm_bpf.c. - - This is only being hit when building with BUILD_NONDISTRO=1, i.e. - building with binutils-devel, that isn't the in the default build due to - a licencing clash. We need to reimplement what is now isolated in - util/disasm_bpf.c using some other library to have BPF annotation - feature that now only is available with BUILD_NONDISTRO=1. - - Fixes: 6d17edc113de1e21 ("perf annotate: Use libcapstone to disassemble") - Cc: Adrian Hunter <adrian.hunter@intel.com> - Cc: Ian Rogers <irogers@google.com> - Cc: Jiri Olsa <jolsa@kernel.org> - Cc: Kan Liang <kan.liang@linux.intel.com> - Cc: Namhyung Kim <namhyung@kernel.org> - Link: https://lore.kernel.org/lkml/ZqpUSKPxMwaQKORr@x1 - Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index 0f18fe81ef0b..b24360c04aae 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-util-y += copyfile.o - perf-util-y += ctype.o - perf-util-y += db-export.o - perf-util-y += disasm.o -+perf-util-y += disasm_bpf.o - perf-util-y += env.o - perf-util-y += event.o - perf-util-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index 410e52cd9cfd..85fb0cfedf94 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -16,6 +16,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1323,192 +1324,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include <bfd.h> --#include <dis-asm.h> --#include <bpf/bpf.h> --#include <bpf/btf.h> --#include <bpf/libbpf.h> --#include <linux/btf.h> --#include <tools/dis-asm-compat.h> -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -- dso__bpf_prog(dso)->id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso__bpf_prog(dso)->sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso__bpf_prog(dso)->env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include <capstone/capstone.h> - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..1fee71c79b62 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,195 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include <linux/zalloc.h> -+#include <string.h> -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include <bfd.h> -+#include <bpf/bpf.h> -+#include <bpf/btf.h> -+#include <bpf/libbpf.h> -+#include <dis-asm.h> -+#include <errno.h> -+#include <linux/btf.h> -+#include <tools/dis-asm-compat.h> -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -+ dso__bpf_prog(dso)->id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso__bpf_prog(dso)->sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso__bpf_prog(dso)->env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ diff --git a/dev-util/perf/perf-6.10.4.ebuild b/dev-util/perf/perf-6.10.4.ebuild deleted file mode 100644 index df1101c9dc14..000000000000 --- a/dev-util/perf/perf-6.10.4.ebuild +++ /dev/null @@ -1,345 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1 - -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} -fi - -LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" -SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" - -S_K="${WORKDIR}/linux-${LINUX_VER}" -S="${S_K}/tools/perf" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" -IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace capstone big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -# setuptools (and Python) are always needed even if not building Python bindings -BDEPEND=" - ${LINUX_PATCH+dev-util/patchutils} - ${PYTHON_DEPS} - >=app-arch/tar-1.34-r2 - dev-python/setuptools[${PYTHON_USEDEP}] - app-alternatives/yacc - app-alternatives/lex - virtual/pkgconfig - doc? ( - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time - ) -" - -RDEPEND=" - audit? ( sys-process/audit ) - babeltrace? ( dev-util/babeltrace:0/1 ) - bpf? ( - dev-libs/libbpf - dev-util/bpftool - dev-util/pahole - sys-devel/clang:= - sys-devel/llvm:= - ) - caps? ( sys-libs/libcap ) - capstone? ( dev-libs/capstone ) - crypt? ( dev-libs/openssl:= ) - gtk? ( x11-libs/gtk+:2 ) - java? ( virtual/jre:* ) - libpfm? ( dev-libs/libpfm:= ) - libtraceevent? ( dev-libs/libtraceevent ) - libtracefs? ( dev-libs/libtracefs ) - lzma? ( app-arch/xz-utils ) - numa? ( sys-process/numactl ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - slang? ( sys-libs/slang ) - systemtap? ( dev-debug/systemtap ) - tcmalloc? ( dev-util/google-perftools ) - unwind? ( sys-libs/libunwind:= ) - zstd? ( app-arch/zstd:= ) - dev-libs/elfutils - sys-libs/binutils-libs:= - sys-libs/zlib - virtual/libcrypt -" - -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-5.10 - java? ( virtual/jdk ) -" - -QA_FLAGS_IGNORED=( - 'usr/bin/perf-read-vdso32' # not linked with anything except for libc - 'usr/libexec/perf-core/dlfilters/.*' # plugins -) - -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() { - local CONFIG_CHECK=" - ~DEBUG_INFO - ~FTRACE - ~FTRACE_SYSCALLS - ~FUNCTION_TRACER - ~KALLSYMS - ~KALLSYMS_ALL - ~KPROBES - ~KPROBE_EVENTS - ~PERF_EVENTS - ~UPROBES - ~UPROBE_EVENTS - " - - use bpf && llvm_pkg_setup - # We enable python unconditionally as libbpf always generates - # API headers using python script - python_setup - - if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" - fi - - linux-info_pkg_setup -} - -# src_unpack and src_prepare are copied to dev-util/bpftool since -# it's building from the same tarball, please keep it in sync with bpftool -src_unpack() { - local paths=( - 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*' - 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*' - 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*' - 'tools/scripts/*' - ) - - # 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}" - gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ - "${paths[@]/#/linux-${LINUX_VER}/}" || die - - if [[ -n ${LINUX_PATCH} ]] ; then - eshopts_push -o noglob - ebegin "Filtering partial source patch" - xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch - assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed" - eend $? || die "filterdiff failed" - test -s ${P}.patch || die "patch is empty?!" - 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 - - pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.4-libtracefs.patch - eapply "${FILESDIR}"/perf-6.10-expr.patch - eapply "${FILESDIR}"/perf-6.10.3-bpf-capstone.patch - popd || die - - # 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 \ - "${S_K}"/tools/lib/perf/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' {} + -} - -puse() { usex $1 "" 1; } -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" - - # sync this with the whitelist in tools/perf/Makefile.config - local disable_libdw - if ! use amd64 && ! use x86 && \ - ! use arm && \ - ! use arm64 && \ - ! use ppc && ! use ppc64 \ - ! use s390 && \ - ! use riscv && \ - ! use loong - then - disable_libdw=1 - fi - - # perf directly invokes LD for linking without going through CC, on mips - # it is required to specify the emulation. port of below buildroot patch - # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ - local linker="$(tc-getLD)" - if use mips - then - if use big-endian - then - use abi_mips_n64 && linker+=" -m elf64btsmip" - use abi_mips_n32 && linker+=" -m elf32btsmipn32" - use abi_mips_o32 && linker+=" -m elf32btsmip" - else - use abi_mips_n64 && linker+=" -m elf64ltsmip" - use abi_mips_n32 && linker+=" -m elf32ltsmipn32" - use abi_mips_o32 && linker+=" -m elf32ltsmip" - fi - fi - - # FIXME: NO_CORESIGHT - local emakeargs=( - V=1 VF=1 - HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" - CLANG="${CHOST}-clang" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - prefix="${EPREFIX}/usr" bindir_relative="bin" - tipdir="share/doc/${PF}" - EXTRA_CFLAGS="${CFLAGS}" - EXTRA_LDFLAGS="${LDFLAGS}" - ARCH="${arch}" - BUILD_BPF_SKEL=$(usex bpf 1 "") \ - BUILD_NONDISTRO=1 - JDIR="${java_dir}" - CORESIGHT= - GTK2=$(usex gtk 1 "") - feature-gtk2-infobar=$(usex gtk 1 "") - NO_AUXTRACE= - NO_BACKTRACE= - NO_CAPSTONE=$(puse capstone) - NO_DEMANGLE= - NO_JEVENTS=$(puse python) - NO_JVMTI=$(puse java) - NO_LIBAUDIT=$(puse audit) - NO_LIBBABELTRACE=$(puse babeltrace) - NO_LIBBIONIC=1 - NO_LIBBPF=$(puse bpf) - NO_LIBCAP=$(puse caps) - NO_LIBCRYPTO=$(puse crypt) - NO_LIBDW_DWARF_UNWIND="${disable_libdw}" - NO_LIBELF= - NO_LIBNUMA=$(puse numa) - NO_LIBPERL=$(puse perl) - NO_LIBPFM4=$(puse libpfm) - NO_LIBPYTHON=$(puse python) - NO_LIBTRACEEVENT=$(puse libtraceevent) - NO_LIBUNWIND=$(puse unwind) - NO_LIBZSTD=$(puse zstd) - NO_SDT=$(puse systemtap) - NO_SHELLCHECK=1 - NO_SLANG=$(puse slang) - NO_LZMA=$(puse lzma) - NO_ZLIB= - TCMALLOC=$(usex tcmalloc 1 "") - WERROR=0 - DEBUG=$(usex debug 1 "") - LIBDIR="/usr/libexec/perf-core" - libdir="${EPREFIX}/usr/$(get_libdir)" - plugindir="${EPREFIX}/usr/$(get_libdir)/perf/plugins" - "$@" - ) - emake "${emakeargs[@]}" -} - -src_compile() { - filter-lto - - perf_make -f Makefile.perf - use doc && perf_make -C Documentation man -} - -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 - doman Documentation/*.1 - fi -} diff --git a/dev-util/perf/perf-6.10.ebuild b/dev-util/perf/perf-6.10.ebuild deleted file mode 100644 index 7668df3a67d1..000000000000 --- a/dev-util/perf/perf-6.10.ebuild +++ /dev/null @@ -1,342 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1 - -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} -fi - -LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" -SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" - -S_K="${WORKDIR}/linux-${LINUX_VER}" -S="${S_K}/tools/perf" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" -IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace capstone big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -# setuptools (and Python) are always needed even if not building Python bindings -BDEPEND=" - ${LINUX_PATCH+dev-util/patchutils} - ${PYTHON_DEPS} - >=app-arch/tar-1.34-r2 - dev-python/setuptools[${PYTHON_USEDEP}] - app-alternatives/yacc - app-alternatives/lex - virtual/pkgconfig - doc? ( - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time - ) -" - -RDEPEND=" - audit? ( sys-process/audit ) - babeltrace? ( dev-util/babeltrace:0/1 ) - bpf? ( - dev-libs/libbpf - dev-util/bpftool - dev-util/pahole - sys-devel/clang:= - sys-devel/llvm:= - ) - caps? ( sys-libs/libcap ) - capstone? ( dev-libs/capstone ) - crypt? ( dev-libs/openssl:= ) - gtk? ( x11-libs/gtk+:2 ) - java? ( virtual/jre:* ) - libpfm? ( dev-libs/libpfm:= ) - libtraceevent? ( dev-libs/libtraceevent ) - libtracefs? ( dev-libs/libtracefs ) - lzma? ( app-arch/xz-utils ) - numa? ( sys-process/numactl ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - slang? ( sys-libs/slang ) - systemtap? ( dev-debug/systemtap ) - tcmalloc? ( dev-util/google-perftools ) - unwind? ( sys-libs/libunwind:= ) - zstd? ( app-arch/zstd:= ) - dev-libs/elfutils - sys-libs/binutils-libs:= - sys-libs/zlib - virtual/libcrypt -" - -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-5.10 - java? ( virtual/jdk ) -" - -QA_FLAGS_IGNORED=( - 'usr/bin/perf-read-vdso32' # not linked with anything except for libc - 'usr/libexec/perf-core/dlfilters/.*' # plugins -) - -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() { - local CONFIG_CHECK=" - ~DEBUG_INFO - ~FTRACE - ~FTRACE_SYSCALLS - ~FUNCTION_TRACER - ~KALLSYMS - ~KALLSYMS_ALL - ~KPROBES - ~KPROBE_EVENTS - ~PERF_EVENTS - ~UPROBES - ~UPROBE_EVENTS - " - - use bpf && llvm_pkg_setup - # We enable python unconditionally as libbpf always generates - # API headers using python script - python_setup - - if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" - fi - - linux-info_pkg_setup -} - -# src_unpack and src_prepare are copied to dev-util/bpftool since -# it's building from the same tarball, please keep it in sync with bpftool -src_unpack() { - local paths=( - kernel/bpf tools/{arch,bpf,build,include,lib,perf,scripts} - scripts include lib "arch/*/include" "arch/*/lib" "arch/*/tools" - ) - - # 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}" - gtar --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 - - pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.4-libtracefs.patch - eapply "${FILESDIR}"/perf-6.10-bpf-capstone.patch - eapply "${FILESDIR}"/perf-6.10-expr.patch - popd || die - - # 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 \ - "${S_K}"/tools/lib/perf/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' {} + -} - -puse() { usex $1 "" 1; } -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" - - # sync this with the whitelist in tools/perf/Makefile.config - local disable_libdw - if ! use amd64 && ! use x86 && \ - ! use arm && \ - ! use arm64 && \ - ! use ppc && ! use ppc64 \ - ! use s390 && \ - ! use riscv && \ - ! use loong - then - disable_libdw=1 - fi - - # perf directly invokes LD for linking without going through CC, on mips - # it is required to specify the emulation. port of below buildroot patch - # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ - local linker="$(tc-getLD)" - if use mips - then - if use big-endian - then - use abi_mips_n64 && linker+=" -m elf64btsmip" - use abi_mips_n32 && linker+=" -m elf32btsmipn32" - use abi_mips_o32 && linker+=" -m elf32btsmip" - else - use abi_mips_n64 && linker+=" -m elf64ltsmip" - use abi_mips_n32 && linker+=" -m elf32ltsmipn32" - use abi_mips_o32 && linker+=" -m elf32ltsmip" - fi - fi - - # FIXME: NO_CORESIGHT - local emakeargs=( - V=1 VF=1 - HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" - CLANG="${CHOST}-clang" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - prefix="${EPREFIX}/usr" bindir_relative="bin" - tipdir="share/doc/${PF}" - EXTRA_CFLAGS="${CFLAGS}" - EXTRA_LDFLAGS="${LDFLAGS}" - ARCH="${arch}" - BUILD_BPF_SKEL=$(usex bpf 1 "") \ - BUILD_NONDISTRO=1 - JDIR="${java_dir}" - CORESIGHT= - GTK2=$(usex gtk 1 "") - feature-gtk2-infobar=$(usex gtk 1 "") - NO_AUXTRACE= - NO_BACKTRACE= - NO_CAPSTONE=$(puse capstone) - NO_DEMANGLE= - NO_JEVENTS=$(puse python) - NO_JVMTI=$(puse java) - NO_LIBAUDIT=$(puse audit) - NO_LIBBABELTRACE=$(puse babeltrace) - NO_LIBBIONIC=1 - NO_LIBBPF=$(puse bpf) - NO_LIBCAP=$(puse caps) - NO_LIBCRYPTO=$(puse crypt) - NO_LIBDW_DWARF_UNWIND="${disable_libdw}" - NO_LIBELF= - NO_LIBNUMA=$(puse numa) - NO_LIBPERL=$(puse perl) - NO_LIBPFM4=$(puse libpfm) - NO_LIBPYTHON=$(puse python) - NO_LIBTRACEEVENT=$(puse libtraceevent) - NO_LIBUNWIND=$(puse unwind) - NO_LIBZSTD=$(puse zstd) - NO_SDT=$(puse systemtap) - NO_SHELLCHECK=1 - NO_SLANG=$(puse slang) - NO_LZMA=$(puse lzma) - NO_ZLIB= - TCMALLOC=$(usex tcmalloc 1 "") - WERROR=0 - DEBUG=$(usex debug 1 "") - LIBDIR="/usr/libexec/perf-core" - libdir="${EPREFIX}/usr/$(get_libdir)" - plugindir="${EPREFIX}/usr/$(get_libdir)/perf/plugins" - "$@" - ) - emake "${emakeargs[@]}" -} - -src_compile() { - filter-lto - - perf_make -f Makefile.perf - use doc && perf_make -C Documentation man -} - -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 - doman Documentation/*.1 - fi -} diff --git a/dev-util/perf/perf-6.11.7.ebuild b/dev-util/perf/perf-6.11.7.ebuild index 1ad4d3bf3cda..52219af49925 100644 --- a/dev-util/perf/perf-6.11.7.ebuild +++ b/dev-util/perf/perf-6.11.7.ebuild @@ -34,7 +34,7 @@ S="${S_K}/tools/perf" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux" IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace capstone big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd" REQUIRED_USE=" diff --git a/dev-util/perf/perf-6.11.ebuild b/dev-util/perf/perf-6.12.ebuild index b523d8477bf6..c3d4af9bc2f2 100644 --- a/dev-util/perf/perf-6.11.ebuild +++ b/dev-util/perf/perf-6.12.ebuild @@ -4,7 +4,7 @@ EAPI=8 LLVM_COMPAT=( {16..19} ) -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{10..13} python3_13t) inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-r1 DESCRIPTION="Userland tools for Linux Performance Counters" @@ -113,7 +113,9 @@ pkg_pretend() { pkg_setup() { local CONFIG_CHECK=" + ~!SCHED_OMIT_FRAME_POINTER ~DEBUG_INFO + ~FRAME_POINTER ~FTRACE ~FTRACE_SYSCALLS ~FUNCTION_TRACER @@ -122,6 +124,8 @@ pkg_setup() { ~KPROBES ~KPROBE_EVENTS ~PERF_EVENTS + ~STACKTRACE + ~TRACEPOINTS ~UPROBES ~UPROBE_EVENTS " @@ -132,7 +136,7 @@ pkg_setup() { python_setup if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER" fi linux-info_pkg_setup @@ -181,7 +185,7 @@ src_prepare() { fi pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.11-bpf-capstone.patch + # Gentoo patches go here popd || die # Drop some upstream too-developer-oriented flags and fix the |