/hg/icedtea6: 3 new changesets

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Tue Oct 27 11:43:05 PDT 2009


changeset ec4d712ef133 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ec4d712ef133
author: Andrew John Hughes <ahughes at redhat.com>
date: Thu Oct 22 17:31:06 2009 +0100

	Update HotSpot build documentation.

	2009-10-22 Andrew John Hughes <ahughes at redhat.com>

	 * INSTALL: Update HotSpot build documentation.


changeset 7d2ae1d67c95 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7d2ae1d67c95
author: Andrew John Hughes <ahughes at redhat.com>
date: Mon Oct 26 23:26:33 2009 +0000

	Merge


changeset a13ca3f99b51 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a13ca3f99b51
author: Andrew John Hughes <ahughes at redhat.com>
date: Tue Oct 27 18:47:05 2009 +0000

	Support Zero with HotSpot 16.

	2009-10-27 Andrew John Hughes <ahughes at redhat.com>

	 * ports/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp:
	Empty class required by invokedynamic support.
		* Makefile.am: Copy files from ports rather than linking them,
	allowing them to be patched. Remove duplicate ports-ecj
	target. Apply patches/hotspot/$(HSBUILD)/zero.patch when
	building with an alternate HotSpot. This adds the following
	changeset from IcedTea7 to the copy of the Zero port in the
	openjdk directory:

	 2009-05-21 Andrew John Hughes <ahughes at redhat.com>

	 * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp:
	(delayed_value_impl(intptr_t,Register,int)): Add stub.
		* ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp:
	(delayed_value_impl(intptr_t,Register,int)): Declared.
		* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:
	Handle Interpreter::method_handle.
		* ports/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp:
	(delayed_value_impl(intptr_t,Register,int)): Add stub.
		* ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp:
	(generate_method_handle_entry()): Declared.
		* ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp:
	(generate_method_handle_entry()): Add stub.
		* ports/hotspot/src/cpu/zero/vm/jni_zero.h: Define jlong
	depending on whether _LP64 is defined, as with format
	specifier in globalDefinitions.
		* ports/hotspot/src/cpu/zero/vm/register_zero.hpp: Declare
	noreg.
		* ports/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp:
	Define HeapBaseMinAddress as 2G (copied from x86_64).


diffstat:

6 files changed, 239 insertions(+), 75 deletions(-)
ChangeLog                                            |   45 +++++++
INSTALL                                              |   42 +++----
Makefile.am                                          |   37 +-----
patches/hotspot/default/zero.patch                   |  107 ++++++++++++++++++
patches/icedtea-libraries.patch                      |   56 +++++----
ports/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp |   27 ++++

diffs (truncated from 588 to 500 lines):

diff -r ad96ca42aab3 -r a13ca3f99b51 ChangeLog
--- a/ChangeLog	Thu Oct 22 08:00:17 2009 +0200
+++ b/ChangeLog	Tue Oct 27 18:47:05 2009 +0000
@@ -1,3 +1,48 @@ 2009-10-22  Matthias Klose  <doko at ubuntu
+2009-10-27  Andrew John Hughes  <ahughes at redhat.com>
+
+	* ports/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp:
+	Empty class required by invokedynamic support.
+	* Makefile.am:
+	Copy files from ports rather than linking them,
+	allowing them to be patched.  Remove duplicate
+	ports-ecj target.  Apply
+	patches/hotspot/$(HSBUILD)/zero.patch when
+	building with an alternate HotSpot.  This adds
+	the following changeset from IcedTea7 to the
+	copy of the Zero port in the openjdk directory:
+
+	2009-05-21  Andrew John Hughes  <ahughes at redhat.com>
+
+	* ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp:
+	(delayed_value_impl(intptr_t,Register,int)): Add stub.
+	* ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp:
+	(delayed_value_impl(intptr_t,Register,int)): Declared.
+	* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:
+	Handle Interpreter::method_handle.
+	* ports/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp:
+	(delayed_value_impl(intptr_t,Register,int)): Add stub.
+	* ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp:
+	(generate_method_handle_entry()): Declared.
+	* ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp:
+	(generate_method_handle_entry()): Add stub.
+	* ports/hotspot/src/cpu/zero/vm/jni_zero.h:
+	Define jlong depending on whether _LP64 is defined,
+	as with format specifier in globalDefinitions.
+	* ports/hotspot/src/cpu/zero/vm/register_zero.hpp:
+	Declare noreg.
+	* ports/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp:
+	Define HeapBaseMinAddress as 2G (copied from x86_64).
+
+2009-10-22  Andrew John Hughes  <ahughes at redhat.com>
+
+	* INSTALL:
+	Update HotSpot build documentation.
+
+2009-10-26 Jon VanAlten <jon.vanalten at redhat.com>
+
+	* patches/icedtea-libraries.patch: Check for libjpeg.so.7.
+	* INSTALL: Indicate newer versions of libjpeg are supported.
+
 2009-10-22  Matthias Klose  <doko at ubuntu.com>
 
 	* gcjwebplugin.cc: Remove.
