Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. Bug 681: Add Basic ELF Header + ARM EABI Section Parsing, allowing to (details)
  2. Script: ADB launcher: Use system package, instead of user package (pkg (details)
  3. Bug 681: Use ELF Header + ARM EABI Section Parsing in PlatformPropsImpl (details)
  4. TestElfReader01.testGNULinuxSelfExe: Restrict to LINUX (details)
Commit 2432dbef17c1dc4164f055cf434073bdabf8a6a9 by Sven Gothel
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
The file was addeddoc/elf/crosstest-java-linux-armv6sf-panda.log (diff)
The file was addedsrc/java/jogamp/common/os/elf/SectionHeader.java (diff)
The file was modified make/scripts/runtest.sh (diff)
The file was addedmake/elf-eh-const.cfg (diff)
The file was addedmake/stub_includes/os/elf_eh_const.h (diff)
The file was modified make/build.xml (diff)
The file was modified src/junit/com/jogamp/common/nio/TestStructAccessorEndian.java (diff)
The file was addedmake/elf-sh-const.cfg (diff)
The file was removedmake/scripts/crosstest-java-linux-armv7-rel.sh (diff)
The file was addedmake/stub_includes/os/elf_sh_const.h (diff)
The file was addedsrc/java/jogamp/common/os/elf/Section.java (diff)
The file was addedmake/elf-header.cfg (diff)
The file was addedsrc/java/jogamp/common/os/elf/ElfHeader.java (diff)
The file was addedmake/stub_includes/os/elf_header.h (diff)
The file was addedmake/scripts/crosstest-java-linux-armv6-rel.sh (diff)
The file was addeddoc/elf/crosstest-java-linux-armv6hf-raspi.log (diff)
The file was addedsrc/java/jogamp/common/os/elf/SectionArmAttributes.java (diff)
The file was addedsrc/junit/com/jogamp/common/os/TestElfReader01.java (diff)
The file was addedmake/scripts/crosstest-java-linux-armv6hf-rel.sh (diff)
The file was addeddoc/elf/crosstest-java-linux-armv6hf-panda.log (diff)
The file was addedsrc/java/jogamp/common/os/elf/IOUtils.java (diff)
The file was addedsrc/java/jogamp/common/os/elf/Ehdr.java (diff)
The file was addedsrc/java/jogamp/common/os/elf/Shdr.java (diff)
Commit 60409268e1d43be26b656b191d6684037f943123 by Sven Gothel
Script: ADB launcher: Use system package, instead of user package (pkg -> sys in URI)
The file was modified make/scripts/adb-launch-main.sh (diff)
Commit 371e1dbff6f5f255ab27ed0ab32368abb06eed82 by Sven Gothel
Bug 681: Use ELF Header + ARM EABI Section Parsing in PlatformPropsImpl to to distinguish ARM soft-float/hard-float (part-2)

+    /**
+     * Returns the {@link ABIType} of the current platform using given {@link CPUType cpuType}
+     * and {@link OSType osType} as a hint.
+     * <p>
+     * Note the following queries are performed:
+     * <ul>
+     *   <li> not {@link CPUFamily#ARM} -> {@link ABIType#GENERIC_ABI} </li>
+     *   <li> else
+     *   <ul>
+     *     <li> not {@link OSType#LINUX} -> {@link ABIType#EABI_GNU_ARMEL} </li>
+     *     <li> else
+     *     <ul>
+     *       <li> Elf ARM Tags -> {@link ABIType#EABI_GNU_ARMEL}, {@link ABIType#EABI_GNU_ARMHF} </li>
+     *     </ul></li>
+     *   </ul></li>
+     * </ul>
+     * </p>
+     * <p>
+     * Elf ARM Tags are read using {@link ElfHeader}, .. and {@link SectionArmAttributes#abiVFPArgsAcceptsVFPVariant(byte)}.
+     * </p>
+     *
+     * @param cpuType
+     * @param osType
+     * @return
+     */
+    private static final ABIType queryABITypeImpl(CPUType cpuType, OSType osType) {
The file was modified src/java/jogamp/common/os/elf/ElfHeader.java (diff)
The file was modified make/scripts/runtest.sh (diff)
The file was modified make/scripts/crosstest-java-linux-armv6hf-rel.sh (diff)
The file was modified make/scripts/crosstest-java-linux-armv6-rel.sh (diff)
The file was modified src/junit/com/jogamp/common/os/TestElfReader01.java (diff)
The file was modified src/java/jogamp/common/os/PlatformPropsImpl.java (diff)
Commit a47d19d59cc8772dcf1ef67083c4401d913ad8d2 by Sven Gothel
TestElfReader01.testGNULinuxSelfExe: Restrict to LINUX
The file was modified src/junit/com/jogamp/common/os/TestElfReader01.java (diff)