summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch')
-rw-r--r--recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch216
1 files changed, 216 insertions, 0 deletions
diff --git a/recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch b/recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch
new file mode 100644
index 0000000..4d1df8a
--- /dev/null
+++ b/recipes-core/openjdk/patches-openjdk-8/2002-jdk-Allow-using-a-system-installed-libjpeg.patch
@@ -0,0 +1,216 @@
1From aef9a3f955f6e189b2a24b9f79ccb396275d4fa3 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
3Date: Tue, 27 Feb 2018 13:36:53 +0000
4Subject: [PATCH 2002/2008] jdk: Allow using a system-installed libjpeg
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Patch stolen (and some typos corrected) from debian patch,
10which itself was a backport from:
11 http://hg.openjdk.java.net/jdk9/client/rev/bfd9a3e1aeb5
12 http://hg.openjdk.java.net/jdk9/client/jdk/rev/320743f0b4fc
13
14Issues fixed on top of debian patch:
15 * imageIOJPEG.c -> imageioJPEG.c
16 * $(LIBJPEG_LIBS) must be added to LDFLAGS_SUFFIX, not
17 LDFLAGS as it otherwise doesn't make it into the linker
18 command line and then fails when using -Wl,-z,now in
19 LDFLAGS (as done when 'security' is enabled)
20
21Upstream-Status: Backport
22Signed-off-by: André Draszik <andre.draszik@jci.com>
23Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
24---
25 make/lib/Awt2dLibraries.gmk | 69 +++++++++++++------
26 .../imageio/plugins/jpeg/JPEGImageReader.java | 2 +-
27 .../imageio/plugins/jpeg/JPEGImageWriter.java | 2 +-
28 .../sun/awt/image/JPEGImageDecoder.java | 2 +-
29 .../native/sun/awt/image/jpeg/imageioJPEG.c | 2 +-
30 5 files changed, 51 insertions(+), 26 deletions(-)
31
32diff --git a/jdk/make/lib/Awt2dLibraries.gmk b/jdk/make/lib/Awt2dLibraries.gmk
33index a06bfd6db..12b9da11d 100644
34--- a/jdk/make/lib/Awt2dLibraries.gmk
35+++ b/jdk/make/lib/Awt2dLibraries.gmk
36@@ -695,21 +695,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
37
38 ##########################################################################################
39
40+BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
41+
42 ifdef OPENJDK
43- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
44+ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
45 else
46- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
47- BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
48- BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
49+ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
50+ BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
51+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
52 endif
53
54-BUILD_LIBJPEG_REORDER :=
55+BUILD_LIBJAVAJPEG_REORDER :=
56 ifeq ($(OPENJDK_TARGET_OS), solaris)
57 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
58- BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
59+ BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
60 endif
61 endif
62
63+
64 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
65 # or 'vfork'": this warning indicates that some variable is placed to
66 # a register by optimized compiler and it's value might be lost on longjmp().
67@@ -721,37 +724,50 @@ endif
68 # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
69 # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
70 # ifeq ($(CC_43_OR_NEWER), 1)
71-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
72+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
73 # endif
74 #endif
75
76-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
77- LIBRARY := jpeg, \
78+ifeq ($(USE_EXTERNAL_LIBJPEG), true)
79+ LIBJPEG_LIBS := -ljpeg
80+ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
81+ imageioJPEG.c \
82+ jpegdecoder.c
83+ BUILD_LIBJAVAJPEG_HEADERS :=
84+else
85+ LIBJPEG_LIBS :=
86+ BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
87+ BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR)
88+endif
89+
90+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
91+ LIBRARY := javajpeg, \
92 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
93- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
94- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
95+ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
96+ $(BUILD_LIBJAVAJPEG_DIR), \
97+ INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
98 LANG := C, \
99 OPTIMIZATION := HIGHEST, \
100 CFLAGS := $(CFLAGS_JDKLIB) \
101- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
102- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
103- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
104+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
105+ $(BUILD_LIBJAVAJPEG_HEADERS), \
106+ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
107 LDFLAGS := $(LDFLAGS_JDKLIB) \
108 $(call SET_SHARED_LIBRARY_ORIGIN), \
109 LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
110- LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
111+ LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBJPEG_LIBS), \
112 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
113 RC_FLAGS := $(RC_FLAGS) \
114- -D "JDK_FNAME=jpeg.dll" \
115- -D "JDK_INTERNAL_NAME=jpeg" \
116+ -D "JDK_FNAME=javajpeg.dll" \
117+ -D "JDK_INTERNAL_NAME=javajpeg" \
118 -D "JDK_FTYPE=0x2L", \
119- REORDER := $(BUILD_LIBJPEG_REORDER), \
120+ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
121 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
122 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
123
124-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
125+$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
126
127-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
128+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
129
130 ##########################################################################################
131
132@@ -1142,6 +1158,13 @@ ifndef BUILD_HEADLESS_ONLY
133 GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
134 endif
135
136+ ifeq ($(USE_EXTERNAL_LIBJPEG), true)
137+ LIBJPEG_LDFLAGS := -ljpeg
138+ else
139+ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
140+ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
141+ endif
142+
143 ifneq ($(OPENJDK_TARGET_OS), macosx)
144 LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
145 else
146@@ -1198,11 +1221,13 @@ ifndef BUILD_HEADLESS_ONLY
147 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
148 LANG := C, \
149 OPTIMIZATION := LOW, \
150- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
151+ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
152+ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
153 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
154 LDFLAGS := $(LDFLAGS_JDKLIB) \
155 $(call SET_SHARED_LIBRARY_ORIGIN), \
156- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
157+ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
158+ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
159 LDFLAGS_SUFFIX_solaris := -lc, \
160 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
161 RC_FLAGS := $(RC_FLAGS) \
162diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
163index 8f58f5b3e..fcbab8260 100644
164--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
165+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
166@@ -89,7 +89,7 @@ public class JPEGImageReader extends ImageReader {
167 java.security.AccessController.doPrivileged(
168 new java.security.PrivilegedAction<Void>() {
169 public Void run() {
170- System.loadLibrary("jpeg");
171+ System.loadLibrary("javajpeg");
172 return null;
173 }
174 });
175diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
176index 6a33bd5a1..dca189ed8 100644
177--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
178+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
179@@ -177,7 +177,7 @@ public class JPEGImageWriter extends ImageWriter {
180 java.security.AccessController.doPrivileged(
181 new java.security.PrivilegedAction<Void>() {
182 public Void run() {
183- System.loadLibrary("jpeg");
184+ System.loadLibrary("javajpeg");
185 return null;
186 }
187 });
188diff --git a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
189index 872ffc019..5965a186b 100644
190--- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
191+++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
192@@ -56,7 +56,7 @@ public class JPEGImageDecoder extends ImageDecoder {
193 java.security.AccessController.doPrivileged(
194 new java.security.PrivilegedAction<Void>() {
195 public Void run() {
196- System.loadLibrary("jpeg");
197+ System.loadLibrary("javajpeg");
198 return null;
199 }
200 });
201diff --git a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
202index 7e1d8c99d..8cac61da3 100644
203--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
204+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
205@@ -51,7 +51,7 @@
206
207 /* headers from the JPEG library */
208 #include <jpeglib.h>
209-#include "jerror.h"
210+#include <jerror.h>
211
212 #undef MAX
213 #define MAX(a,b) ((a) > (b) ? (a) : (b))
214--
2152.24.1
216