[devel] Определение целевой архитектуры в mkimage и m-p

Ivan A. Melnikov iv на altlinux.org
Ср Окт 2 12:46:10 MSK 2019


On Wed, Oct 02, 2019 at 12:16:19PM +0300, Leonid Krivoshein wrote:
> 
> 
> 02.10.2019 9:43, Антон Мидюков пишет:
> > 02.10.2019 13:38, Ivan A. Melnikov пишет:
> > > On Wed, Oct 02, 2019 at 12:06:58AM +0300, Leonid Krivoshein wrote:
> > > > Коллеги, приветствую!
> > > > 
> > > > Простой вопрос: как в процессе сборки образа отличить целевую
> > > > архитектуру:
> > > > x86_64, aarm64 или powerpc? Могу я полагаться на $(uname -m) или
> > > > есть более
> > > > кошерная переменная? И что там конкретно должно быть, на всякий?
> > > Полагаться на $(uname -m) нельзя -- образы часто собираются через
> > > qemu-user на x86_64, особенно для arm* и mipsel.
> > > 
> > > Если Вы про mkimage-profiles, то там есть переменная $(ARCH), или
> > > $GLOBAL_ARCH во всяких image-scripts.d. Примеры использования, и,
> > > соответственно, что там может быть, несложно на git grep'ать.
> > В mkimage-profiles не проблема. Леонид хочет в mkimage сделать проверку
> > архитектур. Но там, вроде, проверка архитектур ни где не делается.
> > 
> 
> Скрипт отрабатывает в чруте собираемого образа. По большому счёту не так
> важно, будет он частью mkimage, частью m-p или попадёт туда как-то иначе.
> Потому что в конечном итоге его вызовет mkimage. И, как я подозреваю,
> вызовет он его, предварительно почистив окружение. Поэтому и спрашиваю...

В m-p проще (и правильнее наверное) использовать $GLOBAL_ARCH, она
создаётся и прокидывается куда нужно; вне m-p вполне можно воспользоваться
$(rpm --eval '%_host_cpu'), видел в паре мест, должно работать хорошо.

Ещё можно скрипт в пакет запаковать, правильный для каждой архитектуры,
а в профиле просто добавить пакет ;D

--
  wbr,
    iv m.


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