LINUX.ORG.RU

apt-get world из arm в armhf

 , ,


0

1

Привет! Как известно, в линуксе нежелательно собирать софт в самом последнем релизе дистрибутива, а желательно использовать для сборки не сильно старый.

Завёл Raspberry Pi. С целью собирать недостающий софт, приготовил билд-ферму командой debootstrap. Затем зашёл в неё с помощью chroot. Оказалось что на билд-ферме - архитектура arm, а на хосте (Debian Jessie) - armhf. В связи с чем у меня вопросы:

1). hf = hard float. Совместимы ли бинарники для архитектуры arm с системами на armhf? А от armel с armhf? Я запутался :-(

2). Если буду собирать под архитектуру arm, то что я потеряю? Производительность?

3). Допустим, я сделал sudo apt-get world, пересобрав все пакеты в системе. Что мне надо поменять для переключения с arm на armhf? -march или доп. параметры? Вот тут правильные? -march=armv6 -mfpu=vfp -mfloat-abi=hard

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 2)

. hf = hard float. Совместимы ли бинарники для архитектуры arm с системами на armhf? А от armel с armhf? Я запутался :-(

Да, но не обратно.

2). Если буду собирать под архитектуру arm, то что я потеряю? Производительность?

Да, но не везде. А там, где куча float'ов, игры/эмуляторы, к примеру.

EXL ★★★★★
()

Как известно, в линуксе нежелательно собирать софт в самом последнем релизе дистрибутива, а желательно использовать для сборки не сильно старый.

К эмбеду это не относится, так как работать будет на одной железке (ну или в худшем случае на небольшом количестве конфигураций)

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

Спасибо :-) Я просто помню мобильники 00-х годов, там было засилье Java. И мне стало понятно, что бинарники для двух ARM-ов могли быть несовместимы, а Java это сглаживала. И я подумал что сейчас так же

// И ещё я случайно глянул qemu -machine help и мне стало страшно.

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

// И ещё я случайно глянул qemu -machine help и мне стало страшно.

n800, sx1-v1, sx1 не работают, а болтаются там просто так.

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

А у меня qemu 2.6 выдаёт ещё:

raspi2               Raspberry Pi 2
а также
imx25-pdk            ARM i.MX25 PDK board (ARM926)
netduino2            Netduino 2 Machine
palmetto-bmc         OpenPOWER Palmetto BMC

EXL:

n800, sx1-v1, sx1 не работают, а болтаются там просто так.

И когда перестали? А как насчёт:

n810                 Nokia N810 tablet aka. RX-44 (OMAP2420)
?

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

И когда перестали?

Не уверен насчёт n810, но эмуляция Nokia N800 и Siemens SX1 точно не работала в новых версиях QEMU. А в старой версии там можно было просто запустить ядро и всё. Никакая графика не работала, Qtopia точно на Siemens SX1 не поднималась. Об эмуляции родных образов речи вообще нет.

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

Совместимы ли бинарники для архитектуры arm с системами на armhf? А от armel с armhf? Я запутался

Да, только динамический линкер и библиотеки нужно будет устанавливать. В Debian-е для этого есть multiarch.
BTW, что подразумеваешь под архитектурой arm в контексте ABI?
armel знаю, armhf тоже, а просто arm это что?

dvl36
()
Ответ на: комментарий от ZenitharChampion

но на oldstable не armhf и не armle, а просто arm.

Да, припоминаю, был до EABI какой-то другой ABI, но это было уже давно и практически не актуально.

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

:-) Да не важно, мне вон главное обратную совместимость соблюсти. Чтобы бинари не требовали непомерно нового Glibc и какого-нибудь freetype >= 2.6. У меня на этом фетиш

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

Исчерпывающая информация, спасибо! Значит, мир пересобирать не надо, но проги нужно собирать под armhf. И их зависимости, если я решу положить их в архив.

-march=armhf, или монструозная конструкция из шапки темы?

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

-march=armhf, или монструозная конструкция из шапки темы?

Это смотреть нужно в документации к компилятору. Я собирал всегда как:

-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os -O2

Но у меня совсем другое устройство было, не RPi, хотя вроде как «на том же» камне.

EXL ★★★★★
()

Совместимы ли бинарники для архитектуры arm с системами на armhf? А от armel с armhf? Я запутался :-(

armel бинарники должны работать на системе с armhf. А вот более древние могут и не завестись.

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