Is it possible to compile LLVM libraries to android/ARM

后端 未结 5 400
长发绾君心
长发绾君心 2021-02-02 11:50

I\'m fascinated by the Pure algebraic/functional language. The Pure interpreter uses the LLVM JIT compiler as its backend.

I would like to compile Pure so that it runs o

相关标签:
5条回答
  • 2021-02-02 12:12

    It now seems possible, the NDK now supports Clang which uses LLVM. So maybe it can be made to work with any LLVM language. AOSP should give us some insight on how they added Clang support. See the latest Android NDK for details on Clang support.

    Android NDK, Revision 8c (November 2012)
    Important changes:
    Added the Clang 3.1 compiler to the NDK. The GNU Compiler Collection (GCC) 4.6 is still the default, so you must explicitly enable the Clang compiler option as follows:
    For ndk-build, export NDK_TOOLCHAIN_VERSION=clang3.1 or add this environment variable setting to Application.mk.
    For standalone builds, add --llvm-version=3.1 to make-standalone-toolchain.sh and replace CC and CXX in your makefile with /bin/clang and /bin/clang++. See STANDALONE-TOOLCHAIN.html for details.
    Note: This feature is experimental. Please try it and report any issues.

    0 讨论(0)
  • 2021-02-02 12:12

    As far as I know you can't build LLVM for ARM devices just yet.

    0 讨论(0)
  • 2021-02-02 12:13

    While you can surely compile LLVM on ARM (it's pretty trivial - just ordinary configure + make system), you're still out of luck: JIT on ARM is still work-in-progress, so I'd not expect it working for everything non-trivial.

    0 讨论(0)
  • 2021-02-02 12:17

    It seems like the Android NDK would help in this, as one of its usages per its FAQ page is to reuse C/C++ code.

    0 讨论(0)
  • 2021-02-02 12:25

    I think we shuld see on mix of LLVM + Android NDK (C++).

    I'm thinking about SmallTalk-like dymanic object system (*), and LLVM usage is very interesting for lazy dynamic compilation on Android devices.

    First try you shuld build something like tiny Buildroot/OpenWrt Linux system (or build you own using CLFS or my scripts: https://github.com/ponyatov/L/tree/clock ) for ARM device like Raspberry Pi (it's my case for testing). If you got good results on this variant, later you can migrate to Android device itself. I think you'll need some C++/NDK glue code to adopt LLVM/Pure core vs Android runtime and GUI. (**)

    (*) but with my own language syntax, lisp-like functional abilities to mutate all system internals, parser/compiler integrated framework, and maybe some basics of symbolic computer algebra

    (**) is Android Pi alive ?

    0 讨论(0)
提交回复
热议问题