* [d-kernel] Q: разноплатформенные конфиги для kernel-image
@ 2005-04-16 15:13 Anton D. Kachalov
2005-04-16 16:19 ` Boldin Pavel
2005-04-16 17:07 ` Sergey Vlasov
0 siblings, 2 replies; 13+ messages in thread
From: Anton D. Kachalov @ 2005-04-16 15:13 UTC (permalink / raw)
To: devel-kernel
Приветствую!
Поднимаю ещё раз вопрос о том, как быть со сборкой ядра из одного spec'а
для разных архитектур?
Могу предложить вариант, основанный на макросах.
1. инклуд конфигов в спек:
%add_source_config i586
%add_source_config athlon
%add_source_config x86_64
что должно добавить:
SourceN: config-%kernel_base_version-%flavour.i586
Source(N+1): config-%kernel_base_version-%flavour.athlon
Source(N+2): config-%kernel_base_version-%flavour.x86_64
2. секция build, копирование конфига
вместо %__cp -vf %SOURCE1 arch/%base_arch/defconfig используем:
%copy_kernel_source_config
этот макрос должен сделать проверку на наличие конфига
config-%kernel_base_version-%flavour.%base_arch и если есть, скопировать в
arch/%base_arch/defconfig
Вопрос: что делать, если конфиг не найден? Т.е. если я решил собрать ядро
с --target=i686 вместо --target=i586? Делать symlink'и на конфиги и
паковать?
И мне немного неясен хак:
### It's a hack, but a useful hack:
cmp -s .config %SOURCE1 || %__cp -vf .config %SOURCE1
Какие ещё могут быть варианты?
Со всем остальным проблем нет. Собирается на ура.
Разумеется, перед релизом ядра, ответственные за архитектуры, обновляют
конфиги :)
Rgds,
Anton
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 15:13 [d-kernel] Q: разноплатформенные конфиги для kernel-image Anton D. Kachalov
@ 2005-04-16 16:19 ` Boldin Pavel
2005-04-16 16:29 ` Anton D. Kachalov
2005-04-16 17:07 ` Sergey Vlasov
1 sibling, 1 reply; 13+ messages in thread
From: Boldin Pavel @ 2005-04-16 16:19 UTC (permalink / raw)
To: ALT Linux kernel packages development
Anton D. Kachalov пишет:
> Приветствую!
>
> Поднимаю ещё раз вопрос о том, как быть со сборкой ядра из одного spec'а
> для разных архитектур?
> Могу предложить вариант, основанный на макросах.
>
> 1. инклуд конфигов в спек:
>
> %add_source_config i586
> %add_source_config athlon
> %add_source_config x86_64
>
> что должно добавить:
> SourceN: config-%kernel_base_version-%flavour.i586
> Source(N+1): config-%kernel_base_version-%flavour.athlon
> Source(N+2): config-%kernel_base_version-%flavour.x86_64
идея хорошая... раньше так и было :)
>
> 2. секция build, копирование конфига
>
> вместо %__cp -vf %SOURCE1 arch/%base_arch/defconfig используем:
> %copy_kernel_source_config
>
> этот макрос должен сделать проверку на наличие конфига
> config-%kernel_base_version-%flavour.%base_arch и если есть, скопировать в
> arch/%base_arch/defconfig
>
> Вопрос: что делать, если конфиг не найден? Т.е. если я решил собрать ядро
> с --target=i686 вместо --target=i586? Делать symlink'и на конфиги и
> паковать?
Зачем? можно просто откатится на архитектуру назад (от i686 к i586)
>
> И мне немного неясен хак:
> ### It's a hack, but a useful hack:
> cmp -s .config %SOURCE1 || %__cp -vf .config %SOURCE1
>
> Какие ещё могут быть варианты?
>
> Со всем остальным проблем нет. Собирается на ура.
> Разумеется, перед релизом ядра, ответственные за архитектуры, обновляют
> конфиги :)
"одна ошибка - случайный взлет и неизбежен удар" :)
будем ходить по минному полю ;(
>
> Rgds,
> Anton
> _______________________________________________
> devel-kernel mailing list
> devel-kernel@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/devel-kernel
>
>
--
Болдин Павел aka davinchi
ldavinchi@inbox.ru or davinchi@zu.org.ru
ZU - Zagovor Unixoidov. SSAU 303.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 16:19 ` Boldin Pavel
@ 2005-04-16 16:29 ` Anton D. Kachalov
2005-04-16 17:25 ` Boldin Pavel
0 siblings, 1 reply; 13+ messages in thread
From: Anton D. Kachalov @ 2005-04-16 16:29 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Sat, Apr 16, 2005 at 09:19:06PM +0500, Boldin Pavel wrote:
> идея хорошая... раньше так и было :)
где раньше так и было?
> Зачем? можно просто откатится на архитектуру назад (от i686 к i586)
Всмысле, откатиться?
> "одна ошибка - случайный взлет и неизбежен удар" :)
>
> будем ходить по минному полю ;(
это уже не так давно обсуждалось.
Rgds,
Anton
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 15:13 [d-kernel] Q: разноплатформенные конфиги для kernel-image Anton D. Kachalov
2005-04-16 16:19 ` Boldin Pavel
@ 2005-04-16 17:07 ` Sergey Vlasov
2005-04-16 17:34 ` Anton D. Kachalov
1 sibling, 1 reply; 13+ messages in thread
From: Sergey Vlasov @ 2005-04-16 17:07 UTC (permalink / raw)
To: devel-kernel
[-- Attachment #1: Type: text/plain, Size: 2592 bytes --]
On Sat, Apr 16, 2005 at 07:13:04PM +0400, Anton D. Kachalov wrote:
> Поднимаю ещё раз вопрос о том, как быть со сборкой ядра из одного spec'а
> для разных архитектур?
> Могу предложить вариант, основанный на макросах.
>
> 1. инклуд конфигов в спек:
>
> %add_source_config i586
> %add_source_config athlon
> %add_source_config x86_64
Тут смешаны в одну кучу архитектура и оптимизация. В принципе можно
собрать и 32-разрядное ядро с оптимизацией под Athlon-64 (CONFIG_MK8).
Да и у x86_64 сейчас есть CONFIG_MK8 (-march=k8) и CONFIG_MPSC
(-march=nocona).
> что должно добавить:
> SourceN: config-%kernel_base_version-%flavour.i586
> Source(N+1): config-%kernel_base_version-%flavour.athlon
> Source(N+2): config-%kernel_base_version-%flavour.x86_64
>
> 2. секция build, копирование конфига
>
> вместо %__cp -vf %SOURCE1 arch/%base_arch/defconfig используем:
> %copy_kernel_source_config
>
> этот макрос должен сделать проверку на наличие конфига
> config-%kernel_base_version-%flavour.%base_arch и если есть, скопировать в
> arch/%base_arch/defconfig
>
> Вопрос: что делать, если конфиг не найден? Т.е. если я решил собрать ядро
> с --target=i686 вместо --target=i586? Делать symlink'и на конфиги и
> паковать?
Ну в принципе можно попытаться и подкорректировать тип процессора в
конфиге. Надо строить какую-то таблицу (%arch) -> (%base_arch,
CONFIG_Mxxx). Правда, в разных версиях ядер набор доступных
CONFIG_Mxxx может быть разным, но можно писать туда несколько
вариантов.
#!/bin/sh
base_arch="$1"
cpu_types=$(sed -ne '/prompt[[:space:]]\+"Processor family"/,/endchoice/ s/^config[[:space:]]\+\([^[:space:]]\+\)[[:space:]]*$/\1/p' < arch/"$base_arch"/Kconfig)
filter=
for cpu in $cpu_types; do
if [ "$cpu" = "$2" ]; then
echo "CONFIG_$cpu=y"
else
echo "# CONFIG_$cpu is not set"
fi
filter="$filter
/CONFIG_$cpu[=[:space:]]/d"
done
sed -e "$filter"
(2.6.x only; ещё дописать подбор поддерживаемого ядром значения из
заданного набора).
> И мне немного неясен хак:
> ### It's a hack, but a useful hack:
> cmp -s .config %SOURCE1 || %__cp -vf .config %SOURCE1
Видимо, можно его убивать - сейчас в 2.6 это копирование выполняется
каждый раз, поскольку в .config положили timestamp.
Кстати, кто-нибудь помнит, почему конфиг кладётся в
arch/%base_arch/defconfig, а не в .config с последующим запуском make
oldconfig?
> Какие ещё могут быть варианты?
>
> Со всем остальным проблем нет. Собирается на ура.
> Разумеется, перед релизом ядра, ответственные за архитектуры, обновляют
> конфиги :)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 16:29 ` Anton D. Kachalov
@ 2005-04-16 17:25 ` Boldin Pavel
2005-04-16 17:36 ` Anton D. Kachalov
0 siblings, 1 reply; 13+ messages in thread
From: Boldin Pavel @ 2005-04-16 17:25 UTC (permalink / raw)
To: ALT Linux kernel packages development
Anton D. Kachalov пишет:
> On Sat, Apr 16, 2005 at 09:19:06PM +0500, Boldin Pavel wrote:
>
>>идея хорошая... раньше так и было :)
>
> где раньше так и было?
>
в alt2.2 кажется
>
>>Зачем? можно просто откатится на архитектуру назад (от i686 к i586)
>
> Всмысле, откатиться?
>
взять версию с немного медленной оптимизацией...
хотя с base_arch еще будет проблема...
>
>>"одна ошибка - случайный взлет и неизбежен удар" :)
>>
>>будем ходить по минному полю ;(
>
> это уже не так давно обсуждалось.
будем таки ходить по минному полю :(
--
Болдин Павел aka davinchi
ldavinchi@inbox.ru or davinchi@zu.org.ru
ZU - Zagovor Unixoidov. SSAU 303.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 17:07 ` Sergey Vlasov
@ 2005-04-16 17:34 ` Anton D. Kachalov
2005-04-16 18:36 ` Sergey Vlasov
0 siblings, 1 reply; 13+ messages in thread
From: Anton D. Kachalov @ 2005-04-16 17:34 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Sat, Apr 16, 2005 at 09:07:28PM +0400, Sergey Vlasov wrote:
> Тут смешаны в одну кучу архитектура и оптимизация. В принципе можно
> собрать и 32-разрядное ядро с оптимизацией под Athlon-64 (CONFIG_MK8).
> Да и у x86_64 сейчас есть CONFIG_MK8 (-march=k8) и CONFIG_MPSC
> (-march=nocona).
в случае с 32bit под athlon64 можно так и назвать: config.k8
> Ну в принципе можно попытаться и подкорректировать тип процессора в
> конфиге. Надо строить какую-то таблицу (%arch) -> (%base_arch,
> CONFIG_Mxxx). Правда, в разных версиях ядер набор доступных
> CONFIG_Mxxx может быть разным, но можно писать туда несколько
> вариантов.
<кусь>
чё-то я не понял - предлагается просто заменять одну переменную в конфиге?
> (2.6.x only; ещё дописать подбор поддерживаемого ядром значения из
> заданного набора).
???
Rgds,
Anton
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 17:25 ` Boldin Pavel
@ 2005-04-16 17:36 ` Anton D. Kachalov
2005-04-16 17:43 ` Boldin Pavel
0 siblings, 1 reply; 13+ messages in thread
From: Anton D. Kachalov @ 2005-04-16 17:36 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Sat, Apr 16, 2005 at 10:25:15PM +0500, Boldin Pavel wrote:
> в alt2.2 кажется
Master 2.2?
> взять версию с немного медленной оптимизацией...
A как понимать какую брать? а вдруг для неё конфига нет?
> будем таки ходить по минному полю :(
Мне что-то подсказывает, что мы это проделываем чуть ли не каждый день. И
иногда подрываемся.
Rgds,
Anton
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 17:36 ` Anton D. Kachalov
@ 2005-04-16 17:43 ` Boldin Pavel
0 siblings, 0 replies; 13+ messages in thread
From: Boldin Pavel @ 2005-04-16 17:43 UTC (permalink / raw)
To: ALT Linux kernel packages development
Anton D. Kachalov пишет:
> On Sat, Apr 16, 2005 at 10:25:15PM +0500, Boldin Pavel wrote:
>
>>в alt2.2 кажется
>
> Master 2.2?
>
>
>>взять версию с немного медленной оптимизацией...
>
> A как понимать какую брать? а вдруг для неё конфига нет?
>
Составить систему зависимостей.
>
>>будем таки ходить по минному полю :(
>
> Мне что-то подсказывает, что мы это проделываем чуть ли не каждый день. И
> иногда подрываемся.
>
надеюсь этот камень не будет так часто падать на головы идущих следом за
Сизифом :)
--
Болдин Павел aka davinchi
ldavinchi@inbox.ru or davinchi@zu.org.ru
ZU - Zagovor Unixoidov. SSAU 303.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 17:34 ` Anton D. Kachalov
@ 2005-04-16 18:36 ` Sergey Vlasov
2005-04-16 18:56 ` Anton D. Kachalov
2005-04-16 19:14 ` Boldin Pavel
0 siblings, 2 replies; 13+ messages in thread
From: Sergey Vlasov @ 2005-04-16 18:36 UTC (permalink / raw)
To: ALT Linux kernel packages development
[-- Attachment #1: Type: text/plain, Size: 1483 bytes --]
On Sat, Apr 16, 2005 at 09:34:44PM +0400, Anton D. Kachalov wrote:
> On Sat, Apr 16, 2005 at 09:07:28PM +0400, Sergey Vlasov wrote:
> > Тут смешаны в одну кучу архитектура и оптимизация. В принципе можно
> > собрать и 32-разрядное ядро с оптимизацией под Athlon-64 (CONFIG_MK8).
> > Да и у x86_64 сейчас есть CONFIG_MK8 (-march=k8) и CONFIG_MPSC
> > (-march=nocona).
> в случае с 32bit под athlon64 можно так и назвать: config.k8
На самом деле можно просто договориться, что в это место мы пишем
%arch из набора, поддерживаемого rpm. Там ещё не наплодили вариантов
для x86_64, как для x86?
> > Ну в принципе можно попытаться и подкорректировать тип процессора в
> > конфиге. Надо строить какую-то таблицу (%arch) -> (%base_arch,
> > CONFIG_Mxxx). Правда, в разных версиях ядер набор доступных
> > CONFIG_Mxxx может быть разным, но можно писать туда несколько
> > вариантов.
>
> <кусь>
>
> чё-то я не понял - предлагается просто заменять одну переменную в конфиге?
Не совсем одну переменную, но по сути да. make oldconfig исправит
зависимости (там по выбору процессора определяется куча разных
параметров).
> > (2.6.x only; ещё дописать подбор поддерживаемого ядром значения из
> > заданного набора).
В разных версиях ядер набор поддерживаемых CONFIG_Mxxx разный - можно
написать список значений, чтобы старые ядра собирались с новым
kernel-build-tools (если этот список пойдёт туда, а не будет
дублироваться по всем kernel-image-*.spec).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 18:36 ` Sergey Vlasov
@ 2005-04-16 18:56 ` Anton D. Kachalov
2005-04-16 19:20 ` Sergey Vlasov
2005-04-16 19:14 ` Boldin Pavel
1 sibling, 1 reply; 13+ messages in thread
From: Anton D. Kachalov @ 2005-04-16 18:56 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Sat, Apr 16, 2005 at 10:36:20PM +0400, Sergey Vlasov wrote:
> На самом деле можно просто договориться, что в это место мы пишем
> %arch из набора, поддерживаемого rpm. Там ещё не наплодили вариантов
> для x86_64, как для x86?
вроде нет, разве что x86_64 - это считается generic, а есть ещё
оптимизация именно под amd64. И некоторые в rpm добавляют ещё amd64.
> Не совсем одну переменную, но по сути да. make oldconfig исправит
> зависимости (там по выбору процессора определяется куча разных
> параметров).
а вот и нифига. среди ia32 - возможно, но переход с одной архитектуры на
другую - нет. как минимум при перетаскивании конфига с ia32 на x86_64
нужно руками включить эмуляцию ia32 и ещё отключить пару модулей, которые
просто не собираются под x86_64 (у них в коде есть проверка на не ia32 и
ругань через #error. почему зависимость до сих пор не добавили в Kconfig - не
знаю). я имею ввиду RIO и ещё что-то из char'ов.
> В разных версиях ядер набор поддерживаемых CONFIG_Mxxx разный - можно
> написать список значений, чтобы старые ядра собирались с новым
> kernel-build-tools (если этот список пойдёт туда, а не будет
> дублироваться по всем kernel-image-*.spec).
всё равно я не очень понял, но точно ничего дублировать по спекам не нуна
:) на то и существуют kernel-build-tools.
Rgds,
Anton
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 18:36 ` Sergey Vlasov
2005-04-16 18:56 ` Anton D. Kachalov
@ 2005-04-16 19:14 ` Boldin Pavel
1 sibling, 0 replies; 13+ messages in thread
From: Boldin Pavel @ 2005-04-16 19:14 UTC (permalink / raw)
To: ALT Linux kernel packages development
Sergey Vlasov пишет:
> On Sat, Apr 16, 2005 at 09:34:44PM +0400, Anton D. Kachalov wrote:
>
>>On Sat, Apr 16, 2005 at 09:07:28PM +0400, Sergey Vlasov wrote:
>>
>
>
> В разных версиях ядер набор поддерживаемых CONFIG_Mxxx разный - можно
> написать список значений, чтобы старые ядра собирались с новым
> kernel-build-tools (если этот список пойдёт туда, а не будет
> дублироваться по всем kernel-image-*.spec).
>
там немножко выше уже подобное было...
это не даст большого выигрыша производительности %(
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> devel-kernel mailing list
> devel-kernel@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/devel-kernel
--
Болдин Павел aka davinchi
ldavinchi@inbox.ru or davinchi@zu.org.ru
ZU - Zagovor Unixoidov. SSAU 303.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 18:56 ` Anton D. Kachalov
@ 2005-04-16 19:20 ` Sergey Vlasov
2005-04-17 6:11 ` Boldin Pavel
0 siblings, 1 reply; 13+ messages in thread
From: Sergey Vlasov @ 2005-04-16 19:20 UTC (permalink / raw)
To: ALT Linux kernel packages development
[-- Attachment #1: Type: text/plain, Size: 928 bytes --]
On Sat, Apr 16, 2005 at 10:56:25PM +0400, Anton D. Kachalov wrote:
> On Sat, Apr 16, 2005 at 10:36:20PM +0400, Sergey Vlasov wrote:
> > Не совсем одну переменную, но по сути да. make oldconfig исправит
> > зависимости (там по выбору процессора определяется куча разных
> > параметров).
> а вот и нифига. среди ia32 - возможно, но переход с одной архитектуры на
> другую - нет. как минимум при перетаскивании конфига с ia32 на x86_64
> нужно руками включить эмуляцию ia32 и ещё отключить пару модулей, которые
> просто не собираются под x86_64 (у них в коде есть проверка на не ia32 и
> ругань через #error. почему зависимость до сих пор не добавили в Kconfig - не
> знаю). я имею ввиду RIO и ещё что-то из char'ов.
Это в пределах одной %base_arch - переключатель оптимизации. Для
x86_64 в любом случае придётся делать отдельную конфигурацию, но
сделать MPENTIUM4 или MK7 из M586 таким образом вполне возможно.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [d-kernel] Q: разноплатформенные конфиги для kernel-image
2005-04-16 19:20 ` Sergey Vlasov
@ 2005-04-17 6:11 ` Boldin Pavel
0 siblings, 0 replies; 13+ messages in thread
From: Boldin Pavel @ 2005-04-17 6:11 UTC (permalink / raw)
To: ALT Linux kernel packages development
Sergey Vlasov пишет:
> On Sat, Apr 16, 2005 at 10:56:25PM +0400, Anton D. Kachalov wrote:
>
>>On Sat, Apr 16, 2005 at 10:36:20PM +0400, Sergey Vlasov wrote:
>
>
> Это в пределах одной %base_arch - переключатель оптимизации. Для
> x86_64 в любом случае придётся делать отдельную конфигурацию, но
> сделать MPENTIUM4 или MK7 из M586 таким образом вполне возможно.
>
как я уже говорил сильного прироста не будет..
но сделать выше изложеное - довольно просто, а вот сделать так,чтобы не
таскать с собой 1000 + 1 конфиг для каждой сборки а составить свою
систему зависимостей будет ой как непросто...
хорошо что поддерживаемых архитектур только одна - две...
--
Болдин Павел aka davinchi
ldavinchi@inbox.ru or davinchi@zu.org.ru
ZU - Zagovor Unixoidov. SSAU 303.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2005-04-17 6:11 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-16 15:13 [d-kernel] Q: разноплатформенные конфиги для kernel-image Anton D. Kachalov
2005-04-16 16:19 ` Boldin Pavel
2005-04-16 16:29 ` Anton D. Kachalov
2005-04-16 17:25 ` Boldin Pavel
2005-04-16 17:36 ` Anton D. Kachalov
2005-04-16 17:43 ` Boldin Pavel
2005-04-16 17:07 ` Sergey Vlasov
2005-04-16 17:34 ` Anton D. Kachalov
2005-04-16 18:36 ` Sergey Vlasov
2005-04-16 18:56 ` Anton D. Kachalov
2005-04-16 19:20 ` Sergey Vlasov
2005-04-17 6:11 ` Boldin Pavel
2005-04-16 19:14 ` Boldin Pavel
ALT Linux kernel packages development
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
public-inbox-index devel-kernel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git