summaryrefslogtreecommitdiff
path: root/app-arch/xz-utils
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-10-12 18:15:25 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-10-12 18:15:25 +0100
commit36c436b12f9ef2523e5fd963381b78d2dc5cc53d (patch)
treef275068802d3c71dcdd97439f906e36237263361 /app-arch/xz-utils
parent3a0e100e02e1c6c2818268f57eae51095cee35af (diff)
gentoo auto-resync : 12:10:2023 - 18:15:24
Diffstat (limited to 'app-arch/xz-utils')
-rw-r--r--app-arch/xz-utils/Manifest6
-rw-r--r--app-arch/xz-utils/metadata.xml1
-rw-r--r--app-arch/xz-utils/xz-utils-5.4.4.ebuild24
-rw-r--r--app-arch/xz-utils/xz-utils-9999.ebuild26
4 files changed, 47 insertions, 10 deletions
diff --git a/app-arch/xz-utils/Manifest b/app-arch/xz-utils/Manifest
index 44d5c29dff1d..67a79e07e71e 100644
--- a/app-arch/xz-utils/Manifest
+++ b/app-arch/xz-utils/Manifest
@@ -13,6 +13,6 @@ EBUILD xz-utils-5.2.11.ebuild 2861 BLAKE2B 2f82998b46a1459000d734a6f826985331550
EBUILD xz-utils-5.2.12.ebuild 2848 BLAKE2B 7e6c6dd50418e2a374edd75b4a4796d2421269e64dccdc51294700413301fefe1a3aa60a64580dd6f797aabb39122a579b5e95b80a68874110dd3960e063139a SHA512 a2a3e2bbd23295c2e2c9f05e495a7cb24b43a52e7cd1f440dad0dc79ec4cd5533686b407f1c8cd6c66ec697342e620841d50c8e545e0852003d13aa566c93d7c
EBUILD xz-utils-5.4.2.ebuild 3178 BLAKE2B 855fa2339a86f5bc9ac2f5586a1c027d0ec9f7f62fbb159dc54cf05d5cd86dc408cf510aea3bafcfeea3f08cbaab5a998e65165dd5f3103a5a9ee6e9db72e0eb SHA512 eaa9b7aaf79ac42bc2ce22c713d7206c594872e31c66873d3c0e7560698d84bb9a629f44f5be6f2fb247ee9eb8656618af1f1902d750663d4b611fc51935a703
EBUILD xz-utils-5.4.3.ebuild 3101 BLAKE2B 202af6f29ace1257358e1dad13d9b2d1ad1f2865adfc85028c31e0664f00d78561acf282281305b71e4ffc4ea5059f0d8993b7ca13c80ded5643b75dbcb2fe2d SHA512 0dfedc2a2a65e9b4caf1453dc52361e2c97bc96961152d7afb058821c8f1d8661909bf7149a9296eed3f2269e5856eb2da44955d8095c5845c360e3d8c6b28ec
-EBUILD xz-utils-5.4.4.ebuild 3109 BLAKE2B e3d9f2270337ee5d0893ba967d58c6dfc2a0fae133783fca17b7200be292329f949b33cbd2bfd8d7f9d7c0f7f00c2f33e7187858b588593ae1c21edb5be4dc54 SHA512 3755957951ac9385e24c079669bb3522d2fb18de2f4c8686f56ba2bf63bee0d052bd27c366ee08031c9f71b21cd9cccebac6d2398f1907b31266fdc407e911c6
-EBUILD xz-utils-9999.ebuild 3291 BLAKE2B fe0aedcf0b0bb2ecd39163702da7f596fa31d527e6491dfa8287bba635094a7f5c8ad1e233c3e198389baadf3bd1e16b857b8fb4dc2d980cca4a8aea6f6eaa97 SHA512 4287fc4db25ecae08f6aa69b15fd57c10e85e7071e8ce717772cee77cfec3c758546bde5f2684e331a01306be7df24c42744cb58da90ab70de17da567760e4f8
-MISC metadata.xml 663 BLAKE2B 7a6625813cb3bdbab8a37845c9c64ac53ff377db394f776357d4fff60fbfe7c7b0e954fdc15abcc8874dd6c0f9ee90bc6e179a00bc5d12cd2e7cedc6f998c019 SHA512 696e573853d5d401f22079492d8e2b5f3c27e9ec4b6095f5ff46f109366b1c65c11976123abed06f302b8f03aaa1b0c54884f0156fdfdce23f4bf28feaafd39c
+EBUILD xz-utils-5.4.4.ebuild 3957 BLAKE2B d84012d710e65c2ea858486b1f6c4fe2f44cd666a361c5c79badae6560646ca22b5cfaf9a8eda4b1f003eff75290f5a59cd261232c4b2f101c23a7c44bef9a37 SHA512 f9c0673ff7d4850f830b3cd5f7e73ff79609c948a4fea8dfef304902b1b3e8116980470b9194b2b7a03b48f78a20fbd9c1eb6de0961303e0865ba9e9ca477a6e
+EBUILD xz-utils-9999.ebuild 3957 BLAKE2B d84012d710e65c2ea858486b1f6c4fe2f44cd666a361c5c79badae6560646ca22b5cfaf9a8eda4b1f003eff75290f5a59cd261232c4b2f101c23a7c44bef9a37 SHA512 f9c0673ff7d4850f830b3cd5f7e73ff79609c948a4fea8dfef304902b1b3e8116980470b9194b2b7a03b48f78a20fbd9c1eb6de0961303e0865ba9e9ca477a6e
+MISC metadata.xml 748 BLAKE2B fe48d0e6b5aac2c843670597f0daa0202af709c27fe81889da8e4ef6877e35b30009b72831bc737b1078954b6494b508fa1b59305fdaf795db8801d20d9a0638 SHA512 6e64f0053489389818430808acb32cc1d3b33013978adf4952fbf57ab555e0710a106623ac1eb67405f1dd91c33397c5c70bddc9c5015878f280266b29b4e189
diff --git a/app-arch/xz-utils/metadata.xml b/app-arch/xz-utils/metadata.xml
index 89d8ff67986f..3b217f332fdd 100644
--- a/app-arch/xz-utils/metadata.xml
+++ b/app-arch/xz-utils/metadata.xml
@@ -9,6 +9,7 @@
<flag name="extra-filters">Build additional filters that are not
used in any of the default xz presets. This includes delta
and BCJ coders, additional match finders and SHA256 checks.</flag>
+ <flag name="pgo">Optimize the build using Profile Guided Optimization (PGO)</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:tukaani:xz</remote-id>
diff --git a/app-arch/xz-utils/xz-utils-5.4.4.ebuild b/app-arch/xz-utils/xz-utils-5.4.4.ebuild
index 11ddc15f918b..f5305d400724 100644
--- a/app-arch/xz-utils/xz-utils-5.4.4.ebuild
+++ b/app-arch/xz-utils/xz-utils-5.4.4.ebuild
@@ -6,7 +6,7 @@
EAPI=8
-inherit libtool multilib multilib-minimal preserve-libs usr-ldscript
+inherit flag-o-matic libtool multilib multilib-minimal preserve-libs usr-ldscript
if [[ ${PV} == 9999 ]] ; then
# Per tukaani.org, git.tukaani.org is a mirror of github and
@@ -47,7 +47,7 @@ HOMEPAGE="https://tukaani.org/xz/"
# See top-level COPYING file as it outlines the various pieces and their licenses.
LICENSE="public-domain LGPL-2.1+ GPL-2+"
SLOT="0"
-IUSE="doc +extra-filters nls static-libs"
+IUSE="doc +extra-filters pgo nls static-libs"
if [[ ${PV} != 9999 ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-jiatan )"
@@ -103,6 +103,26 @@ multilib_src_configure() {
ECONF_SOURCE="${S}" econf "${myconf[@]}"
}
+multilib_src_compile() {
+ # -fprofile-partial-training because upstream note the test suite isn't super comprehensive
+ # See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
+ local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
+ local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
+
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}"
+
+ if use pgo ; then
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check
+
+ if tc-is-clang; then
+ llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die
+ fi
+
+ emake clean
+ emake CFLAGS="${CFLAGS} ${pgo_use_flags}"
+ fi
+}
+
multilib_src_install() {
default
diff --git a/app-arch/xz-utils/xz-utils-9999.ebuild b/app-arch/xz-utils/xz-utils-9999.ebuild
index 1ab617815a91..f5305d400724 100644
--- a/app-arch/xz-utils/xz-utils-9999.ebuild
+++ b/app-arch/xz-utils/xz-utils-9999.ebuild
@@ -47,7 +47,7 @@ HOMEPAGE="https://tukaani.org/xz/"
# See top-level COPYING file as it outlines the various pieces and their licenses.
LICENSE="public-domain LGPL-2.1+ GPL-2+"
SLOT="0"
-IUSE="doc +extra-filters nls static-libs"
+IUSE="doc +extra-filters pgo nls static-libs"
if [[ ${PV} != 9999 ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-jiatan )"
@@ -100,13 +100,29 @@ multilib_src_configure() {
myconf+=( --disable-path-for-script )
fi
- # ifunc is incompatible w/ asan
- # https://github.com/tukaani-project/xz/issues/62#issuecomment-1719489932
- is-flagq -fsanitize=address && myconf+=( --disable-ifunc )
-
ECONF_SOURCE="${S}" econf "${myconf[@]}"
}
+multilib_src_compile() {
+ # -fprofile-partial-training because upstream note the test suite isn't super comprehensive
+ # See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
+ local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
+ local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
+
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}"
+
+ if use pgo ; then
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check
+
+ if tc-is-clang; then
+ llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die
+ fi
+
+ emake clean
+ emake CFLAGS="${CFLAGS} ${pgo_use_flags}"
+ fi
+}
+
multilib_src_install() {
default