Static Compiled VM for future MorphOS or AROS?
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    I don't know what all has been going on for ARM beyond the BBRV post of the new successor to the Efika MX but there is some news on the software front: The le32 target for Clang (little-endian 32-bit) is a neutral target for any little-endian processor can install specially recompiled software as any other little-endian 32-bit processor. This would allow x86 and ARM processors to run software from a common binary code model.

    So far it has only been applied to the experimental PNaCl project that allows Chrome browser apps to be written in C++. The original Native Client (NaCl) software was processor specific but by using LLVM bitcode with some metadata, the Portable Native Client (PNaCl) shows much more hope of cross-platform bliss since it uses the le32 target in the compiler.

    Here's how it would work for MorphOS or AROS: Recompile the C sources of all the programs that you want to run on the new system using the le32 processor target and appropriate ABI for the respective OS. The static compiler that will assemble the bitcode file down to raw binary will be included with the ARM/x86 versions of MorphOS or AROS distro so that the installer script can use it. Since the bitcode is translated at install time, no JIT is needed although LLVM supports JIT compilation as well as static compilation. This all means that even closed-source code can be produced for target-neutral architectures and still produce code that is as optimal as what LLVM can compile.

    In case it hasn't been made known here, there is a Clang 2.9 build that can already cross-compile down to AROS ABI v0 binaries on x86. It only needs to be updated to Clang 3.0 and whatever ABI the destination OS needs. Since the le32 target wasn't introduced until 3.0, it doesn't work on the existing AROS cross-compiler but shouldn't be too hard to adapt to a custom MorphOS ELF target.
  • »19.02.12 - 20:48
    Profile