Summary: | Собрать fpc для неинтеловских архитектур | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | AEN <aen> |
Component: | fpc | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P3 | CC: | asy, bircoph, iv, mike, sbolshakov |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
AEN
2019-02-02 15:48:23 MSK
Насколько мне известно, это обычно портирование (для e2k смотрели). Разве если есть сишный бэкенд, но это не про fpc вроде бы как. > Насколько мне известно, это обычно портирование (для e2k смотрели).
Компилятор fpc написан на паскале, и (по крайней мере в транке) поддерживает кучу архитектур, включая riscv, но не включая, %e2k. Так что по крайней мере для mipsel и arm* это вопрос бутсрапа, должно быть несложно.
Для mips64el fpc нет ни у апстрима, ни у Дебиана, ни у китайских коллег в их loongnix'е, но mips64el можно в рассмотрение пока не включать.
Ещё у fpc есть backend на llvm, но я не знаю, насколько живой и какая версия llvm требуется.
Эта сборка важна для школ, где pascal пока -- один из возможных языков обучения и сдачи ЕГЭ тут http://git.altlinux.org/people/sbolshakov/packages/fpc.git несколько коммитов для arm, по крмере %build заканчивается успешно. Попробовал забутстрапить на mipsel, сначала с ppcmipsel из debian (апстрим публикует только сборки под big endian mips), потом с собранным им уже нашим бинарником. И так, и так падает сборка gdbint: [...] Start compiling package gdbint for target mipsel-linux. File libgdb.a found (/usr/lib/libgdb.a) GDB-lib found, compiling and running gdbver to obtain GDB-version Warning: Unable to determine the libgcc path. Compiling gdbint/src/gdbver.pp Linking gdbint/bin/mipsel-linux/gdbver The installer encountered the following error: External command "gdbint/bin/mipsel-linux/gdbver -o gdbint/src/gdbver.inc" failed with exit code 55296. Console output: Runtime error 216 at $77B146B0 $77B146B0 [...] Если позапускать руками и присмореться внимательно, понятно, что это segfault. Вот stacktrace: (gdb) bt #0 0x77e986b0 in __GI__IO_wsetb (f=0x77fb7dd4 <_IO_stdout_>, b=0x0, eb=0x0, a=0) at wgenops.c:96 #1 0x77ea6e30 in _IO_unbuffer_all () at genops.c:883 #2 _IO_cleanup () at genops.c:930 #3 0x77e5feac in __run_exit_handlers (status=255, listp=0x77fb73dc <__exit_funcs>, run_list_atexit=<optimized out>, run_dtors=<optimized out>) at exit.c:130 #4 0x77e5ff2c in __GI_exit (status=<optimized out>) at exit.c:139 #5 0x77e461a8 in __libc_start_main (main=0x402ee8, argc=1, argv=0x7fbf76b4, init=<optimized out>, fini=0x40dd64 <__libc_csu_fini>, rtld_fini=0x77fd1900 <_dl_fini>, stack_end=0x7fbf7690) at libc-start.c:342 #6 0x00402ee8 in ?? () Разбираюсь. (В ответ на комментарий №4) > тут > http://git.altlinux.org/people/sbolshakov/packages/fpc.git > несколько коммитов для arm, по крмере %build заканчивается успешно. А вот что потом: http://kriscode.blogspot.com/2017/11/lazarus-on-arm-ubuntu.html?m=1 (In reply to comment #5) > И так, и так падает сборка gdbint: [...] > Разбираюсь. В первом приближении разобрался, https://bugzilla.altlinux.org/36065 (В ответ на комментарий №4) > тут > http://git.altlinux.org/people/sbolshakov/packages/fpc.git > несколько коммитов для arm, по крмере %build заканчивается успешно. Добавил сверху пару (довольно тривиальных) коммитов для mipsel: http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel Пока тоже только %build проходит, и только с glibc-core с фиксом из #36065. Такой glibc, я думаю, будет в sisyphus_mipsel позже, после дополнительного тестирования. (In reply to comment #7) > > тут > > http://git.altlinux.org/people/sbolshakov/packages/fpc.git > > несколько коммитов для arm, по крмере %build заканчивается успешно. > > Добавил сверху пару (довольно тривиальных) коммитов для mipsel: > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel > Добавил в ту же ветку 2 коммита, делающие %install кросс-платформенным и исправляющие его при bootstrap'е. %install прошёл. Осталось разобраться с некоторыми %files. (In reply to comment #8) > (In reply to comment #7) > > > тут > > > http://git.altlinux.org/people/sbolshakov/packages/fpc.git > > > несколько коммитов для arm, по крмере %build заканчивается успешно. > > > > Добавил сверху пару (довольно тривиальных) коммитов для mipsel: > > > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel > > > > Добавил в ту же ветку 2 коммита, делающие %install кросс-платформенным и > исправляющие его при bootstrap'е. %install прошёл. Осталось разобраться с > некоторыми %files. %files победил, осталось пара лишних зависимостей и поправить конфиги. С поправленными руками конфигами hello world собрался и запустился. (In reply to comment #9) > > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel [...] Ещё раз обновил ветку; в таком виде оно собралось и нормально ставится в hasher. fpc вроде работает, ide запускается но падает при попытке запустить программу (даже без дебага; скомпилировать удаётся). (В ответ на комментарий №10) > (In reply to comment #9) > > > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel > [...] > > Ещё раз обновил ветку; в таком виде оно собралось и нормально ставится в > hasher. fpc вроде работает, ide запускается но падает при попытке запустить > программу (даже без дебага; скомпилировать удаётся). Уже что-то. В принципе, используют все же lazarus, которому, вероятно, ide от fpc не нужен. (In reply to comment #11) > (В ответ на комментарий №10) > > (In reply to comment #9) > > > > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel Опубликовал ещё один небольшой коммит, исправляющий сборку с выключенным bootstrap. Пока от меня всё. > > Ещё раз обновил ветку; в таком виде оно собралось и нормально ставится в > > hasher. fpc вроде работает, ide запускается но падает при попытке запустить > > программу (даже без дебага; скомпилировать удаётся). > Уже что-то. В принципе, используют все же lazarus, которому, вероятно, ide от > fpc не нужен. Сборка lazarus -- интересный тест, надо будет попробовать. (In reply to comment #12) > (In reply to comment #11) > > (В ответ на комментарий №10) > > > (In reply to comment #9) > > > > > > http://git.altlinux.org/people/iv/packages/?p=fpc.git;a=shortlog;h=refs/heads/mipsel > > Опубликовал ещё один небольшой коммит, исправляющий сборку с выключенным > bootstrap. Пока от меня всё. ещё один коммит поверх 67d3324188b19 у меня и тоже пока всё. (In reply to comment #12) > (In reply to comment #11) > > (В ответ на комментарий №10) > > Уже что-то. В принципе, используют все же lazarus, которому, вероятно, ide от > > fpc не нужен. > > Сборка lazarus -- интересный тест, надо будет попробовать. lazarus собирается, но не работает. При первом запуске выдаёт окошко с ошибкой: Пакет EditorMacroScript (сценарии PascalScript) обнаружил проблему и отключился. Пакет не прошёл самотестирование с сообщением: "test_int1(42)(init: 0) [Exp: 42 / Got: 0]" То же самое в английской локали: The package EditorMacroScript (pascalscript macros) has detected a problem and was deactivated. The package failed its selftest with the message: "test_int1(42)(init: 0) [Exp: 42 / Got: 0]" После этого (а при втором последующих запусках без этого) что-то сегфолтится и окошки висят, ни на что не реагируют. В общем, на mipsel fpc не очень рабочий вышел. Будем разбираться. FYI: https://packages.debian.org/search?suite=sid&arch=any&searchon=names&keywords=fpc https://packages.debian.org/search?suite=sid&searchon=names&keywords=lazarus Наконец, https://www.archlinux.org/packages/community/x86_64/lazarus/ Не, с последним промахнулся, извините. Тут вот https://forum.altlinux.org/index.php?topic=43539.msg346186#msg346186 пишут, что удалось запустить в ALT aarch64-бинарники fpc/lazarus из Ubuntu. |