diff -r ad96ca42aab3 -r a13ca3f99b51 INSTALL
--- a/INSTALL	Thu Oct 22 08:00:17 2009 +0200
+++ b/INSTALL	Tue Oct 27 18:47:05 2009 +0000
@@ -27,7 +27,7 @@ libXinerama-devel
 libXinerama-devel
 giflib-devel
 libpng-devel
-libjpeg-devel = 6b
+libjpeg-devel >= 6b
 zlib-devel
 rhino (can be disabled using --without-rhino)
 
@@ -137,14 +137,13 @@ Support for different versions of HotSpo
 ----------------------------------------- 
 
 IcedTea allows the version of HotSpot provided with the upstream build
-drop to be replaced with another.  Support this is provided by the
+drop to be replaced with another.  Support for this is provided by the
 --with-hotspot-build option which causes IcedTea to probe the
 hotspot.map file for an entry with the given build name.  The
-hotspot.map file maps the name to a changeset from the repository
-http://hg.openjdk.java.net/hsx/hsx14/master/ which it downloads from
-http://hg.openjdk.java.net/hsx/hsx14/master/archive/${CHANGESET}.tar.gz.
-The resulting download is verified using the MD5 sum stored in
-hotspot.map.
+hotspot.map file maps the name to a changeset from a given repository
+URL.  During the build, it downloads HotSpot from
+${URL}/archive/${CHANGESET}.tar.gz and the resulting file is verified
+using the MD5 sum stored in hotspot.map.
 
 New build selections may be provided by providing further mappings in
 the hotspot.map file.  The name can be anything
@@ -152,22 +151,25 @@ e.g. 'shiny_new_hotspot'.  This is simpl
 --with-hotspot-build to the values in the file and to apply
 appropriate patches (see patches/hotspot, $HSBUILD is available in
 Makefile.am for obtaining the build name).  The special value
-'original' is used to denote the upstream HotSpot and does not appear
-in hotspot.map.  The changeset should map a valid changeset in the
-HotSpot Express master repository (URL shown above).  These can be
-obtained from a local checkout or using the web interface.  The
-simplest way to calculate the MD5 sum is to download the tarball and
-then run the 'md5sum' application on it.  The resulting value should
-be added to hotspot.map.
+'original' is used for patches/hotspot/original to denote those for
+the upstream HotSpot; this value does not appear in hotspot.map.  
+
+The changeset and URL should refer to a valid HotSpot tree when used
+as above.  The required values can be obtained from a local checkout
+or by using the web interface.  The simplest way to calculate the MD5
+sum is to download the tarball and then run the 'md5sum' application
+on it.  The resulting value should be added to hotspot.map.
 
 As with the OpenJDK build tarballs, the location of an alternate zip
 can be specified using --with-hotspot-src-zip.  This skips the
 download stage and just verifies that the zip's MD5 sum matches that
 of the requested build.
 
