Wed, 08 Jul 2015 10:36:43 -0400
8080776: ARM 32 bit binaries do not run on 64 bit ARM v8 hardware
Summary: Need to know arm cpu type earlier in the init sequence to avoid illegal instruction
Reviewed-by: dholmes, dlong, bdelsart
src/share/vm/runtime/thread.cpp | file | annotate | diff | comparison | revisions | |
src/share/vm/runtime/vm_version.hpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/runtime/thread.cpp Mon Jul 06 10:33:54 2015 -0700 1.2 +++ b/src/share/vm/runtime/thread.cpp Wed Jul 08 10:36:43 2015 -0400 1.3 @@ -3307,6 +3307,9 @@ 1.4 1.5 extern void JDK_Version_init(); 1.6 1.7 + // Preinitialize version info. 1.8 + VM_Version::early_initialize(); 1.9 + 1.10 // Check version 1.11 if (!is_supported_jni_version(args->version)) return JNI_EVERSION; 1.12
2.1 --- a/src/share/vm/runtime/vm_version.hpp Mon Jul 06 10:33:54 2015 -0700 2.2 +++ b/src/share/vm/runtime/vm_version.hpp Wed Jul 08 10:36:43 2015 -0400 2.3 @@ -56,6 +56,13 @@ 2.4 public: 2.5 static void initialize(); 2.6 2.7 + // This allows for early initialization of VM_Version information 2.8 + // that may be needed later in the initialization sequence but before 2.9 + // full VM_Version initialization is possible. It can not depend on any 2.10 + // other part of the VM being initialized when called. Platforms that 2.11 + // need to specialize this define VM_Version::early_initialize(). 2.12 + static void early_initialize() { } 2.13 + 2.14 // Name 2.15 static const char* vm_name(); 2.16 // Vendor