LINUX.ORG.RU

debian и кросс-компайл пэкеджей.

 , ,


2

2

Навеяно кусочком из этого обсужнения, потому сразу призываю в тред Pinkbyte, а заодно за компанию и скастую exception13. Итак, столкнулся с кросс-компайлом пакетов для дебиана и сразу натолкнулся на то, что имеющиеся инструменты мейнтейнеров выглядят как адов набор костылей. Сейчас с горем пополам поднял sbuild, но он меня не устраивает тем, что

1. после сборки и упаковки пакета сносит пакеты, которые накатил как build-deps (а мне на фермочке периодически надо собирать несколько пакетиков, и их хочется оставить. Подозреваю, что это можно поправить - надо только доку раскурить) 2. по ходу считается нормальной практикой chroot'ится в armel rootfs и собирать там пакеты gcc, собранным для arm и запущенным под qemu. В общем, это выглядит как лютый ппц, потому вопрос состоит в следующем - можно ли как-то это дело делать человеческим кросс-компайлом через arm-someshit-eabi-gcc ? 3. И вообще тут дебомейнтейнеры есть? Поделитесь описанием своих сетапов ферм для сборки пакетиков.

Если нет, то у меня есть мысль собирать кросстулом статический тулчейн с --with-sysroot=/, класть его в чрут в /toolchain, и менять PATH так, чтобы gcc находилось первым делом не системный в чруте, а кроссовый. Хотя это не решает проблему того, что конфирур и прочие скрипты будут все равно в чруте работать под qemu и адово слоупочить.

Короче, есть ли готовый рецепт реализации подобного?

★★★★★

Последнее исправление: AiFiLTr0 (всего исправлений: 1)
Ответ на: комментарий от pekmop1024

Смысл? И переписывать ручками овер9к пакетов? OpenWRT обладает пожалуй лучшей билдсистемой из тех, что я видел. (фанаты OpenEmbedded - удавитесь!), но OpenWRT все же рассчитана на однопользовательскую систему, где и вебсервер от рута работает.
Для некоторых вещей все таки хочется что-то дебианоподобное, а лучше дебиан.

AiFiLTr0 ★★★★★
() автор топика
Последнее исправление: AiFiLTr0 (всего исправлений: 1)

я конпелял связкой scratchbox2 и qemu-arm, в принципе - норм, компилятор по дефолту берётся системный-кросс, в лютых случаях - нативный армовский под qemu (как ты описал, да)

Stil ★★★★★
()

и менять PATH так, чтобы gcc находилось первым делом не системный в чруте, а кроссовый.

этим и занимается sb2

Хотя это не решает проблему того, что конфирур и прочие скрипты будут все равно в чруте работать под qemu и адово слоупочить.

cmake и прочие qmake'и можно настроить, autotools - хз, я их тупо пускал под qemu и не парился

Короче, есть ли готовый рецепт реализации подобного?

я смотрел на maemo sdk, но он слегка устарел, мб есть смысл посмотреть на mer

по поводу билд-дэпс - в сб2 можно доставлять пакеты в рутфс и они никуда не дерутся, т.е. в рабочем руте у тебя есть libqt4, но нет libqt4-dev, тогда ты пишешь sb2 -eR apt-get install libqt4-dev и в сбор очном каталоге у тебя хидеры есть, а в рабочем - нет. удобно :)

Stil ★★★★★
()
Последнее исправление: Stil (всего исправлений: 1)
Ответ на: комментарий от Stil

Хм, sb2 выглядит вкусно, спасибо. Но я только не совсем понял одно: sb2-init я так понял фактически ставит в этот чрут базовую систему под армель, так?
Если нет, то как скрестить sb2 и дебиановский чрут? (беглая раскурка доки ответа не принесла, буду смотреть)

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

неа, не так

sb2-init нужен для настройки scratchbox'овского профиля под цель - путей до компиляторов, режимов емуляции, кучи внутренних переменных и сборки libtool'а. Выполняется из корня целевой rootfs.

Т.е. rootfs ты должен уже притащить свой, я просто забирал с target устройства, но наверное можно и дебутстрапнуть.

Да, я очень долго как-то боролся с багом (или сетом багов), что при ините sb2 libtool не собирался и все остальное тоже не работало (ругалось на ld-linux-чтото.so вроде), в этом случае курить стоит в сторону rootfs и начать с выпиливания из нее *-dev инструментов (ну и ту же libtool)

Stil ★★★★★
()

и всё ради того, чтобы не пользовать gentoo с crossdev.

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