-At present, the build name 'default' is used in hotspot.map to provide
-the latest version of HotSpot 14 in place of the version of HotSpot 11
-provided by upstream.  Thus, --with-hotspot-build is enabled by
-default, and either --without-hotspot-build or
---with-hotspot-build=original is required to revert to the upstream
-HotSpot.
+At present, two versions of HotSpot are officially supported.  These
+are HotSpot 14 ('original') which is provided by the upstream OpenJDK
+tarball, and 'default', which is used in hotspot.map to provide the
+latest version of HotSpot 16.  Thus, either --with-hotspot-build
+without an argument or --with-hotspot-build=default provides the
+latest supported hs16, while no HotSpot build argument,
+--without-hotspot-build or --with-hotspot-build=original uses the
+upstream HotSpot.
diff -r ad96ca42aab3 -r a13ca3f99b51 Makefile.am
--- a/Makefile.am	Thu Oct 22 08:00:17 2009 +0200
+++ b/Makefile.am	Tue Oct 27 18:47:05 2009 +0000
@@ -516,13 +516,13 @@ endif
 endif
 
 
-# Link ports sources into tree
+# Copy ports sources into tree
 stamps/ports.stamp: stamps/replace-hotspot.stamp
 	for target in $(abs_top_srcdir)/ports/hotspot/build/*/makefiles/* \
 		      $(abs_top_srcdir)/ports/hotspot/src/*cpu/* \
 		      $(abs_top_srcdir)/ports/hotspot/src/share/vm/*; do \
 	  link=$$(dirname $$target | sed 's/^.*ports/openjdk/'|sed "s#hotspot/build#hotspot/$(HOTSPOT_MAKE_DIR)#"); \
-	  ln -sfv $$target $$link; \
+	  cp -rv $$target $$link; \
 	done
 	ln -sf $(abs_top_builddir)/platform_zero openjdk/hotspot/$(HOTSPOT_MAKE_DIR)/linux
 	if ! test "x$(ICEDTEA_CORE_BUILD)$(ICEDTEA_SHARK_BUILD)$(WITH_CACAO)" \
@@ -659,7 +659,8 @@ endif
 endif
 
 if WITH_ALT_HSBUILD
-ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/openjdk-6886353-ignore_deoptimizealot.patch
+ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/openjdk-6886353-ignore_deoptimizealot.patch \
+	patches/hotspot/$(HSBUILD)/zero.patch
 else
 ICEDTEA_PATCHES += patches/hotspot/original/icedtea-6778662-lib64.patch \
 	patches/hotspot/original/icedtea-6778657-f2i-overflow.patch \
@@ -843,7 +844,7 @@ clean-patch:
 		rm -f openjdk/jdk/src/share/classes/sun/applet/`basename $file` ; \
 	done ;
 
-stamps/patch-fsg.stamp: stamps/replace-hotspot.stamp
+stamps/patch-fsg.stamp: stamps/ports.stamp
 	mkdir -p stamps ; \
 	rm -f stamps/patch-fsg.stamp.tmp ; \
 	touch stamps/patch-fsg.stamp.tmp ; \
@@ -913,28 +914,6 @@ clean-extract-ecj:
 clean-extract-ecj:
 	rm -f stamps/extract-ecj.stamp
 	rm -rf openjdk-ecj
-
-# Link ports sources into tree
-stamps/ports-ecj.stamp: stamps/extract-ecj.stamp
-	for target in $(abs_top_srcdir)/ports/hotspot/build/*/makefiles/* \
-		      $(abs_top_srcdir)/ports/hotspot/src/*cpu/* \
-		      $(abs_top_srcdir)/ports/hotspot/src/share/vm/*; do \
-	  link=$$(dirname $$target | sed 's/^.*ports/openjdk-ecj/'|sed "s#hotspot/build#hotspot/$(HOTSPOT_MAKE_DIR)#"); \
-	  ln -sfv $$target $$link; \
-	done
-	ln -sf $(abs_top_builddir)/platform_zero openjdk-ecj/hotspot/$(HOTSPOT_MAKE_DIR)/linux
-	if ! test "x$(ICEDTEA_CORE_BUILD)$(ICEDTEA_SHARK_BUILD)$(WITH_CACAO)" \
-	  = "xno"; then \
-	  mkdir -p openjdk-ecj/jdk/src/solaris/bin/$(BUILD_ARCH_DIR); \
-	  ln -sf $(abs_top_builddir)/jvm.cfg \
-	    openjdk-ecj/jdk/src/solaris/bin/$(BUILD_ARCH_DIR)/jvm.cfg; \
-	fi
-	if ! test "x$(ICEDTEA_ZERO_BUILD)$(WITH_CACAO)" = "xno"; then \
-	  ln -sf $(abs_top_builddir)/ergo.c \
-	    openjdk-ecj/jdk/src/solaris/bin/ergo_$(BUILD_ARCH_DIR).c; \
-	fi
-	mkdir -p stamps
-	touch stamps/ports-ecj.stamp
 
 # Patch OpenJDK for plug replacements and ecj.
 ICEDTEA_ECJ_PATCHES = patches/ecj/icedtea-ant.patch \
@@ -1346,7 +1325,7 @@ stamps/native-ecj.stamp:
 
 stamps/icedtea-ecj.stamp: stamps/bootstrap-directory-symlink-ecj.stamp \
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
-	stamps/ports-ecj.stamp stamps/patch-ecj.stamp stamps/cacao.stamp \
+	stamps/patch-ecj.stamp stamps/cacao.stamp \
 	$(ZERO_ASM_BC_ASM_COND)
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV_ECJ) \
@@ -1371,7 +1350,7 @@ hotspot:
 
 hotspot-helper: stamps/bootstrap-directory-symlink-ecj.stamp \
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
-	stamps/ports-ecj.stamp stamps/patch-ecj.stamp
+	stamps/patch-ecj.stamp
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV_ECJ) \
 	  -C openjdk-ecj/ hotspot
@@ -2144,8 +2123,6 @@ hotspot-tools: stamps/hotspot-tools.stam
 
 hotspot-ports: stamps/ports.stamp
 
-hotspot-ports-ecj: stamps/ports-ecj.stamp
-
 clean: distclean-local
 
 jtreg: stamps/jtreg.stamp
diff -r ad96ca42aab3 -r a13ca3f99b51 patches/hotspot/default/zero.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/default/zero.patch	Tue Oct 27 18:47:05 2009 +0000
@@ -0,0 +1,107 @@
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.cpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.cpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -54,6 +54,12 @@
+   sync();
+ }
+ 
++RegisterOrConstant MacroAssembler::delayed_value_impl(intptr_t* delayed_value_addr,
++						      Register tmpl, int offset) 
++{
++  Unimplemented();
++}
++
+ void MacroAssembler::store_oop(jobject obj) {
+   code_section()->relocate(pc(), oop_Relocation::spec_for_immediate());
+   emit_address((address) obj);
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.hpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.hpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -47,7 +47,8 @@
+   void align(int modulus);
+   void bang_stack_with_offset(int offset);
+   bool needs_explicit_null_check(intptr_t offset);
+-
++  RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
++					Register tmp, int offset);
+  public:
+   void advance(int bytes);
+   void store_oop(jobject obj);
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -759,6 +759,10 @@
+     entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry();
+     break;
+ 
++  case Interpreter::method_handle:
++    entry_point = ((InterpreterGenerator*)this)->generate_method_handle_entry();
++    break;
++
+   case Interpreter::java_lang_math_sin:
+   case Interpreter::java_lang_math_cos:
+   case Interpreter::java_lang_math_tan:
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/frame_zero.cpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -166,7 +166,7 @@
+   return type;
+ }
+ 
+-int frame::frame_size() const {
++int frame::frame_size(RegisterMap* map) const {
+ #ifdef PRODUCT
+   ShouldNotCallThis();
+ #else
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -28,4 +28,7 @@
+ class InterpreterMacroAssembler : public MacroAssembler {
+  public:
+   InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
++  RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset) {
++    Unimplemented();
++  }
+ };
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -34,3 +34,4 @@
+   address generate_math_entry(AbstractInterpreter::MethodKind kind);
+   address generate_empty_entry();
+   address generate_accessor_entry();
++  address generate_method_handle_entry();
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreter_zero.cpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.cpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -43,6 +43,11 @@
+   return ShouldNotCallThisEntry();
+ }
+ 
++address InterpreterGenerator::generate_method_handle_entry()
++{
++  return ShouldNotCallThisEntry();
++}
++
+ int AbstractInterpreter::size_activation(methodOop method,
+                                          int tempcount,
+                                          int popframe_extra_args,
+diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/register_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/register_zero.hpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/register_zero.hpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -106,3 +106,5 @@
+   static const int max_gpr;
+   static const int max_fpr;
+ };
++
++CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1));
+diff -r 7d2ae1d67c95 ports/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	Mon Oct 26 23:26:33 2009 +0000
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	Tue Oct 27 15:06:00 2009 +0000
+@@ -41,3 +41,5 @@
+ define_pd_global(uintx, JVMInvokeMethodSlack,    8192);
+ 
+ define_pd_global(bool,  UseVectoredExceptions,   false);
++// Only used on 64 bit platforms
++define_pd_global(uintx, HeapBaseMinAddress,      2*G);
diff -r ad96ca42aab3 -r a13ca3f99b51 patches/icedtea-libraries.patch
--- a/patches/icedtea-libraries.patch	Thu Oct 22 08:00:17 2009 +0200
+++ b/patches/icedtea-libraries.patch	Tue Oct 27 18:47:05 2009 +0000
@@ -25045,14 +25045,17 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  }
  
  
-@@ -2317,6 +2377,142 @@
+@@ -2317,6 +2377,145 @@
  
  /********************** end of destination manager ************/
  
 +METHODDEF(void)
 +initIDs()
 +{
-+    void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL);
++    void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL);
++    if (handle == NULL) {
++       handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL);
++    }
 +    
 +    jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error");
 +    if (jpegstderror == NULL) {
@@ -25188,7 +25191,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  /********************** Writer JNI calls **********************/
  
  
-@@ -2328,6 +2524,8 @@
+@@ -2328,6 +2527,8 @@
       jclass qTableClass,
       jclass huffClass) {
  
@@ -25197,7 +25200,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
      ImageOutputStream_writeID = (*env)->GetMethodID(env,
                                                      IOSClass,
                                                      "write",
-@@ -2401,7 +2599,7 @@
+@@ -2401,7 +2602,7 @@
      }
  
      /* We set up the normal JPEG error routines, then override error_exit. */
@@ -25206,7 +25209,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
      jerr->pub.error_exit = sun_jpeg_error_exit;
      /* We need to setup our own print routines */
      jerr->pub.output_message = sun_jpeg_output_message;
-@@ -2418,7 +2616,7 @@
+@@ -2418,7 +2619,7 @@
      }
  
      /* Perform library initialization */
