Gentoo Archives: gentoo-commits

From: Viorel Munteanu <ceamac@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/netpbm/, media-libs/netpbm/files/
Date: Mon, 02 Jan 2023 16:30:21
Message-Id: 1672676979.1c7a04ecf47d2ec93dc6acc13d8d2dbe78ded1ce.ceamac@gentoo
1 commit: 1c7a04ecf47d2ec93dc6acc13d8d2dbe78ded1ce
2 Author: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 2 16:23:03 2023 +0000
4 Commit: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
5 CommitDate: Mon Jan 2 16:29:39 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c7a04ec
7
8 media-libs/netpbm: fix compilation with clang -O2
9
10 Closes: https://bugs.gentoo.org/885561
11 Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>
12
13 .../netpbm/files/netpbm-11.1.0-fix-clang-O2.patch | 26 ++++++++++++++++++++++
14 ...etpbm-11.1.0.ebuild => netpbm-11.1.0-r1.ebuild} | 5 ++---
15 2 files changed, 28 insertions(+), 3 deletions(-)
16
17 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
18 new file mode 100644
19 index 000000000000..4427676b9b35
20 --- /dev/null
21 +++ b/media-libs/netpbm/files/netpbm-11.1.0-fix-clang-O2.patch
22 @@ -0,0 +1,26 @@
23 +When compiling with clang and -O2, local variable origJmpbufP with value
24 +changed after setjmp contains garbage after longjmp.
25 +
26 +According to glibc documentation, making it volatile should have fixed the
27 +issue, but it didn't. Static outside the function works.
28 +
29 +Bug: https://bugs.gentoo.org/885561
30 +
31 +--- a/lib/libpamread.c
32 ++++ b/lib/libpamread.c
33 +@@ -25,6 +25,7 @@
34 + #include "fileio.h"
35 + #include "pam.h"
36 +
37 ++static jmp_buf * origJmpbufP = NULL;
38 +
39 + static void
40 + readPbmRow(const struct pam * const pamP,
41 +@@ -35,7 +36,6 @@
42 + "It says PBM format, but 'depth' member is not 1.");
43 + else {
44 + jmp_buf jmpbuf;
45 +- jmp_buf * origJmpbufP;
46 + unsigned char * bitrow;
47 +
48 + bitrow = (unsigned char *) pbm_allocrow(pbm_packed_bytes(pamP->width));
49
50 diff --git a/media-libs/netpbm/netpbm-11.1.0.ebuild b/media-libs/netpbm/netpbm-11.1.0-r1.ebuild
51 similarity index 98%
52 rename from media-libs/netpbm/netpbm-11.1.0.ebuild
53 rename to media-libs/netpbm/netpbm-11.1.0-r1.ebuild
54 index 7d44b7a5bd79..321a76b14293 100644
55 --- a/media-libs/netpbm/netpbm-11.1.0.ebuild
56 +++ b/media-libs/netpbm/netpbm-11.1.0-r1.ebuild
57 @@ -42,16 +42,14 @@ RDEPEND="
58 )
59 rle? ( media-libs/urt:= )
60 svga? ( media-libs/svgalib )
61 - tiff? ( >=media-libs/tiff-3.5.5:= )
62 + tiff? ( media-libs/tiff )
63 xml? ( dev-libs/libxml2 )
64 X? ( x11-libs/libX11 )
65 "
66 -
67 DEPEND="
68 ${RDEPEND}
69 x11-base/xorg-proto
70 "
71 -
72 BDEPEND="
73 app-arch/xz-utils
74 sys-devel/flex
75 @@ -61,6 +59,7 @@ BDEPEND="
76 PATCHES=(
77 "${FILESDIR}"/netpbm-10.86.21-build.patch
78 "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch
79 + "${FILESDIR}"/netpbm-11.1.0-fix-clang-O2.patch
80 )
81
82 netpbm_libtype() {