# Попытки собрать 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
Andrew Lobanov(tavern,1) — vit01
2016-06-16 19:52:34


sbcl тот ещё жук, но лучше среди свободных реализаций ничего нет. А несвободные дорого и не в духе хакерства.

# 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
vit01(mira, 1) — vit01
2016-06-17 04:56:17


Пока что всё остановилось на этом: http://ii-net.tk/ii/files/JB2hrUA2cdO3sUtUJc3L.png

Небольшой свой прогресс более-менее подробно расписал вот здесь: http://ii-net.tk/ii/ii-point.php?q=/x/file/build-sbcl.txt

# 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
vit01(mira, 1) — vit01
2016-06-29 18:33:47


Кстати, в репозиториях Termux, оказывается, есть tinyscheme. Привет из GIMP! Только вот он ещё и не умеет ничего почти.

Ну а по сабжу см. ii://tmp.red.eyes

# 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

Читаю с интересом. На таверну проброшена с первого дня существования.

// Если кто хочет эту эху на станции13, отпишитесь. Прокину.

# 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
btimofeev(station13, 13) — Andrew Lobanov
2016-06-30 18:25:08


AL> // Если кто хочет эту эху на станции13, отпишитесь. Прокину.

Сделай пожалуйста. Интересно будет почитать.

# Re: Попытки собрать sbcl под Termux
Andrew Lobanov(tavern,1) — btimofeev
2016-06-30 19:02:18


btimofeev> Сделай пожалуйста. Интересно будет почитать.

Готово.

# Re: Попытки собрать sbcl под Termux
vit01(mira, 1) — vit01
2016-07-01 15:47:13


vit01> А вот это зря. Бинарная версия sbcl из дебиана заводится на самом деле очень легко. И даже работает. Могу написать инструкцию, если хочешь.

Сказано - сделано. Рабочий скрипт с комментариями лежит в новой "красноглазой" эхе. На этот раз даже без лишнего шага с дебиановским пакетом.

// полдня возился с написанием этого HowTo, но зато пригодится кому-нибудь