diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4 --- jdk8/common/autoconf/libraries.m4 +++ jdk8/common/autoconf/libraries.m4 @@ -487,11 +487,40 @@ # Check for the jpeg library # -USE_EXTERNAL_LIBJPEG=true -AC_CHECK_LIB(jpeg, main, [], - [ USE_EXTERNAL_LIBJPEG=false - AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) - ]) +AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], + [use libjpeg from build system or OpenJDK sources (system, bundled) @<:@bundled@:>@])]) + +AC_CHECK_LIB(jpeg, jpeg_destroy_compress, + [ LIBJPEG_FOUND=yes ], + [ LIBJPEG_FOUND=no ]) + +AC_MSG_CHECKING([for which libjpeg to use]) + +# default is bundled +DEFAULT_LIBJPEG=bundled + +# +# if user didn't specify, use DEFAULT_LIBJPEG +# +if test "x${with_libjpeg}" = "x"; then + with_libjpeg=${DEFAULT_LIBJPEG} +fi + +if test "x${with_libjpeg}" = "xbundled"; then + USE_EXTERNAL_LIBJPEG=false + AC_MSG_RESULT([bundled]) +elif test "x${with_libjpeg}" = "xsystem"; then + if test "x${LIBJPEG_FOUND}" = "xyes"; then + USE_EXTERNAL_LIBJPEG=true + AC_MSG_RESULT([system]) + else + AC_MSG_RESULT([system not found]) + AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found]) + fi +else + AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) +fi + AC_SUBST(USE_EXTERNAL_LIBJPEG) ############################################################################### diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk --- jdk8/jdk/makefiles/CompileNativeLibraries.gmk +++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk @@ -1249,17 +1249,17 @@ ########################################################################################## ifdef OPENJDK - BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers + BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers else - BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed - BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg - BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC) + BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed + BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg + BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) endif -BUILD_LIBJPEG_REORDER:= +BUILD_LIBJAVAJPEG_REORDER:= ifeq ($(OPENJDK_TARGET_OS), solaris) ifneq ($(OPENJDK_TARGET_CPU), x86_64) - BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) + BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) endif endif @@ -1274,37 +1274,37 @@ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) # ifeq ($(CC_43_OR_NEWER),1) -# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered +# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered # endif #endif -$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\ - LIBRARY:=jpeg, \ +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\ + LIBRARY:=javajpeg, \ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\ - SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \ + SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ LANG:=C,\ OPTIMIZATION:=HIGHEST, \ CFLAGS:=$(CFLAGS_JDKLIB) \ - $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ + $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ - MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \ - LDFLAGS:=$(LDFLAGS_JDKLIB) \ + MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \ + LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\ LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ - -D "JDK_FNAME=jpeg.dll" \ - -D "JDK_INTERNAL_NAME=jpeg" \ + -D "JDK_FNAME=javajpeg.dll" \ + -D "JDK_INTERNAL_NAME=javajpeg" \ -D "JDK_FTYPE=0x2L",\ - REORDER:=$(BUILD_LIBJPEG_REORDER),\ - OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\ + REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\ + OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES))) -$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJPEG) +$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) ########################################################################################## @@ -2441,7 +2441,7 @@ -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ -framework JavaNativeFoundation else ifneq ($(OPENJDK_TARGET_OS), windows) - LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread + LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread -ljpeg else # OPENJDK_TARGET_OS LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll endif # OPENJDK_TARGET_OS @@ -2457,7 +2457,7 @@ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ - LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\ + LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\ LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java @@ -89,7 +89,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java @@ -179,7 +179,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java b/src/share/classes/sun/awt/image/JPEGImageDecoder.java --- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java +++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java @@ -56,7 +56,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c @@ -25,7 +25,6 @@ #include "splashscreen_impl.h" -#include "jinclude.h" #include "jpeglib.h" #include "jerror.h" @@ -107,11 +106,11 @@ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); + JPOOL_PERMANENT, sizeof(stream_source_mgr)); src = (stream_src_ptr) cinfo->src; src->buffer = (JOCTET *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); + JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); } src = (stream_src_ptr) cinfo->src;