changeset 990:961aec1bb31b

2008-07-26 Matthias Klose <doko@ubuntu.com> * patches/icedtea-arm-uname.patch: Rename to ... * patches/icedtea-uname.patch: Fix architecture string for mipsel. * patches/icedtea-zero.patch: Add support for alpha, m68k, mips{,el}. * patches/icedtea-alpha-fixes.patch: New, fixes for alpha-linux. * Makefile.am (ICEDTEA_PATCHES): Rename patch, add patch.
author doko@ubuntu.com
date Sat, 26 Jul 2008 21:20:29 +0200
parents 94e809ed9e5b
children 114ee2acf9c0
files ChangeLog Makefile.am patches/icedtea-alpha-fixes.patch patches/icedtea-arm-uname.patch patches/icedtea-uname.patch patches/icedtea-zero.patch
diffstat 6 files changed, 242 insertions(+), 153 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jul 24 18:13:42 2008 +0200
+++ b/ChangeLog	Sat Jul 26 21:20:29 2008 +0200
@@ -1,3 +1,11 @@
+2008-07-26  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/icedtea-arm-uname.patch: Rename to ...
+	* patches/icedtea-uname.patch: Fix architecture string for mipsel.
+	* patches/icedtea-zero.patch: Add support for alpha, m68k, mips{,el}.
+	* patches/icedtea-alpha-fixes.patch: New, fixes for alpha-linux.
+	* Makefile.am (ICEDTEA_PATCHES): Rename patch, add patch.
+
 2008-07-24  Matthias Klose  <doko@ubuntu.com>
 
 	* configure.ac: Fix bashisms.
--- a/Makefile.am	Thu Jul 24 18:13:42 2008 +0200
+++ b/Makefile.am	Sat Jul 26 21:20:29 2008 +0200
@@ -398,7 +398,7 @@
 	patches/icedtea-zero-build.patch \
 	patches/icedtea-print-lsb-release.patch \
 	patches/icedtea-jpegclasses.patch \
-	patches/icedtea-arm-uname.patch \
+	patches/icedtea-uname.patch \
 	patches/icedtea-ia64-fdlibm.patch \
 	patches/icedtea-LCMS-setTagData.patch \
 	patches/icedtea-color-createcontext.patch \
@@ -417,6 +417,7 @@
 	patches/icedtea-nomotif-6706121.patch \
 	patches/icedtea-nomotif.patch \
 	patches/icedtea-hotspot-gcc-pr36917.patch \
+	patches/icedtea-alpha-fixes.patch \
 	$(SHARK_PATCH) \
 	$(GCC_PATCH)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/icedtea-alpha-fixes.patch	Sat Jul 26 21:20:29 2008 +0200
