summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViorel Munteanu <ceamac@gentoo.org>2023-01-02 18:23:03 +0200
committerViorel Munteanu <ceamac@gentoo.org>2023-01-02 18:29:39 +0200
commit1c7a04ecf47d2ec93dc6acc13d8d2dbe78ded1ce (patch)
tree1832c879038faf36aba1e77807f3c1569e156a56
parentsci-libs/pyshp: Add missing test dep (diff)
downloadgentoo-1c7a04ec.tar.gz
gentoo-1c7a04ec.tar.bz2
gentoo-1c7a04ec.zip
media-libs/netpbm: fix compilation with clang -O2
Closes: https://bugs.gentoo.org/885561 Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
-rw-r--r--media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch26
-rw-r--r--media-libs/netpbm/netpbm-11.1.0-r1.ebuild (renamed from media-libs/netpbm/netpbm-11.1.0.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
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() {