2.2.14 コンパイルしてみる

てっぺんの Makefilegrep CFLAGS_KERNEL してみたら何も出ず。仕方が無いので

$ make ARCH=i386 menuconfig

してみる事に。ちなみに i686 ではなく i386 でした。この頃のソレは今とちょっと違う模様。がしかし、menuconfig には Compile the kernel with debug info などという項目は無い。とりあえず CFLAGS に -g を代入して make してみようかな。
どうなる事やら。

とりあえず

ヤッてみよう。Makefile に手を入れて make を kickoff

$ diff Makefile Makefile.org 
90c90
< CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -g
---
> CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
$ make ARCH=i386 zImage

あ、-j 付けるの忘れた、って思ったらコンパイルが止まるな。

cc1: error: unrecognized command line option "-m486"

うう。これって gcc のバージョンの問題?
というか arch 配下に i686 とか無いな。ちなみに gcc は 4.4.5 です。

ぐぬぬ

grep してみた。

$ find |grep Makefile|xargs grep 486
./arch/i386/Makefile:ifdef CONFIG_M486
./arch/i386/Makefile:CFLAGS := $(CFLAGS) -m486 -DCPU=486
./arch/i386/Makefile:CFLAGS := $(CFLAGS) -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586
./arch/i386/Makefile:CFLAGS := $(CFLAGS) -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586
./arch/i386/Makefile:CFLAGS := $(CFLAGS) -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686
$

中身を見てみたら以下な模様。

ifdef CONFIG_M686
CFLAGS := $(CFLAGS) -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686
endif

CONFIG_M686 って何だ。てか、ここのオプションを -m686 に変えれば良いのかどうか。でも Processor type and features なソコからはどうにもできなかったので手動で CONFIG_M686 に y をナニ。あと、arch/i386/Makefile の diff が以下。

$ diff arch/i386/Makefile arch/i386/Makefile.org 
43c43
< CFLAGS := $(CFLAGS) -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686
---
> CFLAGS := $(CFLAGS) -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686
$

さ、これでどうなるか。

$ make ARCH=i386 zImage

駄目だorz
しかしよくよく考えるに最近 make-kpkg さえも自分でしてないなぁ。ええと -mtune=i686 とかってヤッてみれば良いのだろうか。

ぐぐ

コンパイルエラーがどさっと出るな。見てみたら以下な箇所あたりで出てますな。

#ifdef CONFIG_CDU31A
extern void cdu31a_setup(char *str, int *ints);
#endif CONFIG_CDU31A

何故に endif なソレに (ry
ちょっとこれはこれでぼちぼちやろう。あまりにも不毛なので。