From 022c31eefaa0c11fbc069fd35cf5311a556c9ae5 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Fri, 24 Jan 2014 13:05:11 +0100
Subject: Bug 856 - Android: Support dual ABI (x86 i686 *and* ARMv7arm), i.e.
 pick 'best' ABI

- Use 'os.arch' as a prelim CPUType for MachineDescription

- Always attempt to load a binary and parse it's elf header
  - Linux: self-exe
  - Android: gluegen-rt library
  - Other: java lib

- Always use details (ABI) if ARM

- Android: Check CPU_TYPE and CPU_TYPE2

// FIXME / HACK:
//   We use sCPUType for MachineDescriptionRuntime.getStatic()
//   until we have determined the final CPU_TYPE, etc.
//   MachineDescriptionRuntime gets notified via MachineDescriptionRuntime.notifyPropsInitialized() below.
//
//   We could use Elf Ehdr's machine value to determine the bit-size
//   used for it's offset table!
//   However, 'os.arch' should be a good guess for this task.

Tested manually on
  - Linux x86, x86_64, armhf (raspi)
  - Android intel and arm
  - Windows x86_64
  - OSX x86_64
---
 .../common/os/android/GluegenVersionActivity.java  | 33 ++++++++++++----------
 1 file changed, 18 insertions(+), 15 deletions(-)

(limited to 'src/java/jogamp/common/os/android')

diff --git a/src/java/jogamp/common/os/android/GluegenVersionActivity.java b/src/java/jogamp/common/os/android/GluegenVersionActivity.java
index 581776b..5db3213 100644
--- a/src/java/jogamp/common/os/android/GluegenVersionActivity.java
+++ b/src/java/jogamp/common/os/android/GluegenVersionActivity.java
@@ -3,14 +3,14 @@
  *
  * Redistribution and use in source and binary forms, with or without modification, are
  * permitted provided that the following conditions are met:
- * 
+ *
  *    1. Redistributions of source code must retain the above copyright notice, this list of
  *       conditions and the following disclaimer.
- * 
+ *
  *    2. Redistributions in binary form must reproduce the above copyright notice, this list
  *       of conditions and the following disclaimer in the documentation and/or other materials
  *       provided with the distribution.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,7 +20,7 @@
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * The views and conclusions contained in the software and documentation are those of the
  * authors and should not be interpreted as representing official policies, either expressed
  * or implied, of JogAmp Community.
@@ -40,21 +40,24 @@ import android.util.Log;
 
 public class GluegenVersionActivity extends Activity {
    TextView tv = null;
-   
+
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.d(MD.TAG, "onCreate - S");
        super.onCreate(savedInstanceState);
        StaticContext.init(this.getApplicationContext());
+
+       System.setProperty("jogamp.debug", "all");
+
        tv = new TextView(this);
        final ScrollView scroller = new ScrollView(this);
        scroller.addView(tv);
        setContentView(scroller);
-       
-       tv.setText(VersionUtil.getPlatformInfo()+Platform.NEWLINE+GlueGenVersion.getInstance()+Platform.NEWLINE+Platform.NEWLINE);               
+
+       tv.setText(VersionUtil.getPlatformInfo()+Platform.NEWLINE+GlueGenVersion.getInstance()+Platform.NEWLINE+Platform.NEWLINE);
        Log.d(MD.TAG, "onCreate - X");
    }
-   
+
    @Override
    public void onStart() {
      Log.d(MD.TAG, "onStart - S");
@@ -64,14 +67,14 @@ public class GluegenVersionActivity extends Activity {
      }
      Log.d(MD.TAG, "onStart - X");
    }
-     
+
    @Override
    public void onRestart() {
      Log.d(MD.TAG, "onRestart - S");
      super.onRestart();
      if(null != tv) {
          tv.append("> restarted"+Platform.NEWLINE);
-     }       
+     }
      Log.d(MD.TAG, "onRestart - X");
    }
 
@@ -80,7 +83,7 @@ public class GluegenVersionActivity extends Activity {
      Log.d(MD.TAG, "onResume - S");
      if(null != tv) {
          tv.append("> resumed"+Platform.NEWLINE);
-     }       
+     }
      super.onResume();
      Log.d(MD.TAG, "onResume - X");
    }
@@ -90,7 +93,7 @@ public class GluegenVersionActivity extends Activity {
      Log.d(MD.TAG, "onPause - S");
      if(null != tv) {
          tv.append("> paused"+Platform.NEWLINE);
-     }              
+     }
      super.onPause();
      // Log.d(MD.TAG, "onPause - x");
      // finish(); // ensure destroy after pause() -> one shot activity
@@ -103,7 +106,7 @@ public class GluegenVersionActivity extends Activity {
      if(null != tv) {
          tv.append("> stopped"+Platform.NEWLINE);
      }
-     super.onStop();  
+     super.onStop();
      Log.d(MD.TAG, "onStop - X");
    }
 
@@ -115,7 +118,7 @@ public class GluegenVersionActivity extends Activity {
      }
      Log.d(MD.TAG, "onDestroy - x");
      StaticContext.clear();
-     super.onDestroy();  
+     super.onDestroy();
      Log.d(MD.TAG, "onDestroy - X");
-   }   
+   }
 }
-- 
cgit v1.2.3