view patches/aarch64.patch @ 2993:6b16bd8e8e34

PR1402: Support glibc < 2.17 with AArch64 patch 2013-04-17 Andrew John Hughes <gnu.andrew@redhat.com> * patches/aarch64.patch: Fix to apply against older HotSpot. 2013-04-17 Andrew John Hughes <gnu.andrew@redhat.com> * NEWS: Updated. * patches/aarch64.patch: Define EM_AARCH64 for legacy systems with glibc earlier than 2.17.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Wed, 24 Apr 2013 08:26:15 +0100
parents 1c641a995625
children
line wrap: on
line source

diff -Nru openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp	2013-04-17 21:37:18.637869465 +0100
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2013-04-17 21:38:30.075026650 +0100
@@ -127,6 +127,11 @@
 #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF)
 #define SEC_IN_NANOSECS  1000000000LL
 
+
+#ifndef EM_AARCH64
+#define EM_AARCH64	183		/* ARM AARCH64 */
+#endif
+
 ////////////////////////////////////////////////////////////////////////////////
 // global variables
 julong os::Linux::_physical_memory = 0;
@@ -1860,7 +1865,8 @@
     {EM_MIPS,        EM_MIPS,    ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
     {EM_PARISC,      EM_PARISC,  ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
     {EM_68K,         EM_68K,     ELFCLASS32, ELFDATA2MSB, (char*)"M68k"},
-    {EM_SH,          EM_SH,      ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/
+    {EM_SH,          EM_SH,      ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/
+    {EM_AARCH64,     EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/
   };
 
   #if  (defined IA32)
@@ -1893,6 +1899,8 @@
     static  Elf32_Half running_arch_code=EM_68K;
   #elif  (defined SH)
     static  Elf32_Half running_arch_code=EM_SH;
+  #elif  (defined AARCH64)
+    static  Elf32_Half running_arch_code=EM_AARCH64;
   #else
     #error Method os::dll_load requires that one of following is defined:\
          IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH