freebsd aarch64 под soc orangepi
Модератор: Модераторы
freebsd aarch64 под soc orangepi
всем привет
пилю проект видеонаблюдения под orangepi
пока все крутится на perl, поэтому есть проблемы с производительностью и ресурсами
хочу переписать на бинарники, а т.к. делфист то си не очень люблю
теперь собственно сам вопрос
как скомпилить pascal код под freebsd aarch64? вроде trunk 3.3.1 уже должен уметь...
кто решал похожую задачу, поделитесь опытом. под бсд амд64 норм все собирается...
При попытке make CPU_TARGET=aarch64 говорит не найден ppca64 я так понимаю это компилятор под армы, но если я его пытаюсь скомпилить и у меня его нет не понятно что откуда брать и в какой последовательности
пилю проект видеонаблюдения под orangepi
пока все крутится на perl, поэтому есть проблемы с производительностью и ресурсами
хочу переписать на бинарники, а т.к. делфист то си не очень люблю
теперь собственно сам вопрос
как скомпилить pascal код под freebsd aarch64? вроде trunk 3.3.1 уже должен уметь...
кто решал похожую задачу, поделитесь опытом. под бсд амд64 норм все собирается...
При попытке make CPU_TARGET=aarch64 говорит не найден ppca64 я так понимаю это компилятор под армы, но если я его пытаюсь скомпилить и у меня его нет не понятно что откуда брать и в какой последовательности
Последний раз редактировалось bormental 07.07.2021 08:21:03, всего редактировалось 1 раз.
bormental писал(а):При попытке make CPU_TARGET=aarch64 говорит не найден ppca64...
Вроде бы, окромя компилятора, для FPC требуется ещё и соответствующее окружение, что и неудивительно.
Вы делаете кросскомпиляцию или компилите непосредственно на девайсе?
Vadim писал(а):bormental писал(а):При попытке make CPU_TARGET=aarch64 говорит не найден ppca64...
Вроде бы, окромя компилятора, для FPC требуется ещё и соответствующее окружение, что и неудивительно.
Вы делаете кросскомпиляцию или компилите непосредственно на девайсе?
я это понимаю, т.к. под orangepi компилил freebsd для arm64, и что нужен какой-то софт(binutils)
но информации именно как настроить это дело под freebsd aarch64 нигде не нашел.
хотелось бы рассмотреть варианты, по степени важности:
1 - кросс исходн freebsd amd64 цель freebsd aarch64
2 - кросс исходн win цель freebsd aarch64(fpcdelux такую комбинацию не дает выбрать)
3 - или непосредственно на устройстве исходн и цель freebsd aarch64
Если уже есть компилятор 3.2.2 и binutils в окружении.
Забираем исходники:
Делаем примерно так:
Добавлено спустя 2 минуты 51 секунду:
Забавно, что Lazarus предупреждает об отсутствии кросса в компиляторе (хотя он есть), но при этом успешно собирает
Забираем исходники:
Код: Выделить всё
svn checkout https://svn.freepascal.org/svn/fpc/trunk1 - кросс исходн freebsd amd64 цель freebsd aarch64
Делаем примерно так:
Код: Выделить всё
export FPMAKEOPT=""
export OPT="-O3 -XX -CX"
export CROSSOPT="-O3 -XX -CX"
export NOGDB=1
export OVERRIDEVERSIONCHECK=1
export CONC_FLAGS=" FPMAKEOPT=$FPMAKEOPT NOGDB=$NOGDB PREFIX=$INSTALL_PATH OVERRIDEVERSIONCHECK=$OVERRIDEVERSIONCHECK "
make clean all install $CONC_FLAGS OPT="$OPT" OS_TARGET=freebsd CPU_TARGET=x86_64
make clean crossall crossinstall $CONC_FLAGS CROSSOPT="$CROSSOPT" OS_TARGET=freebsd CPU_TARGET=aarch64
2 - кросс исходн win цель freebsd aarch64(fpcdelux такую комбинацию не дает выбрать)
Код: Выделить всё
export FPMAKEOPT=""
export OPT="-O3 -XX -CX"
export CROSSOPT="-O3 -XX -CX"
export NOGDB=1
export OVERRIDEVERSIONCHECK=1
export CONC_FLAGS=" FPMAKEOPT=$FPMAKEOPT NOGDB=$NOGDB PREFIX=$INSTALL_PATH OVERRIDEVERSIONCHECK=$OVERRIDEVERSIONCHECK "
make clean all install $CONC_FLAGS OPT="$OPT" OS_TARGET=win32 CPU_TARGET=x86_64
make clean crossall crossinstall $CONC_FLAGS CROSSOPT="$CROSSOPT" OS_TARGET=freebsd CPU_TARGET=aarch64
3 - или непосредственно на устройстве исходн и цель freebsd aarch64
Код: Выделить всё
export FPMAKEOPT=""
export OPT="-O3 -XX -CX"
export CROSSOPT="-O3 -XX -CX"
export NOGDB=1
export OVERRIDEVERSIONCHECK=1
export CONC_FLAGS=" FPMAKEOPT=$FPMAKEOPT NOGDB=$NOGDB PREFIX=$INSTALL_PATH OVERRIDEVERSIONCHECK=$OVERRIDEVERSIONCHECK "
make clean all install $CONC_FLAGS OPT="$OPT" OS_TARGET=freebsd CPU_TARGET=aarch64
Добавлено спустя 2 минуты 51 секунду:
Забавно, что Lazarus предупреждает об отсутствии кросса в компиляторе (хотя он есть), но при этом успешно собирает
wavebvg писал(а):Забираем исходники:
КОД: ВЫДЕЛИТЬ ВСЁ
svn checkout https://svn.freepascal.org/svn/fpc/trunk
не подскажете гитовый реп?
нашел этот https://github.com/graemeg/freepascal
bormental писал(а):не подскажете гитовый реп?
Ну если все настолько сложно, то можно скачать бережно упакованный архив ftp://ftp.freepascal.org/pub/fpc/snapshot/trunk/source/
wavebvg писал(а):bormental писал(а):не подскажете гитовый реп?
Ну если все настолько сложно, то можно скачать бережно упакованный архив ftp://ftp.freepascal.org/pub/fpc/snapshot/trunk/source/
да сложностей нет, просто всегда использовал git и ставить svn ...
за линк спасибо
кстати по binutils есть какие-либо особенности?
сейчас в системе на исходной freebsd amd64 стоит aarch64-binutils-2.33.1_4,1
fpc-3.2.0_1
Спасибо
bormental
Если не секрет, какой процессор?
Если не секрет, какой процессор?
Vadim писал(а):Если не секрет, какой процессор?
пока на freebsd 12 использую проц allwinner H5(платы PC2 и Prime)
сейчас вышла 13я с поддержкой H6 и RK3399, хочу пересобрать для Orange PI 3й и 4й
из особенностей, картинка есть только на arm64, на 32 битных платах фреймбуфер не пашет...
bormental писал(а):кстати по binutils есть какие-либо особенности
Нужно в видимом окружении сделать линки aarch64-linux-as и aarch64-linux-ld на соответствующие бинарники. Но об этом и так станет понятно в процессе сборки (компилятор начнёт брыкаться).
