Можно ли скомпилировать библиотеки LLVM для Android / ARM - PullRequest
21 голосов
/ 12 июля 2011

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

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

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

Ответы [ 5 ]

14 голосов
/ 15 ноября 2012

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

Android NDK, редакция 8c (ноябрь 2012 г.)
Важные изменения:
Добавлен компилятор Clang 3.1 в NDK. GNU Compiler Collection (GCC) 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.
Примечание. Эта функция является экспериментальной. Пожалуйста, попробуйте и сообщите о любых проблемах.

13 голосов
/ 18 июля 2011

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

3 голосов
/ 20 июля 2011

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

1 голос
/ 20 декабря 2015

Я думаю, что мы увидим смесь LLVM + Android NDK (C ++).

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

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

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

(**) Жив ли Android Pi?

0 голосов
/ 12 июля 2011

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

...