commit: 1c7a04ecf47d2ec93dc6acc13d8d2dbe78ded1ce Author: Viorel Munteanu <ceamac <AT> gentoo <DOT> org> AuthorDate: Mon Jan 2 16:23:03 2023 +0000 Commit: Viorel Munteanu <ceamac <AT> gentoo <DOT> org> CommitDate: Mon Jan 2 16:29:39 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c7a04ec
media-libs/netpbm: fix compilation with clang -O2 Closes: https://bugs.gentoo.org/885561 Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org> .../netpbm/files/netpbm-11.1.0-fix-clang-O2.patch | 26 ++++++++++++++++++++++ ...etpbm-11.1.0.ebuild => netpbm-11.1.0-r1.ebuild} | 5 ++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch b/media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch new file mode 100644 index 000000000000..4427676b9b35 --- /dev/null +++ b/media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch @@ -0,0 +1,26 @@ +When compiling with clang and -O2, local variable origJmpbufP with value +changed after setjmp contains garbage after longjmp. + +According to glibc documentation, making it volatile should have fixed the +issue, but it didn't. Static outside the function works. + +Bug: https://bugs.gentoo.org/885561 + +--- a/lib/libpamread.c ++++ b/lib/libpamread.c +@@ -25,6 +25,7 @@ + #include "fileio.h" + #include "pam.h" + ++static jmp_buf * origJmpbufP = NULL; + + static void + readPbmRow(const struct pam * const pamP, +@@ -35,7 +36,6 @@ + "It says PBM format, but 'depth' member is not 1."); + else { + jmp_buf jmpbuf; +- jmp_buf * origJmpbufP; + unsigned char * bitrow; + + bitrow = (unsigned char *) pbm_allocrow(pbm_packed_bytes(pamP->width)); diff --git a/media-libs/netpbm/netpbm-11.1.0.ebuild b/media-libs/netpbm/netpbm-11.1.0-r1.ebuild similarity index 98% rename from media-libs/netpbm/netpbm-11.1.0.ebuild rename to media-libs/netpbm/netpbm-11.1.0-r1.ebuild index 7d44b7a5bd79..321a76b14293 100644 --- a/media-libs/netpbm/netpbm-11.1.0.ebuild +++ b/media-libs/netpbm/netpbm-11.1.0-r1.ebuild @@ -42,16 +42,14 @@ RDEPEND=" ) rle? ( media-libs/urt:= ) svga? ( media-libs/svgalib ) - tiff? ( >=media-libs/tiff-3.5.5:= ) + tiff? ( media-libs/tiff ) xml? ( dev-libs/libxml2 ) X? ( x11-libs/libX11 ) " - DEPEND=" ${RDEPEND} x11-base/xorg-proto " - BDEPEND=" app-arch/xz-utils sys-devel/flex @@ -61,6 +59,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/netpbm-10.86.21-build.patch "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch + "${FILESDIR}"/netpbm-11.1.0-fix-clang-O2.patch ) netpbm_libtype() {
