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() { |