# Попытки собрать sbcl под Termux
vit01(mira, 1) — All
2016-06-05 18:02:33
...пока не увенчались успехом. sbcl - очень хитрая штука. Для его компиляции требуется уже рабочий интерпретатор Common Lisp на машине. Причём на android-arm его, конечно же, нет. Иначе зачем вообще было бы его собирать?
После запуска make.sh скрипт создаёт всю конфигурацию и валится на том месте, где надо запускать lisp.
Если начать компилировать с компьютера, то make.sh валится уже на этапе configure, потому что скрипт не может запустить тестовые бинарники, собранные для arm. Замкнутый круг какой-то.
Причём самое странное в том, что при каждом новом запуске билд-скрипта он делает полную чистку объектных файлов. Из-за этого нельзя перенести сгенерированный конфиг на другую машину. Можно было бы стереть строки с clean и rm, но пока что у меня не получилось найти нужные.
# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — vit01
2016-06-16 09:31:02
Вчера занимался прокуриванием этого дела. Сегодня уже 4 час пытаюсь разобраться в механизмах сборки этого "чуда".
Для кросс-компиляции у sbcl есть собственный набор скриптов (про который в документации было написано совсем мельком). Есть даже собственный набор define-ов с LISP_FEATURE_ANDROID.
Однако всё равно всё валится с ошибками. Когда я дохожу до этапа компиляции самого бинарника sbcl (ещё без core-файлов и всего такого), то линковщик валится с undefined reference to call_into_lisp. Эта функция определяется в ассемблерном файле специально для каждой архитектуры (в данном случае arm-assem.S), но почему-то не хочет экспортироваться.
При попытке собрать с помощью NDK на x86-хосте сборка прерывается на следующем этапе из-за того, что скрипт не запустить какой-то бинарник для подбора сишных заголовков.
Не знаю, о какой поддержке андроида там заявляли в релизе, но оно элементарно не собирается. Как пробовал погуглить, никто даже попыток таких не делал, скорее всего. Видимо, надо стучаться к разработчикам (самое неприятное - то, что на гитхабе там закрыты issues).
А ещё в составе сборочных зависимостей там есть Emacs (для меня это было неожиданностью) для какой-то утилиты etags.
# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — Andrew Lobanov
2016-06-17 02:34:35
Обновление: у меня получилось завести на сабже бинарник, стыренный из Debian ARM (ещё и clisp получилось). Но настоящие мужики^W линуксоиды компилируют из исходников, так что буду продолжать попытки. Пока что успешно решил проблему с call_into_lisp (оказалось, что это была ошибка в Termux'овском GCC).
Если смогу всё сделать, то это будет что-то вроде эксклюзива, потому что под ARM немного людей собирали лиспы, а конкретно под андроид поисковик молчит.
# Re: Попытки собрать sbcl под Termux
Andrew Lobanov(tavern,1) — vit01
2016-06-17 06:47:03
vit01> Пока что всё остановилось на этом: http://ii-net.tk/ii/files/JB2hrUA2cdO3sUtUJc3L.png
vit01> Небольшой свой прогресс более-менее подробно расписал вот здесь: http://ii-net.tk/ii/ii-point.php?q=/x/file/build-sbcl.txt
Создал бы под эти эксперименты эху. Мы ж тем и сильны, что эхи создаются с пол-тычка =)
Предвидя тонны подводных камней я просто смирился с отсутствием лиспа на телефоне. К тому же где-то на гитхабе (вот линк сохранить не догадался) набредал на репозиторий посвящённый сабжу, но там тоже ступор был.
Тем не менее, полезное дело делаешь и почитать интересно.
# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — Andrew Lobanov
2016-06-17 07:12:09
AL> Создал бы под эти эксперименты эху. Мы ж тем и сильны, что эхи создаются с пол-тычка =)
Готово. Прокидывай
ii://tmp.red.eyes
AL> Предвидя тонны подводных камней я просто смирился с отсутствием лиспа на телефоне.
А вот это зря. Бинарная версия sbcl из дебиана заводится на самом деле очень легко. И даже работает. Могу написать инструкцию, если хочешь. Я продолжил собирать из исходников просто ради того, чтобы приключений на свою задницу заполучить.
AL> // Антиэхотаг: как твои успехи в учёбе то? А то я тут недавно осознал, что учебный год же закончился недавно =)
Тебе это правда интересно? ;) Тогда с этими делами перейдём-ка в болталку (pipe или лучше даже mlp, т.к. там читать меньше будут).
# Re: Попытки собрать sbcl под Termux
Andrew Lobanov(tavern,1) — vit01
2016-06-30 07:39:29
vit01> Кстати, в репозиториях Termux, оказывается, есть tinyscheme. Привет из GIMP! Только вот он ещё и не умеет ничего почти.
Я схему и так то не очень люблю. Даже если мне в руки racket дать. И никакой SICP мне тут не поможет. PCL, кстати, разочаровывает. ANSI CL получше будет, но в свободном доступе только пиратские версии находил. Хотя, когда это меня останавливало =)
vit01> Ну а по сабжу см. ii://tmp.red.eyes
Читаю с интересом. На таверну проброшена с первого дня существования.
# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — Andrew Lobanov
2016-06-30 17:07:27
vit01> Ну а по сабжу см. ii://tmp.red.eyes
AL> Читаю с интересом. На таверну проброшена с первого дня существования.
Включил её в эхолист ноды под заголовком "Красноглазые приключения". :)
Все остальные, если что, тоже могут писать туда про всякие технические подробности, которые вроде бы и интересные, но захламлять ими основные эхи жалко.
Такое местечко нам иногда требуется. Да здравствуют дебаг-логи, длинные листинги кода и просто разговоры с самим собой!
В ближайшие дни переведу текстовку из /x/file с логом ошибок на английский и скину ребятам из Termux.
А ещё в планах набросать инструкцию для установки бинаря.
Так что не отписываться: скандалы, интриги и расследования ещё ждут своего часа :)
# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — vit01
2016-07-01 15:47:13
vit01> А вот это зря. Бинарная версия sbcl из дебиана заводится на самом деле очень легко. И даже работает. Могу написать инструкцию, если хочешь.
Сказано - сделано. Рабочий скрипт с комментариями лежит в новой "красноглазой" эхе. На этот раз даже без лишнего шага с дебиановским пакетом.