Jogamp
Bug 681: Add Basic ELF Header + ARM EABI Section Parsing, allowing to distinguish...
authorSven Gothel <sgothel@jausoft.com>
Fri, 8 Feb 2013 04:12:39 +0000 (05:12 +0100)
committerSven Gothel <sgothel@jausoft.com>
Fri, 8 Feb 2013 04:12:39 +0000 (05:12 +0100)
commit2432dbef17c1dc4164f055cf434073bdabf8a6a9
tree348a46b246ead8bb508152a96847a62089b72d0c
parent1118cb7182611d0a77764a3c781a1148849b3022
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
22 files changed:
doc/elf/crosstest-java-linux-armv6hf-panda.log [new file with mode: 0644]
doc/elf/crosstest-java-linux-armv6hf-raspi.log [new file with mode: 0644]
doc/elf/crosstest-java-linux-armv6sf-panda.log [new file with mode: 0644]
make/build.xml
make/elf-eh-const.cfg [new file with mode: 0755]
make/elf-header.cfg [new file with mode: 0644]
make/elf-sh-const.cfg [new file with mode: 0755]
make/scripts/crosstest-java-linux-armv6-rel.sh [moved from make/scripts/crosstest-java-linux-armv7-rel.sh with 87% similarity]
make/scripts/crosstest-java-linux-armv6hf-rel.sh [new file with mode: 0644]
make/scripts/runtest.sh
make/stub_includes/os/elf_eh_const.h [new file with mode: 0644]
make/stub_includes/os/elf_header.h [new file with mode: 0644]
make/stub_includes/os/elf_sh_const.h [new file with mode: 0644]
src/java/jogamp/common/os/elf/Ehdr.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/ElfHeader.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/IOUtils.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/Section.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/SectionArmAttributes.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/SectionHeader.java [new file with mode: 0644]
src/java/jogamp/common/os/elf/Shdr.java [new file with mode: 0644]
src/junit/com/jogamp/common/nio/TestStructAccessorEndian.java
src/junit/com/jogamp/common/os/TestElfReader01.java [new file with mode: 0644]
http://JogAmp.org git info: FAQ, tutorial and man pages.