summaryrefslogtreecommitdiff
path: root/debian/patches/system-libjpeg.diff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2017-05-12 22:48:36 +0300
committerIgor Pashev <pashev.igor@gmail.com>2017-05-12 22:48:36 +0300
commit37d630875d33bf3c291026c40bb08d1b6c9edcc8 (patch)
tree68fb026f54a962cf1d631f010e98681add6ed014 /debian/patches/system-libjpeg.diff
downloadopenjdk-8-debian.tar.gz
Imported debian/openjdk-8_8u131-b11-1debian/8u131-b11-1debian
Diffstat (limited to 'debian/patches/system-libjpeg.diff')
-rw-r--r--debian/patches/system-libjpeg.diff361
1 files changed, 361 insertions, 0 deletions
diff --git a/debian/patches/system-libjpeg.diff b/debian/patches/system-libjpeg.diff
new file mode 100644
index 0000000..e487007
--- /dev/null
+++ b/debian/patches/system-libjpeg.diff
@@ -0,0 +1,361 @@
+# DP: S8043805: Allow using a system-installed libjpeg
+# DP: http://hg.openjdk.java.net/jdk9/client/rev/bfd9a3e1aeb5
+# DP: http://hg.openjdk.java.net/jdk9/client/jdk/rev/320743f0b4fc
+
+--- a/common/autoconf/generated-configure.sh
++++ b/common/autoconf/generated-configure.sh
+@@ -1071,6 +1071,7 @@ enable_freetype_bundling
+ with_alsa
+ with_alsa_include
+ with_alsa_lib
++with_libjpeg
+ with_giflib
+ with_zlib
+ with_stdc__lib
+@@ -1844,6 +1845,8 @@ Optional Packages:
+ headers under PATH/include)
+ --with-alsa-include specify directory for the alsa include files
+ --with-alsa-lib specify directory for the alsa library
++ --with-libjpeg use libjpeg from build system or OpenJDK source
++ (system, bundled) [bundled]
+ --with-giflib use giflib from build system or OpenJDK source
+ (system, bundled) [bundled]
+ --with-zlib use zlib from build system or OpenJDK source
+@@ -7987,6 +7990,11 @@ $as_echo "$with_jvm_variants" >&6; }
+ JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+ JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
+
++ if test "x$JVM_VARIANT_CLIENT" = xtrue; then
++ if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
++ as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5
++ fi
++ fi
+ if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+ if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+ as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5
+@@ -35239,10 +35247,43 @@ done
+ # Check for the jpeg library
+ #
+
+- USE_EXTERNAL_LIBJPEG=true
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
+-$as_echo_n "checking for main in -ljpeg... " >&6; }
+-if ${ac_cv_lib_jpeg_main+:} false; then :
++
++# Check whether --with-libjpeg was given.
++if test "${with_libjpeg+set}" = set; then :
++ withval=$with_libjpeg;
++fi
++
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for which libjpeg to use" >&5
++$as_echo_n "checking for which libjpeg to use... " >&6; }
++
++ # 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
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libjpeg}" >&5
++$as_echo "${with_libjpeg}" >&6; }
++
++ if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ elif test "x${with_libjpeg}" = "xsystem"; then
++ ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
++if test "x$ac_cv_header_jpeglib_h" = xyes; then :
++
++else
++ as_fn_error $? "--with-libjpeg=system specified, but jpeglib.h not found!" "$LINENO" 5
++fi
++
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5
++$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; }
++if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+@@ -35250,27 +35291,33 @@ LIBS="-ljpeg $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+-
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char jpeg_CreateDecompress ();
+ int
+ main ()
+ {
+-return main ();
++return jpeg_CreateDecompress ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ if ac_fn_cxx_try_link "$LINENO"; then :
+- ac_cv_lib_jpeg_main=yes
++ ac_cv_lib_jpeg_jpeg_CreateDecompress=yes
+ else
+- ac_cv_lib_jpeg_main=no
++ ac_cv_lib_jpeg_jpeg_CreateDecompress=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
+-$as_echo "$ac_cv_lib_jpeg_main" >&6; }
+-if test "x$ac_cv_lib_jpeg_main" = xyes; then :
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateDecompress" >&5
++$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; }
++if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_LIBJPEG 1
+ _ACEOF
+@@ -35278,13 +35325,16 @@ _ACEOF
+ LIBS="-ljpeg $LIBS"
+
+ else
+- USE_EXTERNAL_LIBJPEG=false
+- { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5
+-$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;}
+-
++ as_fn_error $? "--with-libjpeg=system specified, but no libjpeg found" "$LINENO" 5
+ fi
+
+
++ USE_EXTERNAL_LIBJPEG=true
++ else
++ as_fn_error $? "Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'" "$LINENO" 5
++ fi
++
++
+
+ ###############################################################################
+ #
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -595,11 +595,36 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
+ # 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 source (system, bundled) @<:@bundled@:>@])])
++
++ 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
++
++ AC_MSG_RESULT(${with_libjpeg})
++
++ if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ elif test "x${with_libjpeg}" = "xsystem"; then
++ AC_CHECK_HEADER(jpeglib.h, [],
++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
++ AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
++
++ USE_EXTERNAL_LIBJPEG=true
++ else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
++ fi
++
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+ ###############################################################################
+--- a/jdk/make/lib/Awt2dLibraries.gmk
++++ b/jdk/make/lib/Awt2dLibraries.gmk
+@@ -703,21 +703,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
+
+ ##########################################################################################
+
++BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++
+ ifdef OPENJDK
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
+ else
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/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)/make/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)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++ BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
+ endif
+
++
+ # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
+ # or 'vfork'": this warning indicates that some variable is placed to
+ # a register by optimized compiler and it's value might be lost on longjmp().
+@@ -729,37 +732,50 @@ endif
+ # $(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, \
++ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++ LIBJPEG_LIBS := -ljpeg
++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
++ imageIOJPEG.c \
++ jpegdecoder.c
++ BUILD_LIBJAVAJPEG_HEADERS :=
++else
++ LIBJPEG_LIBS :=
++ BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
++ BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR)
++endif
++
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
++ LIBRARY := javajpeg, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
++ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
++ $(BUILD_LIBJAVAJPEG_DIR), \
++ INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
+ LANG := C, \
+ OPTIMIZATION := HIGHEST, \
+ CFLAGS := $(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
+- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
+- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_HEADERS), \
++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
+ $(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), \
++ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+
+-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
+
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+
+ ##########################################################################################
+
+@@ -1199,6 +1215,13 @@ ifndef BUILD_HEADLESS_ONLY
+ GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
+ endif
+
++ ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++ LIBJPEG_LDFLAGS := -ljpeg
++ else
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++ endif
++
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+ else
+@@ -1259,11 +1282,13 @@ ifndef BUILD_HEADLESS_ONLY
+ EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
+ LANG := C, \
+ OPTIMIZATION := LOW, \
+- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
+ MAPFILE := $(JDK_TOPDIR)/make/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) $(LIBJPEG_LDFLAGS), \
+ LDFLAGS_SUFFIX_solaris := -lc, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@ public class JPEGImageReader extends Ima
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -177,7 +177,7 @@ public class JPEGImageWriter extends Ima
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+--- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@ public class JPEGImageDecoder extends Im
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
++++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+@@ -51,7 +51,7 @@
+
+ /* headers from the JPEG library */
+ #include <jpeglib.h>
+-#include "jerror.h"
++#include <jerror.h>
+
+ #undef MAX
+ #define MAX(a,b) ((a) > (b) ? (a) : (b))