Подтвердить что ты не робот

Возможно ли скомпилировать библиотеки LLVM для android/ARM

Я очарован Чистым алгебраическим/функциональным языком. В интерпретаторе Pure используется компилятор LLVM JIT в качестве его бэкэнд.

Я хотел бы компилировать Чисто, чтобы он работал на Android (ARM). Pure имеет зависимость от LLVM JIT. Поэтому мне нужно скомпилировать источник LLVM для запуска Pure.

Возможно ли скомпилировать LLVM источник для устройств Android (ARM)? В Интернете действительно нет информации об этом. Возможно, мои условия поиска неверны. Поиск Android LLVM не вызывает много хороших ударов.

4b9b3361

Ответ 1

Теперь кажется возможным, теперь NDK поддерживает Clang, который использует LLVM. Поэтому, возможно, это может быть сделано для работы с любым языком LLVM. AOSP должен дать нам некоторое представление о том, как они добавили поддержку Clang. Смотрите последнюю версию Android NDK для подробнее о поддержке Clang.

Android NDK, редакция 8c (ноябрь 2012 г.)
Важные изменения:
Добавлен компилятор Clang 3.1 в NDK. Сборник компиляторов GNU 4.6 по-прежнему по умолчанию, поэтому вы должны явно включить параметр компилятора Clang следующим образом:
Для ndk-build экспортируйте NDK_TOOLCHAIN_VERSION = clang3.1 или добавьте эту переменную окружения в Application.mk.
Для автономных сборок добавьте -llvm-version = 3.1 для make-standalone-toolchain.sh и замените CC и CXX в вашем файле make/bin/clang и /bin/clang ++. Подробнее см. STANDALONE-TOOLCHAIN.html.
Примечание. Эта функция является экспериментальной. Пожалуйста, попробуйте и сообщите о любых проблемах.

Ответ 2

Хотя вы можете скомпилировать LLVM на ARM (это довольно тривиально - просто обычная система configure + make), вам все еще не повезло: JIT on ARM все еще работает, поэтому я не ожидал этого работающий на все, что нетривиально.

Ответ 3

Похоже, что Android NDK поможет в этом, так как одним из его способов использования на странице часто задаваемых вопросов является повторное использование кода C/С++.

Ответ 4

Я думаю, что мы увидели смешение LLVM + Android NDK (С++).

Я думаю о SmallTalk-подобной системе dymanic object (*), а использование LLVM очень интересно для ленивой динамической компиляции на устройствах Android.

Сначала попробуйте сделать что-то вроде крошечной системы Buildroot/OpenWrt Linux (или создайте собственную версию с помощью CLFS или моих скриптов: https://github.com/ponyatov/L/tree/clock) для устройства ARM, такого как Raspberry Pi (это мой случай для тестирования). Если у вас есть хорошие результаты по этому варианту, позже вы сможете перейти на Android-устройство. Я думаю, вам понадобится код С++/NDK для использования LLVM/Pure core vs Android и графического интерфейса. (**)

(*), но с моим синтаксисом на родном языке, lisp -подобные функциональные возможности для мутирования всех внутренних систем, интегрированной среды синтаксического анализатора/компилятора и, возможно, некоторые основы символической компьютерной алгебры

(**) - Android Pi жив?

Ответ 5

Насколько я знаю, вы еще не можете создавать LLVM для устройств ARM.