8080776: ARM 32 bit binaries do not run on 64 bit ARM v8 hardware

Wed, 08 Jul 2015 10:36:43 -0400

author
bpittore
date
Wed, 08 Jul 2015 10:36:43 -0400
changeset 8046
a7c52c776c30
parent 8045
4b6e79c930bf
child 8047
ad04e0ef0f85

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

mercurial