From 1c7a04ecf47d2ec93dc6acc13d8d2dbe78ded1ce Mon Sep 17 00:00:00 2001 From: Viorel Munteanu Date: Mon, 2 Jan 2023 18:23:03 +0200 Subject: [PATCH] media-libs/netpbm: fix compilation with clang -O2 Closes: https://bugs.gentoo.org/885561 Signed-off-by: Viorel Munteanu --- .../files/netpbm-11.1.0-fix-clang-O2.patch | 26 +++++++++++++++++++ ...-11.1.0.ebuild => netpbm-11.1.0-r1.ebuild} | 5 ++-- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch rename media-libs/netpbm/{netpbm-11.1.0.ebuild => netpbm-11.1.0-r1.ebuild} (98%) 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 0000000000000..4427676b9b359 --- /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 7d44b7a5bd796..321a76b14293e 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() {