[devel] Alt Linux Sisyphus для ARM

Kirill A. Shutemov =?iso-8859-1?q?k=2Eshutemov_=CE=C1_gmail=2Ecom?=
Вс Июн 10 18:25:58 MSD 2007


Итак.

Лучше позже, чем никогда.

Я начал пересборку Sisyphus под ARM. Пересбока производиться с
использованием qemu-arm т.е. не кроссом.

Пересобирается всё для armv4 без thumb. Это позволит запускать полученое
на широком диапозоне железа без большой потери производительности. Полное
имя платформы arm-alt-linux-gnueabi. 

План по пересбоке следующий:
0. Допилить до вменяемого состояния qemu-arm
1. Собрать на коленке всё, что требуется для hsh --initroot
2. Собрать в hasher'е(модифицированном для поддержки qemu) всё, что нужно
для hsh --initroot. К концу этого этапа должен получиться замкнутый по
BuildRequires репозиторий.
3. Интеграция в сборочную систему Sisyphus'а.

Сейчас начат этап 2.

Почему qemu-arm? Потому, что мне этот подход видится наиболее
перспективным. Наш rpm и пакеты малоприспособлены для кросс-сборки.
Собирать нативно тоже не выйдет по понятным причинам. А этот подход с qemu
можно комбинировать с кросс-компилятором и другими программами(make, sh) 
нативными для хост системы, тем самым увеличивая скорость сборки.

Но есть "но". 
1. По словам разработчиков qemu, не стоит ожидать стабильной работы сильно
мультипоточных в qemu. Генератор кода в qemu не реентерабельный. :(
2. В qemu реализованы не все syscall'ы. Я по мере сил дописываю. Для
сборки того, что есть обычно хватает. А вот какой-нить make check может и
не отработать.

Теперь по пакетам. Пока "на чистовик" пересобрал rpm и toolchain.

Изменения в пакетах
rpm:
- %_gnu добавлен в %_target_platform. Из того что пересобирал вроде ничего
  не сломалось. Но глобальная пересборка очень желательна.
- %_gnu равен -gnueabi для gnueabi платформ. В частности arm.
- Не проверяется STACK запись в ELF файлах для ARM. Нету её там.
- Обновлена поддержка ARM в rpm:
  + добавлена CANONARCH arm и armb. Будут использоваться для сборки
  пакетов для дистрибутивов. Сейчас это armv4[bl].
  + обновлены %optflags для arm
  + %arm список всех arm процессоров

binutils пересобрался без изменений

gcc4.1: пересобран без java и objc. Несколько патчей добавлено. Подробней
в git.

glibc:
- добавлены glibc-ports
- выключен %def_disble check для arm
- textrel=relaxed из-за nscd

glibc-kernheader: поддержка arm.

Также был модифицирован hasher. Добавлена опция --with-qemu=. Указаный
qemu будет скопирован в chroot/.host/. Он используется через binfmt. Ещё
добавлен --ignorearch к одному из вызовов rpm.

Все эти изменения выложины в git. Смотрите бранч arm-port.

-- 
Regards,  Kirill A. Shutemov
 + Belarus, Minsk
 + Velesys LLC, http://www.velesys.com/
 + ALT Linux Team, http://www.altlinux.com/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070610/64645419/attachment-0001.bin>


Подробная информация о списке рассылки Devel