[d-kernel] Макросы поддерживаемых архитектур для сборки kernel-image
Anton D. Kachalov
mouse на altlinux.org
Чт Июл 14 18:16:38 MSD 2005
Вот изготовил пару макросов.
<кусь>
%_kernel_config_offset 1
%_kernel_arches %nil
%set_kernel_arches() %global _kernel_arches %* \
%( \
echo "ExclusiveArch: %*" \
n=%_kernel_config_offset \
for arch in %_kernel_arches; do \
echo "Source$n: config-%kernel_base_version-%flavour.$arch" \
n=$(($n+1)) \
done \
)
%get_kernel_config() %{expand:%%SOURCE%( \
n=%_kernel_config_offset \
for arch in %_kernel_arches; do \
if [ "$arch" = "%1" ]; then \
echo $n \
exit \
fi \
n=$((n+1)) \
done \
echo "__No_such_architecture__%{1}" \
)}
</кусь>
Пользоваться так. В самом начале спека вместо Source1: config-... и
ExclusiveArch: ... вставляем макрос: %set_kernel_arches i586 или
%set_kernel_arches i586 i686 athlon x86_64
При этом конфиги для каждой архитектуры должны именоваться как
config-%kernel_base_version-%flavour.архитектура
Введение более жёсткий правил на --target сделает более корректную
сборку ядер под определённый процессор. Т.е. если у нас нет config.i686,
то собрать ядрышко с --target=i686 не получится, что само по себе верно,
т.к. конфиг ядра создан для i586, а не i686.
Далее, в месте, где копируется конфиг на место дефолтного в сборочном
дереве, нужно написать что-то вроде такого:
%__cp -vf %{get_kernel_config %base_arch} .config
Замечания, предложения? Данные макросы, в первую очередь, созданы
необходимостью сборки из одного src.rpm ядер как и под i586, так и под
x86_64.
--
mouse
Подробная информация о списке рассылки devel-kernel