[Momonga-devel.ja:02850] Re: kernel の rpmbuild が通りました
- From: tab@xxxxxxxxxxxxxxxxx
- Date: Sat, 23 Oct 2004 22:41:06 +0900 (JST)
たぶちです.
From: Masanobu Sato <m.sato@xxxxxxxxxxxx>
Subject: [Momonga-devel.ja:02849] Re: kernel の rpmbuild が通りました
Date: Sat, 23 Oct 2004 11:28:59 +0900
Message-ID: <20041023022858.BE69D14C87@xxxxxxxxxxxxxxx>
> kernel-2.6.9-1mはbuildできましたが、kernel-2.6.9-2mでは
> buildsmpもpen4smpもbuildできません。
> 相変わらず、linux-2.6.9-dbus.patchでFailしてしまいます。
> -----------
> + echo 'Patch #530 (linux-2.6.9-dbus.patch):'
> Patch #530 (linux-2.6.9-dbus.patch):
> + patch -p1 -s
> 1 out of 4 hunks FAILED -- saving rejects to file drivers/md/md.c.rej
> error: Bad exit status from /var/tmp/rpm-tmp.79389 (%prep)
4mで直っていると思います.
> >パッチの内容を説明します。
> >
> >- add Patch91: linux-2.6.9-swsusp-smp.patch
> >
> >CONFIG_SMP が定義されている、かつ
> >CONFIG_SOFTWARE_SUSPEND2 が未定義のとき
>
> Patch91は、kernel.specによると、
> ------------
> %if %{buildup}
> # SWSUSP
> %patch90 -p1
> %patch91 -p1
> %endif # %%{buildup}
> ------------
> となっており、buildupの場合しか適用されないと思うの
> ですが、CONFIG_SMPが定義されていて、かつ、
> CONFIG_SOFTWARE_SUSPEND2が未定義ということがある
> のでしょうか?
ありません.
ただしちょっと問題があるため話が面倒です.
kernelのbuildの流れは以下のようになります.
1. ソースの展開+patch当て
2. up カーネルのbuild
3. smp カーネルのbuild
2と3の間に1が再度行われていない事が原因で,
defaultのupとsmpカーネルの両方を作る時は, smp kernelを作るときも
%if %{buildup} で囲まれたpatchが当たったソースが使われます.
smpカーネルだけを作るとき
つまり ~/rpm/specopt/kernel.specopt で
%{?!buildup: %global buildup 0}
%{?!buildsmp: %global buildsmp 1}
としている場合には, 上記1. で
%if %{buildup} で囲まれた部分のpatchが当たらないので思惑通りになります.
2.6.9-4mではいろいろ小細工をして smpカーネルだけで作れるように変更しました.
2.6.9-0.4.3mの時点で, defaultのupとsmp kernelを作って,
upのマシンにsmpカーネルをinstallしてbootさせて
swsusp2が起動していないことは確認していました.
---tab