Портирование Slind: часть 0

22.04.2008 13:54 | 0 comments | 0 pingbacks |

Если вас не интересует embedded и кросс-компиляция — можете смело пропускать весь цикл :)

Я недавно собрал тулчейн для ARM EABI для Slind. По просьбам будущих портеров начинаю документировать раскопанные вещи и набитые в данном процессе шишки.

Архитектуры, CPU, названия

Debian architecture

Каждой комбинации архитектуры компьютера, ABI и операционной системы в Debian присваивается “debian architecture” — строка вида “<os>-<cpu/abi>”. Например, “linux-armel”, “linux-arm” или “kfreebsd-i386”. “linux-” разрешается опускать, и поэтому архитектуры для linux часто записывают в виде “hppa”, “arm” или “armel”.

Сочетание CPU/ABI — вещь интересная. Для ARM существует два несовместимых ABI: OABI и EABI, поэтому необходимо различать пакеты, собранные одним или другим способом. В Debian решили добавлять признак ABI к имени CPU: “arm” означает little-endian ARM CPU и OABI, “armel” — little-endian ARM CPU и EABI. Существовавший когда-то big-endian ARM CPU OABI порт назывался “armeb”, а какое название выберут для big-endian ARM CPU EABI, если такой появится — пока непонятно.

GNU triple

GNU autotools используют другой способ задания архитектуры: тройку <cpu>-<kernel>-<os>.

В терминологии GNU triple ABI относится к операционной системе. Таким образом, Debian architecture “linux-arm” (или просто “arm”) соответствует тройка “arm-linux-gnu”, “armel” — “arm-linux-gnueabi”, “armeb” — “armeb-linux-gnu”, “kfreebsd-i386” — “i486-kfreebsd-gnu” (GNU использует i486 для обозначения CPU, там, где Debian использует i386).

Comments

No comments for this post
Добавить комментарий

Comment form for «Портирование Slind: часть 0»

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image