@@ -25215,7 +25218,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
      /* Now set up the destination  */
      dest = malloc(sizeof(struct jpeg_destination_mgr));
-@@ -2527,7 +2725,7 @@
+@@ -2527,7 +2728,7 @@
          return;
      }
  
@@ -25224,7 +25227,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
      data->streamBuf.suspendable = FALSE;
      if (qtables != NULL) {
-@@ -2542,7 +2740,7 @@
+@@ -2542,7 +2743,7 @@
                     DCHuffmanTables, ACHuffmanTables, TRUE);
      }
  
@@ -25233,7 +25236,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
      RELEASE_ARRAYS(env, data, NULL);
  }
  
-@@ -2698,9 +2896,9 @@
+@@ -2698,9 +2899,9 @@
      cinfo->input_components = numBands;
      cinfo->in_color_space = inCs;
  
@@ -25245,7 +25248,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
      cinfo->optimize_coding = optimize;
  
-@@ -2737,7 +2935,7 @@
+@@ -2737,7 +2938,7 @@
      (*env)->ReleaseIntArrayElements(env, QtableSelectors,
                                      qsels, JNI_ABORT);
  
@@ -25254,7 +25257,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
      qlen = setQTables(env, (j_common_ptr) cinfo, qtables, writeDQT);
  
