diff options
author | Sven Gothel <[email protected]> | 2013-02-08 05:12:39 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-02-08 05:12:39 +0100 |
commit | 2432dbef17c1dc4164f055cf434073bdabf8a6a9 (patch) | |
tree | 348a46b246ead8bb508152a96847a62089b72d0c /make/scripts | |
parent | 1118cb7182611d0a77764a3c781a1148849b3022 (diff) |
Bug 681: Add Basic ELF Header + ARM EABI Section Parsing, allowing to distinguish ARM soft-float/hard-float (part-1)
https://jogamp.org/bugzilla/show_bug.cgi?id=681
+ * References:
+ * <ul>
+ * <li>http://linux.die.net/man/5/elf</li>
+ * <li>http://www.sco.com/developers/gabi/latest/contents.html</li>
+ * <li>http://infocenter.arm.com/
+ * <ul>
+ * <li>ARM IHI 0044E, current through ABI release 2.09</li>
+ * <li>ARM IHI 0045D, current through ABI release 2.09</li>
+ * </ul></li>
Added self contained jogamp.common.os.elf package w/ entry point class ElfHeader
to read a RandomAccessFile and parse it as an ELF file.
ELF Parsing completness:
- Header: OK
- SectionHeader: OK
- Section Type SHT_ARM_ATTRIBUTES: OK
- Will be read into SectionArmAttributes
- Used to distinguisgh soft/hard VFP float
Tested manually on:
- Linux intel 32bit / 64bit, arm soft-float and hard-float
Diffstat (limited to 'make/scripts')
-rw-r--r-- | make/scripts/crosstest-java-linux-armv6-rel.sh (renamed from make/scripts/crosstest-java-linux-armv7-rel.sh) | 9 | ||||
-rw-r--r-- | make/scripts/crosstest-java-linux-armv6hf-rel.sh | 37 | ||||
-rwxr-xr-x | make/scripts/runtest.sh | 6 |
3 files changed, 46 insertions, 6 deletions
diff --git a/make/scripts/crosstest-java-linux-armv7-rel.sh b/make/scripts/crosstest-java-linux-armv6-rel.sh index 12ec855..deee01e 100644 --- a/make/scripts/crosstest-java-linux-armv7-rel.sh +++ b/make/scripts/crosstest-java-linux-armv6-rel.sh @@ -1,16 +1,17 @@ export HOST_UID=sven -export HOST_IP=192.168.0.52 +export HOST_IP=jogamp02 export HOST_RSYNC_ROOT=PROJECTS/JOGL export TARGET_UID=jogamp -export TARGET_IP=beagle01 +export TARGET_IP=panda01 export TARGET_ROOT=projects-cross export ANT_PATH=/usr/share/ant -export BUILD_DIR=../build-linux-armv7 +export BUILD_DIR=../build-linux-armv6 #TSTCLASS=com.jogamp.gluegen.test.junit.generation.Test1p2ProcAddressEmitter -TSTCLASS=com.jogamp.common.GlueGenVersion +#TSTCLASS=com.jogamp.common.GlueGenVersion +TSTCLASS=com.jogamp.common.os.TestElfReader01 LOGFILE=`basename $0 .sh`.log diff --git a/make/scripts/crosstest-java-linux-armv6hf-rel.sh b/make/scripts/crosstest-java-linux-armv6hf-rel.sh new file mode 100644 index 0000000..24dec99 --- /dev/null +++ b/make/scripts/crosstest-java-linux-armv6hf-rel.sh @@ -0,0 +1,37 @@ +export HOST_UID=sven +export HOST_IP=jogamp02 +export HOST_RSYNC_ROOT=PROJECTS/JOGL + +export TARGET_UID=jogamp +export TARGET_IP=panda02 +export TARGET_ROOT=projects-cross + +export ANT_PATH=/usr/share/ant +export BUILD_DIR=../build-linux-armv6hf + +#TSTCLASS=com.jogamp.gluegen.test.junit.generation.Test1p2ProcAddressEmitter +#TSTCLASS=com.jogamp.common.GlueGenVersion +TSTCLASS=com.jogamp.common.os.TestElfReader01 + +LOGFILE=`basename $0 .sh`.log + +RSYNC_EXCLUDES="--exclude 'build-x86*/' --exclude 'build-linux-x*/' --exclude 'build-android*/' --exclude 'build-win*/' --exclude 'build-mac*/' \ + --exclude 'classes/' --exclude 'src/' --exclude '.git/' --exclude 'gluegen-java-src.zip' \ + --delete-excluded" + +ssh $TARGET_UID@$TARGET_IP "\ +rsync -aAv --delete --delete-after $RSYNC_EXCLUDES $HOST_UID@$HOST_IP::$HOST_RSYNC_ROOT/gluegen $TARGET_ROOT ; \ +cd $TARGET_ROOT/gluegen/make ; +LD_LIBRARY_PATH=$BUILD_DIR/obj:$BUILD_DIR/test/build/natives \ +java \ + -Djava.library.path=$BUILD_DIR/obj:$BUILD_DIR/test/build/natives \ + -Djava.class.path=lib/junit.jar:$ANT_PATH/lib/ant.jar:$ANT_PATH/lib/ant-junit.jar:$BUILD_DIR/gluegen.jar:$BUILD_DIR/test/build/gluegen-test.jar \ + -Djogamp.debug.JNILibLoader=true \ + -Djogamp.debug.NativeLibrary=true \ + -Djogamp.debug.NativeLibrary.Lookup=true \ + -Djogamp.debug.ProcAddressHelper=true \ + $TSTCLASS \ + 2>&1 | tee $LOGFILE \ +" + +scp $TARGET_UID@$TARGET_IP:$TARGET_ROOT/gluegen/make/$LOGFILE . diff --git a/make/scripts/runtest.sh b/make/scripts/runtest.sh index 13f4aa0..b8af676 100755 --- a/make/scripts/runtest.sh +++ b/make/scripts/runtest.sh @@ -47,7 +47,7 @@ rm -f $LOG #D_ARGS="-Djogamp.debug.IOUtil -Djogamp.debug.JNILibLoader -Djogamp.debug.TempFileCache -Djogamp.debug.JarUtil -Djava.io.tmpdir=/run/tmp" #D_ARGS="-Djogamp.debug.IOUtil -Djogamp.debug.JNILibLoader -Djogamp.debug.TempFileCache -Djogamp.debug.JarUtil -Djogamp.debug.TempJarCache" #D_ARGS="-Djogamp.debug.JNILibLoader -Djogamp.gluegen.UseTempJarCache=false" -D_ARGS="-Djogamp.debug.JNILibLoader" +#D_ARGS="-Djogamp.debug.JNILibLoader" #D_ARGS="-Djogamp.debug.Lock" #D_ARGS="-Djogamp.debug.Lock -Djogamp.debug.Lock.TraceLock" #D_ARGS="-Djogamp.debug.Lock.TraceLock" @@ -64,6 +64,7 @@ function onetest() { export LD_LIBRARY_PATH DYLD_LIBRARY_PATH echo LD_LIBRARY_PATH $LD_LIBRARY_PATH echo CLASSPATH $CLASSPATH + which java echo java -cp $CLASSPATH $D_ARGS -Djava.library.path=$libspath $clazz java -cp $CLASSPATH $D_ARGS -Djava.library.path=$libspath $* echo @@ -89,7 +90,8 @@ function onetest() { #onetest com.jogamp.gluegen.PCPPTest 2>&1 | tee -a $LOG #onetest com.jogamp.common.nio.TestPointerBufferEndian 2>&1 | tee -a $LOG #onetest com.jogamp.common.nio.TestStructAccessorEndian 2>&1 | tee -a $LOG -onetest com.jogamp.gluegen.test.junit.generation.Test1p1JavaEmitter 2>&1 | tee -a $LOG +onetest com.jogamp.common.os.TestElfReader01 2>&1 | tee -a $LOG +#onetest com.jogamp.gluegen.test.junit.generation.Test1p1JavaEmitter 2>&1 | tee -a $LOG #onetest com.jogamp.gluegen.test.junit.generation.Test1p2ProcAddressEmitter 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.TestPlatform01 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.TestRunnableTask01 2>&1 | tee -a $LOG |