]>
Commit | Line | Data |
---|---|---|
0fa4da98 JP |
1 | # DP: S8043805: Allow using a system-installed libjpeg |
2 | # DP: http://hg.openjdk.java.net/jdk9/client/rev/bfd9a3e1aeb5 | |
3 | # DP: http://hg.openjdk.java.net/jdk9/client/jdk/rev/320743f0b4fc | |
4 | ||
5 | --- a/common/autoconf/libraries.m4 | |
6 | +++ b/common/autoconf/libraries.m4 | |
7 | @@ -774,11 +774,36 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], | |
991454fa JK |
8 | # Check for the jpeg library |
9 | # | |
10 | ||
11 | - USE_EXTERNAL_LIBJPEG=true | |
12 | - AC_CHECK_LIB(jpeg, main, [], | |
13 | - [ USE_EXTERNAL_LIBJPEG=false | |
14 | - AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) | |
15 | - ]) | |
16 | + AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], | |
17 | + [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) | |
18 | + | |
19 | + AC_MSG_CHECKING([for which libjpeg to use]) | |
20 | + | |
21 | + # default is bundled | |
22 | + DEFAULT_LIBJPEG=bundled | |
23 | + | |
24 | + # | |
25 | + # if user didn't specify, use DEFAULT_LIBJPEG | |
26 | + # | |
27 | + if test "x${with_libjpeg}" = "x"; then | |
28 | + with_libjpeg=${DEFAULT_LIBJPEG} | |
29 | + fi | |
30 | + | |
31 | + AC_MSG_RESULT(${with_libjpeg}) | |
32 | + | |
33 | + if test "x${with_libjpeg}" = "xbundled"; then | |
34 | + USE_EXTERNAL_LIBJPEG=false | |
35 | + elif test "x${with_libjpeg}" = "xsystem"; then | |
36 | + AC_CHECK_HEADER(jpeglib.h, [], | |
37 | + [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])]) | |
38 | + AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [], | |
39 | + [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])]) | |
40 | + | |
41 | + USE_EXTERNAL_LIBJPEG=true | |
42 | + else | |
43 | + AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) | |
44 | + fi | |
45 | + | |
46 | AC_SUBST(USE_EXTERNAL_LIBJPEG) | |
47 | ||
48 | ############################################################################### | |
0fa4da98 JP |
49 | --- a/jdk/make/lib/Awt2dLibraries.gmk |
50 | +++ b/jdk/make/lib/Awt2dLibraries.gmk | |
51 | @@ -702,21 +702,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT) | |
991454fa JK |
52 | |
53 | ########################################################################################## | |
54 | ||
55 | +BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg | |
56 | + | |
57 | ifdef OPENJDK | |
58 | - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers | |
59 | + BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers | |
60 | else | |
61 | - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed | |
62 | - BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg | |
63 | - BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) | |
64 | + BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed | |
65 | + BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg | |
66 | + BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) | |
67 | endif | |
68 | ||
69 | -BUILD_LIBJPEG_REORDER := | |
70 | +BUILD_LIBJAVAJPEG_REORDER := | |
71 | ifeq ($(OPENJDK_TARGET_OS), solaris) | |
72 | ifneq ($(OPENJDK_TARGET_CPU), x86_64) | |
73 | - BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) | |
74 | + BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) | |
75 | endif | |
76 | endif | |
77 | ||
78 | + | |
79 | # Suppress gcc warnings like "variable might be clobbered by 'longjmp' | |
80 | # or 'vfork'": this warning indicates that some variable is placed to | |
81 | # a register by optimized compiler and it's value might be lost on longjmp(). | |
0fa4da98 | 82 | @@ -728,37 +731,50 @@ endif |
991454fa JK |
83 | # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ |
84 | # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) | |
85 | # ifeq ($(CC_43_OR_NEWER), 1) | |
86 | -# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered | |
87 | +# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered | |
88 | # endif | |
89 | #endif | |
90 | ||
91 | -$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ | |
92 | - LIBRARY := jpeg, \ | |
93 | +ifeq ($(USE_EXTERNAL_LIBJPEG), true) | |
94 | + LIBJPEG_LIBS := -ljpeg | |
95 | + BUILD_LIBJAVAJPEG_INCLUDE_FILES := \ | |
96 | + imageIOJPEG.c \ | |
97 | + jpegdecoder.c | |
98 | + BUILD_LIBJAVAJPEG_HEADERS := | |
99 | +else | |
100 | + LIBJPEG_LIBS := | |
101 | + BUILD_LIBJAVAJPEG_INCLUDE_FILES := | |
102 | + BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR) | |
103 | +endif | |
104 | + | |
105 | +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \ | |
106 | + LIBRARY := javajpeg, \ | |
107 | OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ | |
108 | - SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ | |
109 | - $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ | |
110 | + SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ | |
111 | + $(BUILD_LIBJAVAJPEG_DIR), \ | |
112 | + INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \ | |
113 | LANG := C, \ | |
114 | OPTIMIZATION := HIGHEST, \ | |
115 | CFLAGS := $(CFLAGS_JDKLIB) \ | |
116 | - $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ | |
117 | - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ | |
118 | - MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ | |
0fa4da98 | 119 | - LDFLAGS := $(LDFLAGS_JDKLIB) \ |
991454fa JK |
120 | + $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ |
121 | + $(BUILD_LIBJAVAJPEG_HEADERS), \ | |
122 | + MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ | |
0fa4da98 | 123 | + LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \ |
991454fa JK |
124 | $(call SET_SHARED_LIBRARY_ORIGIN), \ |
125 | LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ | |
0fa4da98 | 126 | LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ |
991454fa JK |
127 | VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ |
128 | RC_FLAGS := $(RC_FLAGS) \ | |
129 | - -D "JDK_FNAME=jpeg.dll" \ | |
130 | - -D "JDK_INTERNAL_NAME=jpeg" \ | |
131 | + -D "JDK_FNAME=javajpeg.dll" \ | |
132 | + -D "JDK_INTERNAL_NAME=javajpeg" \ | |
133 | -D "JDK_FTYPE=0x2L", \ | |
134 | - REORDER := $(BUILD_LIBJPEG_REORDER), \ | |
135 | + REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \ | |
136 | OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ | |
137 | DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) | |
138 | ||
139 | -$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) | |
140 | +$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA) | |
141 | ||
142 | -BUILD_LIBRARIES += $(BUILD_LIBJPEG) | |
143 | +BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) | |
144 | ||
145 | ########################################################################################## | |
146 | ||
0fa4da98 | 147 | @@ -1149,6 +1165,13 @@ ifndef BUILD_HEADLESS_ONLY |
991454fa JK |
148 | GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib |
149 | endif | |
150 | ||
151 | + ifeq ($(USE_EXTERNAL_LIBJPEG), true) | |
152 | + LIBJPEG_LDFLAGS := -ljpeg | |
153 | + else | |
154 | + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg | |
155 | + LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg | |
156 | + endif | |
157 | + | |
158 | ifneq ($(OPENJDK_TARGET_OS), macosx) | |
159 | LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen | |
160 | else | |
0fa4da98 | 161 | @@ -1205,11 +1228,13 @@ ifndef BUILD_HEADLESS_ONLY |
991454fa JK |
162 | EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ |
163 | LANG := C, \ | |
164 | OPTIMIZATION := LOW, \ | |
165 | - CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ | |
166 | + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ | |
167 | + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ | |
168 | MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ | |
169 | LDFLAGS := $(LDFLAGS_JDKLIB) \ | |
170 | $(call SET_SHARED_LIBRARY_ORIGIN), \ | |
171 | - LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ | |
172 | + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ | |
173 | + $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ | |
174 | LDFLAGS_SUFFIX_solaris := -lc, \ | |
175 | VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ | |
176 | RC_FLAGS := $(RC_FLAGS) \ | |
0fa4da98 JP |
177 | --- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java |
178 | +++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java | |
179 | @@ -89,7 +89,7 @@ public class JPEGImageReader extends Ima | |
991454fa JK |
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 | }); | |
0fa4da98 JP |
188 | --- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java |
189 | +++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java | |
190 | @@ -177,7 +177,7 @@ public class JPEGImageWriter extends Ima | |
991454fa JK |
191 | java.security.AccessController.doPrivileged( |
192 | new java.security.PrivilegedAction<Void>() { | |
193 | public Void run() { | |
194 | - System.loadLibrary("jpeg"); | |
195 | + System.loadLibrary("javajpeg"); | |
196 | return null; | |
197 | } | |
198 | }); | |
0fa4da98 JP |
199 | --- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java |
200 | +++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java | |
201 | @@ -56,7 +56,7 @@ public class JPEGImageDecoder extends Im | |
991454fa JK |
202 | java.security.AccessController.doPrivileged( |
203 | new java.security.PrivilegedAction<Void>() { | |
204 | public Void run() { | |
205 | - System.loadLibrary("jpeg"); | |
206 | + System.loadLibrary("javajpeg"); | |
207 | return null; | |
208 | } | |
209 | }); | |
0fa4da98 JP |
210 | --- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c |
211 | +++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c | |
991454fa JK |
212 | @@ -51,7 +51,7 @@ |
213 | ||
214 | /* headers from the JPEG library */ | |
215 | #include <jpeglib.h> | |
216 | -#include "jerror.h" | |
217 | +#include <jerror.h> | |
218 | ||
219 | #undef MAX | |
220 | #define MAX(a,b) ((a) > (b) ? (a) : (b)) |