]> git.pld-linux.org Git - packages/openjdk8.git/blob - system-libjpeg.patch
up to 1.8.0.412
[packages/openjdk8.git] / system-libjpeg.patch
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],
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    ###############################################################################
49 --- a/jdk/make/lib/Awt2dLibraries.gmk
50 +++ b/jdk/make/lib/Awt2dLibraries.gmk
51 @@ -702,21 +702,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
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().
82 @@ -728,37 +731,50 @@ endif
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), \
119 -    LDFLAGS := $(LDFLAGS_JDKLIB) \
120 +        $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
121 +        $(BUILD_LIBJAVAJPEG_HEADERS), \
122 +    MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
123 +    LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
124          $(call SET_SHARED_LIBRARY_ORIGIN), \
125      LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
126      LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
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  
147 @@ -1149,6 +1165,13 @@ ifndef BUILD_HEADLESS_ONLY
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
161 @@ -1205,11 +1228,13 @@ ifndef BUILD_HEADLESS_ONLY
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) \
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
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              });
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
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              });
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
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              });
210 --- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
211 +++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
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))
This page took 0.038026 seconds and 3 git commands to generate.