LINUX.ORG.RU

gentoo: кросс-компилялия под armv7

 , ,


1

2

Добрый вечер! Решил я все таки закончить с ковырянием distcc под arm. Остается вариант кросс-компиляции. Разобравшись с тулчейном, я наткнулся на неприятный сюрприз. Некоторый софт проверяет работоспособность компилятора, и судя по всему пытается запустить скомпилированный кросс-коспилятором бинарник. Особо отличились разработчики Perl, захардкодив такую костыльную проверку работоспособности компилятора:

    I've tried to compile and run the following simple program:
     
    #include <stdio.h>
    int main() { printf("Ok\n"); return(0); }
     
    I used the command:
     
            armv7a-hardfloat-linux-gnueabi-gcc -o try -march=armv7-a -mfloat-abi=hard -mfpu=neon -ftree-vectorize -mvectorize-with-neon-quad -mcpu=cortex-a8 -mtune=cortex-a8$
             ./try
     
    and I got the following output:
     
    /bin/sh: ./try: cannot execute binary file
    The program compiled OK, but exited with status 126.
И что делать? Лезть в скрипты конфигурации и ебилды нет никакого желания.

Как в этом случае собирают stage3 для gentoo.org? Неужели нативно? Может, есть какие-нибудь оверлеи где уже все пропатчено? И самое главное, почему разработчики Perl'а до сих пор не выкинули этот костыль? Проблема то древняя, судя по гуглу.

от себя как разработчик генты могу сказать

а.) да, stage3 собирается нативно, железо есть.

b.) у кросс компиляции в генте большие проблемы в целом, такие как call CC/AR/RANLIB directly и тд. Но это уже вопрос к апстриму и к майнтейнерам пакетов.

c.) как основной майнтейнер всия perl в генте, добавлю что кросс-компиляции перла в генте не будет ох как долго. Никто не хочет в это окунаться, не я, ни другие члены perl team. Хотя в планах оно висит, но в долгосрочных.

Zlogene
()

не знаю, что там использует перл для конфигурации, но в случае autoconf кросскомпиляция там хорошо разруливается и эти моменты учтены

Harald ★★★★★
()
Ответ на: комментарий от Harald

ЕМНИП там билд-система настолько самопальная, что... @#$%^!

Zlogene
()
Ответ на: комментарий от Slackware_user

ну кросс-конпеляция работает, но много пакетов которые не собираются, из-за всяких разных мелких багов, или вообще не собираются по более критичным причинам.

Zlogene
()

я намедни практически закончил чрут в qemu для кубиборды. Это клево!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Zlogene

ну стейджи то вроде им собирают.

а остальное я лично на олвинере собирал и на одройде собирал - если охлаждение нормальное то 2 дня кде

Slackware_user ★★★★★
()
Ответ на: комментарий от Slackware_user

стейджи собирают на реальном железе. Сам видел по истории из баша. (У меня есть доступ на все архитектуры поддерживаемые гентой, от скуки в башхисторе покопался, там соответствующие команды).

Zlogene
()
Ответ на: комментарий от Slackware_user

crossdev - это система кросскомпиляции. Она взаимодействует с билд-системами конкретных пакетов. Если эти билдсистемы - не широкоизвестные(Autotools, Cmake и т.д.) а криворукое самописное говно - то результат соответствующий.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Slackware_user

я имею только к armv7 доступ, а это хромобук.

HOST: polyp ARCH: armv7a (Samsung Chromebook) CPU: 1.7GHz dual Exynos 5250 RAM: 2 GiB CONTACT: vapier@gentoo.org

по поводу armv6 и прочего это к одному из лидеров arm team, у него есть ВСЕ одноплатники которые могут быть.

Zlogene
()
Ответ на: комментарий от Slackware_user

странно что не одроид

Ничего странного: контактное лицо, ответственное за данную железку(vapier) - работает в гугле ;-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

тогда странно почему не второй хромбук :)

я к тому что на 2 ядрах медленнее компилить)

Slackware_user ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.