Blame jdk8043805-allow_using_system_installed_libjpeg.patch

582db12
diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
582db12
--- jdk8/common/autoconf/libraries.m4	2013-10-31 19:24:33.000000000 -0400
582db12
+++ jdk8/common/autoconf/libraries.m4	2013-11-14 21:55:20.249903347 -0500
582db12
@@ -601,12 +601,42 @@
582db12
   #
582db12
 
582db12
   USE_EXTERNAL_LIBJPEG=true
582db12
-  AC_CHECK_LIB(jpeg, main, [],
582db12
-      [ USE_EXTERNAL_LIBJPEG=false
582db12
-      AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
582db12
-  ])
582db12
+  AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
582db12
+      [use libjpeg from build system or OpenJDK sources (system, bundled) @<:@bundled@:>@])])
Jiri Vanek 8c391a6
+
582db12
+  AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
582db12
+               [ LIBJPEG_FOUND=yes ],
582db12
+               [ LIBJPEG_FOUND=no ])
Jiri Vanek 8c391a6
+
582db12
+  AC_MSG_CHECKING([for which libjpeg to use])
Jiri Vanek 8c391a6
+
582db12
+  # default is bundled
582db12
+  DEFAULT_LIBJPEG=bundled
Jiri Vanek 8c391a6
+
582db12
+  #
582db12
+  # if user didn't specify, use DEFAULT_LIBJPEG
582db12
+  #
582db12
+  if test "x${with_libjpeg}" = "x"; then
582db12
+      with_libjpeg=${DEFAULT_LIBJPEG}
582db12
+  fi
Jiri Vanek 8c391a6
+
582db12
+  if test "x${with_libjpeg}" = "xbundled"; then
582db12
+      USE_EXTERNAL_LIBJPEG=false
582db12
+      AC_MSG_RESULT([bundled])
582db12
+  elif test "x${with_libjpeg}" = "xsystem"; then
582db12
+      if test "x${LIBJPEG_FOUND}" = "xyes"; then
582db12
+          USE_EXTERNAL_LIBJPEG=true
582db12
+          AC_MSG_RESULT([system])
582db12
+      else
582db12
+          AC_MSG_RESULT([system not found])
582db12
+          AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
582db12
+      fi
582db12
+  else
582db12
+      AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
582db12
+  fi
582db12
   AC_SUBST(USE_EXTERNAL_LIBJPEG)
582db12
 
Jiri Vanek 8c391a6
+
582db12
   ###############################################################################
582db12
   #
582db12
   # Check for the gif library
3bdbf7e
diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
3bdbf7e
--- jdk8/jdk/make/lib/Awt2dLibraries.gmk	2013-10-31 19:44:18.000000000 -0400
3bdbf7e
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk	2013-11-14 21:56:01.020796703 -0500
e4bd04d
@@ -693,17 +693,17 @@
Jiri Vanek 8c391a6
 ##########################################################################################
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
 ifdef OPENJDK
3bdbf7e
-  BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
3bdbf7e
+  BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
Jiri Vanek 8c391a6
 else
3bdbf7e
-  BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
582db12
-  BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
582db12
-  BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
3bdbf7e
+  BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
582db12
+  BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
582db12
+  BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
Jiri Vanek 8c391a6
 endif
Jiri Vanek 8c391a6
 
582db12
-BUILD_LIBJPEG_REORDER :=
582db12
+BUILD_LIBJAVAJPEG_REORDER :=
Jiri Vanek 8c391a6
 ifeq ($(OPENJDK_TARGET_OS), solaris)
582db12
   ifneq ($(OPENJDK_TARGET_CPU), x86_64)
3bdbf7e
-    BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
3bdbf7e
+    BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
582db12
   endif
Jiri Vanek 8c391a6
 endif
Jiri Vanek 8c391a6
 
e4bd04d
@@ -718,37 +718,38 @@
582db12
 #      $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
582db12
 #          \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
582db12
 #  ifeq ($(CC_43_OR_NEWER), 1)
582db12
-#    BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
582db12
+#    BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
582db12
 #  endif
Jiri Vanek 8c391a6
 #endif
Jiri Vanek 8c391a6
 
582db12
-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
582db12
-    LIBRARY := jpeg, \
582db12
+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
582db12
+    LIBRARY := javajpeg, \
582db12
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
582db12
-    SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
582db12
+    SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
582db12
         $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
582db12
     LANG := C, \
582db12
     OPTIMIZATION := HIGHEST, \
582db12
     CFLAGS := $(CFLAGS_JDKLIB) \
582db12
-        $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
582db12
+        $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
582db12
         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
582db12
-    MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
582db12
-    LDFLAGS := $(LDFLAGS_JDKLIB) \
582db12
+    MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
e4bd04d
+    LDFLAGS := $(subst -Xlinker --as-needed,, \
e4bd04d
+        $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) -ljpeg \
582db12
         $(call SET_SHARED_LIBRARY_ORIGIN), \
582db12
     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
582db12
     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
582db12
     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
582db12
     RC_FLAGS := $(RC_FLAGS) \
582db12
-        -D "JDK_FNAME=jpeg.dll" \
582db12
-        -D "JDK_INTERNAL_NAME=jpeg" \
582db12
+        -D "JDK_FNAME=javajpeg.dll" \
582db12
+        -D "JDK_INTERNAL_NAME=javajpeg" \
582db12
         -D "JDK_FTYPE=0x2L", \
582db12
-    REORDER := $(BUILD_LIBJPEG_REORDER), \
582db12
-    OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
582db12
+    REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
582db12
+    OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavajpeg, \
582db12
     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
