diff options
author | Sam James <sam@gentoo.org> | 2024-03-04 10:03:49 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-03-04 10:05:37 +0000 |
commit | 97ebdf452e739583cb3f1d5cbcff6bb145811e2a (patch) | |
tree | 4daffe491ce53b56e893dfa2483efb800f7e836d | |
parent | dev-java/jakartaee-migration: fixed dependency version in 1.0.8-r1 (diff) | |
download | gentoo-97ebdf452e739583cb3f1d5cbcff6bb145811e2a.tar.gz gentoo-97ebdf452e739583cb3f1d5cbcff6bb145811e2a.tar.bz2 gentoo-97ebdf452e739583cb3f1d5cbcff6bb145811e2a.zip |
app-arch/xz-utils: workaround USE=pgo build failure
Workaround a build failure with USE=pgo by disabling instrumentation of the
crc{32,64} IFUNC resolvers.
No revbump as it shouldn't affect runtime at all - instrumentation would kill
it immediately if at all, it's not an issue from the profiled binaries, just
the instrumentation to profile them.
Bug: https://gcc.gnu.org/PR114115
Closes: https://bugs.gentoo.org/925415
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | app-arch/xz-utils/files/xz-utils-5.6.0-ifunc-crc-workaround.patch | 27 | ||||
-rw-r--r-- | app-arch/xz-utils/xz-utils-5.6.0-r1.ebuild | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/app-arch/xz-utils/files/xz-utils-5.6.0-ifunc-crc-workaround.patch b/app-arch/xz-utils/files/xz-utils-5.6.0-ifunc-crc-workaround.patch new file mode 100644 index 000000000000..e793aac56a78 --- /dev/null +++ b/app-arch/xz-utils/files/xz-utils-5.6.0-ifunc-crc-workaround.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/925415 +https://gcc.gnu.org/PR114115 + +Workaround a build failure with USE=pgo by disabling instrumentation of the +crc{32,64} IFUNC resolvers. +--- a/src/liblzma/check/crc32_fast.c ++++ b/src/liblzma/check/crc32_fast.c +@@ -135,7 +135,7 @@ typedef uint32_t (*crc32_func_type)( + // This resolver is shared between all three dispatch methods. It serves as + // the ifunc resolver if ifunc is supported, otherwise it is called as a + // regular function by the constructor or first call resolution methods. +-static crc32_func_type ++static __attribute__((no_profile_instrument_function)) crc32_func_type + crc32_resolve(void) + { + return is_arch_extension_supported() +--- a/src/liblzma/check/crc64_fast.c ++++ b/src/liblzma/check/crc64_fast.c +@@ -98,7 +98,7 @@ typedef uint64_t (*crc64_func_type)( + # pragma GCC diagnostic ignored "-Wunused-function" + #endif + +-static crc64_func_type ++static __attribute__((no_profile_instrument_function)) crc64_func_type + crc64_resolve(void) + { + return is_arch_extension_supported() diff --git a/app-arch/xz-utils/xz-utils-5.6.0-r1.ebuild b/app-arch/xz-utils/xz-utils-5.6.0-r1.ebuild index 26708cb6aea1..7260487c61d5 100644 --- a/app-arch/xz-utils/xz-utils-5.6.0-r1.ebuild +++ b/app-arch/xz-utils/xz-utils-5.6.0-r1.ebuild @@ -55,6 +55,7 @@ fi PATCHES=( "${FILESDIR}"/${P}-logging-verbosity-threads-auto.patch + "${FILESDIR}"/${PN}-5.6.0-ifunc-crc-workaround.patch ) src_prepare() { |