1 |
diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4 |
2 |
--- jdk8/common/autoconf/libraries.m4 |
3 |
+++ jdk8/common/autoconf/libraries.m4 |
4 |
@@ -487,11 +487,40 @@ |
5 |
# Check for the jpeg library |
6 |
# |
7 |
|
8 |
-USE_EXTERNAL_LIBJPEG=true |
9 |
-AC_CHECK_LIB(jpeg, main, [], |
10 |
- [ USE_EXTERNAL_LIBJPEG=false |
11 |
- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) |
12 |
- ]) |
13 |
+AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], |
14 |
+ [use libjpeg from build system or OpenJDK sources (system, bundled) @<:@bundled@:>@])]) |
15 |
+ |
16 |
+AC_CHECK_LIB(jpeg, jpeg_destroy_compress, |
17 |
+ [ LIBJPEG_FOUND=yes ], |
18 |
+ [ LIBJPEG_FOUND=no ]) |
19 |
+ |
20 |
+AC_MSG_CHECKING([for which libjpeg to use]) |
21 |
+ |
22 |
+# default is bundled |
23 |
+DEFAULT_LIBJPEG=bundled |
24 |
+ |
25 |
+# |
26 |
+# if user didn't specify, use DEFAULT_LIBJPEG |
27 |
+# |
28 |
+if test "x${with_libjpeg}" = "x"; then |
29 |
+ with_libjpeg=${DEFAULT_LIBJPEG} |
30 |
+fi |
31 |
+ |
32 |
+if test "x${with_libjpeg}" = "xbundled"; then |
33 |
+ USE_EXTERNAL_LIBJPEG=false |
34 |
+ AC_MSG_RESULT([bundled]) |
35 |
+elif test "x${with_libjpeg}" = "xsystem"; then |
36 |
+ if test "x${LIBJPEG_FOUND}" = "xyes"; then |
37 |
+ USE_EXTERNAL_LIBJPEG=true |
38 |
+ AC_MSG_RESULT([system]) |
39 |
+ else |
40 |
+ AC_MSG_RESULT([system not found]) |
41 |
+ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found]) |
42 |
+ fi |
43 |
+else |
44 |
+ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) |
45 |
+fi |
46 |
+ |
47 |
AC_SUBST(USE_EXTERNAL_LIBJPEG) |
48 |
|
49 |
############################################################################### |
50 |
diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk |
51 |
--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk |
52 |
+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk |
53 |
@@ -1249,17 +1249,17 @@ |
54 |
########################################################################################## |
55 |
|
56 |
ifdef OPENJDK |
57 |
- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers |
58 |
+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers |
59 |
else |
60 |
- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed |
61 |
- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg |
62 |
- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC) |
63 |
+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed |
64 |
+ BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg |
65 |
+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) |
66 |
endif |
67 |
|
68 |
-BUILD_LIBJPEG_REORDER:= |
69 |
+BUILD_LIBJAVAJPEG_REORDER:= |
70 |
ifeq ($(OPENJDK_TARGET_OS), solaris) |
71 |
ifneq ($(OPENJDK_TARGET_CPU), x86_64) |
72 |
- BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) |
73 |
+ BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) |
74 |
endif |
75 |
endif |
76 |
|
77 |
@@ -1274,37 +1274,37 @@ |
78 |
# $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ |
79 |
# \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) |
80 |
# ifeq ($(CC_43_OR_NEWER),1) |
81 |
-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered |
82 |
+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered |
83 |
# endif |
84 |
#endif |
85 |
|
86 |
-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\ |
87 |
- LIBRARY:=jpeg, \ |
88 |
+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\ |
89 |
+ LIBRARY:=javajpeg, \ |
90 |
OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\ |
91 |
- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \ |
92 |
+ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ |
93 |
$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ |
94 |
LANG:=C,\ |
95 |
OPTIMIZATION:=HIGHEST, \ |
96 |
CFLAGS:=$(CFLAGS_JDKLIB) \ |
97 |
- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ |
98 |
+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ |
99 |
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ |
100 |
- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \ |
101 |
- LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
102 |
+ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \ |
103 |
+ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \ |
104 |
$(call SET_SHARED_LIBRARY_ORIGIN),\ |
105 |
LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\ |
106 |
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
107 |
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ |
108 |
RC_FLAGS:=$(RC_FLAGS)\ |
109 |
- -D "JDK_FNAME=jpeg.dll" \ |
110 |
- -D "JDK_INTERNAL_NAME=jpeg" \ |
111 |
+ -D "JDK_FNAME=javajpeg.dll" \ |
112 |
+ -D "JDK_INTERNAL_NAME=javajpeg" \ |
113 |
-D "JDK_FTYPE=0x2L",\ |
114 |
- REORDER:=$(BUILD_LIBJPEG_REORDER),\ |
115 |
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\ |
116 |
+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\ |
117 |
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\ |
118 |
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES))) |
119 |
|
120 |
-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA) |
121 |
- |
122 |
-BUILD_LIBRARIES += $(BUILD_LIBJPEG) |
123 |
+$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA) |
124 |
+ |
125 |
+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) |
126 |
|
127 |
########################################################################################## |
128 |
|
129 |
@@ -2441,7 +2441,7 @@ |
130 |
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \ |
131 |
-framework JavaNativeFoundation |
132 |
else ifneq ($(OPENJDK_TARGET_OS), windows) |
133 |
- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread |
134 |
+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread -ljpeg |
135 |
else # OPENJDK_TARGET_OS |
136 |
LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll |
137 |
endif # OPENJDK_TARGET_OS |
138 |
@@ -2457,7 +2457,7 @@ |
139 |
MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \ |
140 |
LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
141 |
$(call SET_SHARED_LIBRARY_ORIGIN),\ |
142 |
- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\ |
143 |
+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\ |
144 |
LDFLAGS_SUFFIX_solaris:=-lc,\ |
145 |
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ |
146 |
RC_FLAGS:=$(RC_FLAGS)\ |
147 |
diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java |
148 |
--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java |
149 |
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java |
150 |
@@ -89,7 +89,7 @@ |
151 |
java.security.AccessController.doPrivileged( |
152 |
new java.security.PrivilegedAction<Void>() { |
153 |
public Void run() { |
154 |
- System.loadLibrary("jpeg"); |
155 |
+ System.loadLibrary("javajpeg"); |
156 |
return null; |
157 |
} |
158 |
}); |
159 |
diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java |
160 |
--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java |
161 |
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java |
162 |
@@ -179,7 +179,7 @@ |
163 |
java.security.AccessController.doPrivileged( |
164 |
new java.security.PrivilegedAction<Void>() { |
165 |
public Void run() { |
166 |
- System.loadLibrary("jpeg"); |
167 |
+ System.loadLibrary("javajpeg"); |
168 |
return null; |
169 |
} |
170 |
}); |
171 |
diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java b/src/share/classes/sun/awt/image/JPEGImageDecoder.java |
172 |
--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java |
173 |
+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java |
174 |
@@ -56,7 +56,7 @@ |
175 |
java.security.AccessController.doPrivileged( |
176 |
new java.security.PrivilegedAction<Void>() { |
177 |
public Void run() { |
178 |
- System.loadLibrary("jpeg"); |
179 |
+ System.loadLibrary("javajpeg"); |
180 |
return null; |
181 |
} |
182 |
}); |
183 |
diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c |
184 |
--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c |
185 |
+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c |
186 |
@@ -25,7 +25,6 @@ |
187 |
|
188 |
#include "splashscreen_impl.h" |
189 |
|
190 |
-#include "jinclude.h" |
191 |
#include "jpeglib.h" |
192 |
#include "jerror.h" |
193 |
|
194 |
@@ -107,11 +106,11 @@ |
195 |
if (cinfo->src == NULL) { /* first time for this JPEG object? */ |
196 |
cinfo->src = (struct jpeg_source_mgr *) |
197 |
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, |
198 |
- JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); |
199 |
+ JPOOL_PERMANENT, sizeof(stream_source_mgr)); |
200 |
src = (stream_src_ptr) cinfo->src; |
201 |
src->buffer = (JOCTET *) |
202 |
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, |
203 |
- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); |
204 |
+ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); |
205 |
} |
206 |
|
207 |
src = (stream_src_ptr) cinfo->src; |