@@ -0,0 +1,75 @@
+--- openjdk/jaxp/make/build.properties~	2008-07-10 22:05:59.000000000 +0200
++++ openjdk/jaxp/make/build.properties	2008-07-26 17:42:48.660773430 +0200
+@@ -41,6 +41,6 @@
+ 
+ # JVM memory size
+ javac.memoryInitialSize = 128m
+-javac.memoryMaximumSize = 256m
++javac.memoryMaximumSize = 512m
+ 
+ #------------------------------------------------------------
+--- openjdk/jaxws/make/build.properties~	2008-07-10 22:07:18.000000000 +0200
++++ openjdk/jaxws/make/build.properties	2008-07-26 17:42:54.970868617 +0200
+@@ -41,6 +41,6 @@
+ 
+ # JVM memory size
+ javac.memoryInitialSize = 128m
+-javac.memoryMaximumSize = 256m
++javac.memoryMaximumSize = 512m
+ 
+ #------------------------------------------------------------
+--- openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp.orig	2008-07-25 23:55:37.000000000 +0000
++++ openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp	2008-07-26 12:59:43.000000000 +0000
+@@ -2125,7 +2125,7 @@
+   // We do not distinguish between different types of errors for verification
+   // errors.  Let the verifier give a better message.
+   const char *msg = "Illegal class file encountered. Try running with -Xverify:all";
+-  error_work(msg, NULL);
++  report_error(msg, NULL);
+ }
+ 
+ //
+--- openjdk/corba/make/common/Defs-linux.gmk~	2008-07-26 16:12:24.868956765 +0200
++++ openjdk/corba/make/common/Defs-linux.gmk	2008-07-26 18:05:40.781471559 +0200
+@@ -176,7 +176,8 @@
+   CXXFLAGS_DBG	+= $(CC_LOWER_OPT)
+ endif
+ 
+-CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
++CPPFLAGS_COMMON = -D_$(ARCH)_ $(if $(filter $(ARCH),alpha),,-D$(ARCH)) \
++		  -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
+ 		  -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
+ 
+ ifeq ($(ARCH_DATA_MODEL), 64)
+--- openjdk/hotspot/agent/src/os/linux/Makefile~	2008-07-26 16:12:24.868956765 +0200
++++ openjdk/hotspot/agent/src/os/linux/Makefile	2008-07-26 18:07:06.052757857 +0200
+@@ -40,7 +40,7 @@
+ 
+ LIBS     = -lthread_db
+ 
+-CFLAGS   = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES)
++CFLAGS   = -c -fPIC -g -D_GNU_SOURCE -D_$(ARCH)_ $(if $(filter $(ARCH),alpha),,-D$(ARCH)) $(INCLUDES)
+ 
+ LIBSA = $(ARCH)/libsaproc.so
+ 
+@@ -65,7 +65,7 @@
+ 	$(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+ 
+ test.o: test.c
+-	$(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
++	$(GCC) -c -o test.o -g -D_GNU_SOURCE -D_$(ARCH)_ $(if $(filter $(ARCH),alpha),,-D$(ARCH)) $(INCLUDES) test.c
+ 
+ test: test.o
+ 	$(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS)
+--- openjdk/jdk/make/common/Defs-linux.gmk~	2008-07-26 16:12:24.868956765 +0200
++++ openjdk/jdk/make/common/Defs-linux.gmk	2008-07-26 18:04:30.210407010 +0200
+@@ -186,7 +186,8 @@
+   CXXFLAGS_DBG	+= $(CC_LOWER_OPT)
+ endif
+ 
+-CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
++CPPFLAGS_COMMON = -D_$(ARCH)_ $(if $(filter $(ARCH),alpha),,-D$(ARCH)) \
++		  -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
+ 		  -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
+ 
+ ifeq ($(ARCH_DATA_MODEL), 64)
--- a/patches/icedtea-arm-uname.patch	Thu Jul 24 18:13:42 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-diff -r 29e7597d75c4 openjdk/jdk/make/common/shared/Platform.gmk
---- openjdk/jdk/make/common/shared/Platform.gmk	Fri Mar 28 14:19:36 2008 +0000
-+++ openjdk/jdk/make/common/shared/Platform.gmk	Tue Apr 01 09:02:17 2008 +0100
-@@ -205,6 +205,9 @@ ifeq ($(SYSTEM_UNAME), Linux)
-                 sparc*) \
-                     echo sparc \
-                     ;; \
-+                arm*) \
-+                    echo arm \
-+                    ;; \
-                 *) \
-                     echo $(mach) \
-                     ;; \
-diff -r 29e7597d75c4 openjdk/corba/make/common/shared/Platform.gmk
---- openjdk/corba/make/common/shared/Platform.gmk	Fri Mar 28 14:19:36 2008 +0000
-+++ openjdk/corba/make/common/shared/Platform.gmk	Tue Apr 01 09:02:17 2008 +0100
-@@ -194,6 +194,9 @@ ifeq ($(SYSTEM_UNAME), Linux)
-                 sparc*) \
-                     echo sparc \
-                     ;; \
-+                arm*) \
-+                    echo arm \
-+                    ;; \
-                 *) \
-                     echo $(mach) \
-                     ;; \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/icedtea-uname.patch	Sat Jul 26 21:20:29 2008 +0200
@@ -0,0 +1,44 @@
+--- openjdk/jdk/make/common/shared/Platform.gmk.orig	2008-07-26 17:21:17.441295678 +0200
++++ openjdk/jdk/make/common/shared/Platform.gmk	2008-07-26 17:30:24.589549285 +0200
+@@ -191,6 +191,9 @@
+   OS_VERSION := $(shell uname -r)
+   # Arch and OS name/version
+   mach := $(shell uname -m)
++  ifneq (,$(filter $(mach),mips s390 s390x))
++    mach := $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach))
++  endif
+   archExpr = case "$(mach)" in \
+                 i[3-9]86) \
+                     echo i586 \
+@@ -204,6 +207,9 @@
+                 sparc*) \
+                     echo sparc \
+                     ;; \
++                arm*) \
++                    echo arm \
++                    ;; \
+                 *) \
+                     echo $(mach) \
+                     ;; \
+--- openjdk/corba/make/common/shared/Platform.gmk.orig	2008-07-26 17:21:17.441295678 +0200
++++ openjdk/corba/make/common/shared/Platform.gmk	2008-07-26 17:30:22.059511120 +0200
+@@ -181,6 +181,9 @@
+   OS_VERSION := $(shell uname -r)
+   # Arch and OS name/version
+   mach := $(shell uname -m)
++  ifneq (,$(filter $(mach),mips s390 s390x))
++    mach := $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach))
++  endif
+   archExpr = case "$(mach)" in \
+                 i[3-9]86) \
+                     echo i586 \
+@@ -194,6 +197,9 @@
+                 sparc*) \
+                     echo sparc \
+                     ;; \
++                arm*) \
++                    echo arm \
++                    ;; \
+                 *) \
+                     echo $(mach) \
+                     ;; \
--- a/patches/icedtea-zero.patch	Thu Jul 24 18:13:42 2008 +0200
+++ b/patches/icedtea-zero.patch	Sat Jul 26 21:20:29 2008 +0200
@@ -1,7 +1,112 @@
-diff -ru openjdk.orig/hotspot/src/share/vm/runtime/mutex.hpp openjdk/hotspot/src/share/vm/runtime/mutex.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/mutex.hpp	2007-11-08 11:34:54.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp	2007-11-08 11:36:15.000000000 +0000
-@@ -61,18 +61,10 @@ union SplitWord {   // full-word with se
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp.orig	2008-07-26 12:31:44.000000000 +0000
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2008-07-26 12:41:38.000000000 +0000
+@@ -159,7 +159,9 @@
+ #endif
+ 
+ // Cpu architecture string
+-#if   defined(IA64)
++#if   defined(ZERO)
++static char cpu_arch[] = ZERO_LIBARCH;
++#elif defined(IA64)
+ static char cpu_arch[] = "ia64";
+ #elif defined(IA32)
+ static char cpu_arch[] = "i386";
+@@ -1665,7 +1667,13 @@
+     {EM_SPARC32PLUS, EM_SPARC,   ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
+     {EM_SPARCV9,     EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
+     {EM_PPC,         EM_PPC,     ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
+-    {EM_PPC64,       EM_PPC64,   ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"}
++    {EM_PPC64,       EM_PPC64,   ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
++    {EM_ARM,         EM_ARM,     ELFCLASS32,   ELFDATA2LSB, (char*)"ARM"},
++    {EM_S390,        EM_S390,    ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"},
++    {EM_ALPHA,       EM_ALPHA,   ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
++    {EM_MIPS_RS3_LE, EM_MIPSEL_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
++    {EM_MIPS,        EM_MIPS,    ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
++    {EM_68K,         EM_68K,     ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}
+   };
+ 
+   #if  (defined IA32)
+@@ -1682,9 +1690,21 @@
+     static  Elf32_Half running_arch_code=EM_PPC64; 
+   #elif  (defined __powerpc__)  
+     static  Elf32_Half running_arch_code=EM_PPC; 
++  #elif  (defined ARM)
++    static  Elf32_Half running_arch_code=EM_ARM;
++  #elif  (defined S390)
++    static  Elf32_Half running_arch_code=EM_S390;
++  #elif  (defined ALPHA)
++    static  Elf32_Half running_arch_code=EM_ALPHA;
++  #elif  (defined MIPSEL)
++    static  Elf32_Half running_arch_code=EM_MIPS_RS3_EL;
++  #elif  (defined MIPS)
++    static  Elf32_Half running_arch_code=EM_MIPS;
++  #elif  (defined M68K)
++    static  Elf32_Half running_arch_code=EM_68K;
+   #else
+     #error Method os::dll_load requires that one of following is defined:\
+-         IA32, AMD64, IA64, __sparc, __powerpc__
++         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, M68K
+   #endif
+ 
+   // Identify compatability class for VM's architecture and library's architecture
+@@ -1716,10 +1736,12 @@
+     return NULL; 
+   }
+ 
++#ifndef S390
+   if (lib_arch.elf_class != arch_array[running_arch_index].elf_class) {
+     ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: architecture word width mismatch)");
+     return NULL; 
+   }
++#endif // !S390
+ 
+   if (lib_arch.compat_class != arch_array[running_arch_index].compat_class) {
+     if ( lib_arch.name!=NULL ) {
+@@ -2354,7 +2376,9 @@
+     // format has been changed), we'll use the largest page size supported by
+     // the processor.
+ 
++#ifndef ZERO
+     _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M);
++#endif
+ 
+     FILE *fp = fopen("/proc/meminfo", "r");
+     if (fp) {
+--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp.orig	2008-07-26 12:31:46.000000000 +0000
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	2008-07-26 12:35:42.000000000 +0000
+@@ -3030,9 +3030,9 @@
+   tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult);
+   tty->print_cr("native_lresult: " INTPTR_FORMAT, (uintptr_t) this->_native_lresult);
+ #endif
+-#ifdef IA64
++#if defined(IA64) && !defined(ZERO)
+   tty->print_cr("last_Java_fp: " INTPTR_FORMAT, (uintptr_t) this->_last_Java_fp);
+-#endif // IA64
++#endif // IA64 && !ZERO
+   tty->print_cr("self_link: " INTPTR_FORMAT, (uintptr_t) this->_self_link);
+ }
+ 
+--- openjdk/hotspot/src/share/vm/runtime/icache.cpp.orig	2008-07-26 12:31:42.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/icache.cpp	2008-07-26 12:35:42.000000000 +0000
+@@ -78,6 +78,7 @@
+ }
+ 
+ void AbstractICache::invalidate_range(address start, int nbytes) {
++#ifndef ZERO
+   static bool firstTime = true;
+   if (firstTime) {
+     guarantee(start == CAST_FROM_FN_PTR(address, _flush_icache_stub),
+@@ -97,6 +98,7 @@
+   }
+   call_flush_stub(start, round_to(nbytes, ICache::line_size) >>
+ 		         ICache::log2_line_size);
++#endif
+ }
+ 
+ // For init.cpp
+--- openjdk/hotspot/src/share/vm/runtime/mutex.hpp.orig	2008-07-26 12:31:43.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp	2008-07-26 12:35:42.000000000 +0000
+@@ -61,18 +61,10 @@
  } ;
  
  // Endian-ness ... index of least-significant byte in SplitWord.Bytes[]
@@ -21,52 +126,8 @@
  #endif
  
  class ParkEvent ;
-diff -ru openjdk/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2008-03-13 13:57:48.000000000 +0000
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2008-03-13 13:37:14.000000000 +0000
-@@ -159,7 +159,9 @@
- #endif
- 
- // Cpu architecture string
--#if   defined(IA64)
-+#if   defined(ZERO)
-+static char cpu_arch[] = ZERO_LIBARCH;
-+#elif defined(IA64)
- static char cpu_arch[] = "ia64";
- #elif defined(IA32)
- static char cpu_arch[] = "i386";
-@@ -2354,7 +2356,9 @@
-     // format has been changed), we'll use the largest page size supported by
-     // the processor.
- 
-+#ifndef ZERO
-     _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M);
-+#endif // ZERO
- 
-     FILE *fp = fopen("/proc/meminfo", "r");
-     if (fp) {
-diff -ru openjdk/hotspot/src/share/vm/runtime/icache.cpp openjdk/hotspot/src/share/vm/runtime/icache.cpp
---- openjdk/hotspot/src/share/vm/runtime/icache.cpp	2007-10-30 08:46:35.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/icache.cpp	2008-01-21 15:18:48.000000000 +0000
-@@ -78,6 +78,7 @@
- }
- 
- void AbstractICache::invalidate_range(address start, int nbytes) {
-+#ifndef ZERO
-   static bool firstTime = true;
-   if (firstTime) {
-     guarantee(start == CAST_FROM_FN_PTR(address, _flush_icache_stub),
-@@ -97,6 +98,7 @@
-   }
-   call_flush_stub(start, round_to(nbytes, ICache::line_size) >>
-                          ICache::log2_line_size);
-+#endif // ZERO
- }
- 
- // For init.cpp
-diff -ru openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp
---- openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp	2007-10-30 08:46:35.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp	2008-01-24 13:26:36.000000000 +0000
+--- openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp.orig	2008-07-26 12:31:43.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp	2008-07-26 12:35:42.000000000 +0000
 @@ -126,9 +126,17 @@
    // Fill block with bad_handle values
    void zap();
@@ -85,9 +146,8 @@
    // Free list computation
    void rebuild_free_list();
  
-diff -ru openjdk/hotspot/src/share/vm/utilities/vmError.cpp openjdk/hotspot/src/share/vm/utilities/vmError.cpp
---- openjdk/hotspot/src/share/vm/utilities/vmError.cpp	2008-01-24 13:17:27.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp	2008-01-24 13:21:20.000000000 +0000
+--- openjdk/hotspot/src/share/vm/utilities/vmError.cpp.orig	2008-07-26 12:31:44.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp	2008-07-26 12:35:42.000000000 +0000
 @@ -25,6 +25,11 @@
  # include "incls/_precompiled.incl"
  # include "incls/_vmError.cpp.incl"
@@ -133,76 +193,3 @@
       }
  
    STEP(140, "(printing VM operation)" )
-diff -r 789c601c8ba9 openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp	Tue Apr 01 14:49:28 2008 +0100
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	Wed Apr 02 09:51:37 2008 +0100
-@@ -1669,15 +1669,17 @@
-   #endif
- 
-   static const arch_t arch_array[]={
--    {EM_386,         EM_386,     ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"},
--    {EM_486,         EM_386,     ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"},
--    {EM_IA_64,       EM_IA_64,   ELFCLASS64, ELFDATA2LSB, (char*)"IA 64"},
--    {EM_X86_64,      EM_X86_64,  ELFCLASS64, ELFDATA2LSB, (char*)"AMD 64"},
--    {EM_SPARC,       EM_SPARC,   ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
--    {EM_SPARC32PLUS, EM_SPARC,   ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
--    {EM_SPARCV9,     EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
--    {EM_PPC,         EM_PPC,     ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
--    {EM_PPC64,       EM_PPC64,   ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"}
-+    {EM_386,         EM_386,     ELFCLASS32,   ELFDATA2LSB, (char*)"IA 32"},
-+    {EM_486,         EM_386,     ELFCLASS32,   ELFDATA2LSB, (char*)"IA 32"},
-+    {EM_IA_64,       EM_IA_64,   ELFCLASS64,   ELFDATA2LSB, (char*)"IA 64"},
-+    {EM_X86_64,      EM_X86_64,  ELFCLASS64,   ELFDATA2LSB, (char*)"AMD 64"},
-+    {EM_SPARC,       EM_SPARC,   ELFCLASS32,   ELFDATA2MSB, (char*)"Sparc 32"},
-+    {EM_SPARC32PLUS, EM_SPARC,   ELFCLASS32,   ELFDATA2MSB, (char*)"Sparc 32"},
-+    {EM_SPARCV9,     EM_SPARCV9, ELFCLASS64,   ELFDATA2MSB, (char*)"Sparc v9 64"},
-+    {EM_PPC,         EM_PPC,     ELFCLASS32,   ELFDATA2MSB, (char*)"Power PC 32"},
-+    {EM_PPC64,       EM_PPC64,   ELFCLASS64,   ELFDATA2MSB, (char*)"Power PC 64"},
-+    {EM_ARM,         EM_ARM,     ELFCLASS32,   ELFDATA2LSB, (char*)"ARM"},
-+    {EM_S390,        EM_S390,    ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"}
-   };
- 
-   #if  (defined IA32)
-@@ -1694,9 +1696,13 @@
-     static  Elf32_Half running_arch_code=EM_PPC64;
-   #elif  (defined __powerpc__)
-     static  Elf32_Half running_arch_code=EM_PPC;
-+  #elif  (defined ARM)
-+    static  Elf32_Half running_arch_code=EM_ARM;    
-+  #elif  (defined S390)
-+    static  Elf32_Half running_arch_code=EM_S390;
-   #else
-     #error Method os::dll_load requires that one of following is defined:\
--         IA32, AMD64, IA64, __sparc, __powerpc__
-+         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390
-   #endif
- 
-   // Identify compatability class for VM's architecture and library's architecture
-@@ -1728,10 +1734,12 @@
-     return NULL;
-   }
- 
-+#ifndef S390
-   if (lib_arch.elf_class != arch_array[running_arch_index].elf_class) {
-     ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: architecture word width mismatch)");
-     return NULL;
-   }
-+#endif // !S390
- 
-   if (lib_arch.compat_class != arch_array[running_arch_index].compat_class) {
-     if ( lib_arch.name!=NULL ) {
-diff -r 3e7fbd955f0b openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Jul 10 14:08:04 2008 -0400
-+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Jul 10 14:11:25 2008 -0400
-@@ -3025,9 +3025,9 @@
-   tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult);
-   tty->print_cr("native_lresult: " INTPTR_FORMAT, (uintptr_t) this->_native_lresult);
- #endif
--#ifdef IA64
-+#if defined(IA64) && !defined(ZERO)
-   tty->print_cr("last_Java_fp: " INTPTR_FORMAT, (uintptr_t) this->_last_Java_fp);
--#endif // IA64
-+#endif // IA64 && !ZERO
-   tty->print_cr("self_link: " INTPTR_FORMAT, (uintptr_t) this->_self_link);
- }
-