-@@ -2762,7 +2960,7 @@
+@@ -2762,7 +2963,7 @@
  
      if (progressive) {
          if (numScans == 0) { // then use default scans
@@ -25263,7 +25266,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
          } else {
              cinfo->num_scans = numScans;
              // Copy the scanInfo to a local array
-@@ -2804,7 +3002,7 @@
+@@ -2804,7 +3005,7 @@
  #endif
  
      // start the compressor; tables must already be set
@@ -25272,7 +25275,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
      if (haveMetadata) {
          // Flush the buffer
-@@ -2868,7 +3066,7 @@
+@@ -2868,7 +3069,7 @@
              }
          }
          // write it out
@@ -25281,7 +25284,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
          targetLine += stepY;
      }
  
-@@ -2877,9 +3075,9 @@
+@@ -2877,9 +3078,9 @@
       * so use jpeg_abort instead of jpeg_finish_compress.
       */
      if (cinfo->next_scanline == cinfo->image_height) {
@@ -25339,11 +25342,14 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  /* Initialize the Java VM instance variable when the library is
     first loaded */
  JavaVM *jvm;
-@@ -462,6 +490,68 @@
+@@ -462,6 +493,71 @@
  Java_sun_awt_image_JPEGImageDecoder_initIDs(JNIEnv *env, jclass cls,
                                              jclass InputStreamClass)
  {
-+    void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL);
++    void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL);
++    if (handle == NULL) {
++       handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL);
++    }
 + 
 +    jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error");
 +    if (jpegstderror == NULL) {
@@ -25408,7 +25414,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
      sendHeaderInfoID = (*env)->GetMethodID(env, cls, "sendHeaderInfo",
                                             "(IIZZZ)Z");
      sendPixelsByteID = (*env)->GetMethodID(env, cls, "sendPixels", "([BI)Z");
-@@ -519,7 +609,7 @@
+@@ -519,7 +612,7 @@
    /* Step 1: allocate and initialize JPEG decompression object */
  
    /* We set up the normal JPEG error routines, then override error_exit. */
@@ -25417,7 +25423,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
    jerr.pub.error_exit = sun_jpeg_error_exit;
  
    /* We need to setup our own print routines */
-@@ -530,7 +620,7 @@
+@@ -530,7 +623,7 @@
      /* If we get here, the JPEG code has signaled an error.
       * We need to clean up the JPEG object, close the input file, and return.
       */
@@ -25426,7 +25432,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
      RELEASE_ARRAYS(env, &jsrc);
      if (!(*env)->ExceptionOccurred(env)) {
          char buffer[JMSG_LENGTH_MAX];
-@@ -541,7 +631,7 @@
+@@ -541,7 +634,7 @@
      return;
    }
    /* Now we can initialize the JPEG decompression object. */
@@ -25435,7 +25441,7 @@ diff -ruN ..openjdk.old/openjdk/jdk/src/
  
    /* Step 2: specify data source (eg, a file) */
  
-@@ -555,17 +645,17 @@
+@@ -555,17 +648,17 @@



More information about the distro-pkg-dev mailing list