582db12
 
582db12
-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
582db12
+$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
582db12
 
Jiri Vanek 8c391a6
-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
Jiri Vanek 8c391a6
+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
 ##########################################################################################
Jiri Vanek 8c391a6
 
e4bd04d
@@ -1127,7 +1128,6 @@
582db12
 
582db12
 ifndef BUILD_HEADLESS_ONLY
582db12
   LIBSPLASHSCREEN_DIRS := \
582db12
-    $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
582db12
     $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
582db12
     $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
582db12
 
e4bd04d
@@ -1138,6 +1138,13 @@
582db12
     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
582db12
   endif
582db12
 
582db12
+  ifeq ($(USE_EXTERNAL_LIBJPEG), true)
582db12
+    LIBJPEG_LDFLAGS := -ljpeg
582db12
+  else
582db12
+    LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
582db12
+    LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/jpeg
582db12
+  endif
582db12
+
582db12
   ifneq ($(OPENJDK_TARGET_OS), macosx)
582db12
     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
582db12
   else
e4bd04d
@@ -1193,11 +1200,13 @@
582db12
       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
582db12
       LANG := C, \
582db12
       OPTIMIZATION := LOW, \
582db12
-      CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
582db12
+      CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
582db12
+          $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
3bdbf7e
       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
582db12
       LDFLAGS := $(LDFLAGS_JDKLIB) \
582db12
           $(call SET_SHARED_LIBRARY_ORIGIN), \
582db12
-      LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
582db12
+      LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) \
582db12
+          $(LIBZ) $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
582db12
       LDFLAGS_SUFFIX_solaris := -lc, \
582db12
       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
582db12
       RC_FLAGS := $(RC_FLAGS) \
582db12
diff -ruN jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
582db12
--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java	2013-10-31 19:44:18.000000000 -0400
582db12
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java	2013-11-14 21:55:20.250903340 -0500
Jiri Vanek 8c391a6
@@ -89,7 +89,7 @@
Jiri Vanek 8c391a6
         java.security.AccessController.doPrivileged(
Jiri Vanek 8c391a6
             new java.security.PrivilegedAction<Void>() {
Jiri Vanek 8c391a6
                 public Void run() {
Jiri Vanek 8c391a6
-                    System.loadLibrary("jpeg");
Jiri Vanek 8c391a6
+                    System.loadLibrary("javajpeg");
Jiri Vanek 8c391a6
                     return null;
Jiri Vanek 8c391a6
                 }
Jiri Vanek 8c391a6
             });
582db12
diff -ruN jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
582db12
--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java	2013-10-31 19:44:18.000000000 -0400
582db12
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java	2013-11-14 21:55:20.250903340 -0500
Jiri Vanek 8c391a6
@@ -179,7 +179,7 @@
Jiri Vanek 8c391a6
         java.security.AccessController.doPrivileged(
Jiri Vanek 8c391a6
             new java.security.PrivilegedAction<Void>() {
Jiri Vanek 8c391a6
                 public Void run() {
Jiri Vanek 8c391a6
-                    System.loadLibrary("jpeg");
Jiri Vanek 8c391a6
+                    System.loadLibrary("javajpeg");
Jiri Vanek 8c391a6
                     return null;
Jiri Vanek 8c391a6
                 }
Jiri Vanek 8c391a6
             });
582db12
diff -ruN jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
582db12
--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java	2013-10-31 19:44:18.000000000 -0400
582db12
+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java	2013-11-14 21:55:20.251903376 -0500
Jiri Vanek 8c391a6
@@ -56,7 +56,7 @@
Jiri Vanek 8c391a6
         java.security.AccessController.doPrivileged(
Jiri Vanek 8c391a6
             new java.security.PrivilegedAction<Void>() {
Jiri Vanek 8c391a6
                 public Void run() {
Jiri Vanek 8c391a6
-                    System.loadLibrary("jpeg");
Jiri Vanek 8c391a6
+                    System.loadLibrary("javajpeg");
Jiri Vanek 8c391a6
                     return null;
Jiri Vanek 8c391a6
                 }
Jiri Vanek 8c391a6
             });
582db12
diff -ruN jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
582db12
--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c	2013-10-31 19:44:18.000000000 -0400
582db12
+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c	2013-11-14 21:55:20.251903376 -0500
Jiri Vanek 8c391a6
@@ -25,7 +25,6 @@
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
 #include "splashscreen_impl.h"
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
-#include "jinclude.h"
Jiri Vanek 8c391a6
 #include "jpeglib.h"
Jiri Vanek 8c391a6
 #include "jerror.h"
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
@@ -107,11 +106,11 @@
Jiri Vanek 8c391a6
     if (cinfo->src == NULL) {   /* first time for this JPEG object? */
Jiri Vanek 8c391a6
         cinfo->src = (struct jpeg_source_mgr *)
Jiri Vanek 8c391a6
             (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
Jiri Vanek 8c391a6
-            JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
Jiri Vanek 8c391a6
+            JPOOL_PERMANENT, sizeof(stream_source_mgr));
Jiri Vanek 8c391a6
         src = (stream_src_ptr) cinfo->src;
Jiri Vanek 8c391a6
         src->buffer = (JOCTET *)
Jiri Vanek 8c391a6
             (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
Jiri Vanek 8c391a6
-            JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
Jiri Vanek 8c391a6
+            JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
Jiri Vanek 8c391a6
     }
Jiri Vanek 8c391a6
 
Jiri Vanek 8c391a6
     src = (stream_src_ptr) cinfo->src;