(2006.01.05)
使用するgccはdev_img-1.6に入ってるのを使う。version 2.95.1 19990816 (release)
ちなみにdev_img-1.6はsquashfsである。
patchをあてようと思ったが、なぜか patchでセグメントエラーになる。
そこでとりあえず、gnuのpatchをmakeで作るところから始める。
patchがmakeできたので、make install し、いよいよパッチをあてる。
今度はうまくいった。
make oldconfig し、さらにmakeに進む。しかしすぐにひっかかる。
これだ。
Error: Invalid processor variant -mcpu=iwmmxt あるいは
Error: Invalid processor variant -mxscale
なんで?
そこで、これを定義してる ./arch/arm/Makefile を修正してこの部分をカット
してしまう。 arch-y :=-D__LINUX_ARM_ARCH__=4
ar,gcc,ldも全部arm-linux-ar,armlinux-gcc,arm-kinux-ldだから
リンクを事前に張っておく。
dateも--rfc-822のパラメータはサポートしてないので、
dateも修正する(/usr/bin/date)
もう一度、makeする。おお、今度はどんどん進む。
残念。途中で止まった。アセンブラのところだ。
さてどう手を打てばいいか。。。
arm-linux-gcc -D__ASSEMBLY__ -D__KERNEL__ -I./include -mapcs-32 -D__LINUX_ARM_ARCH__=4 -mno-fpu -msoft-float -c -o entry-armv.o entry-armv.S
entry-armv.S: Assembler messages: (./arch/arm/kernel/entry-armv.S)
entry-armv.S:851: Error: bad instruction `clz r0,r6'
entry-armv.S:981: Error: bad instruction `wstrw wCSSF,[r0,#(0x80)]'
entry-armv.S:981: Error: bad instruction `wstrw wCASF,[r0,#(0x84)]'
entry-armv.S:981: Error: bad instruction `wstrw wCGR0,[r0,#(0x88)]'
entry-armv.S:981: Error: bad instruction `wstrw wCGR1,[r0,#(0x8C)]'
entry-armv.S:981: Error: bad instruction `wstrw wCGR2,[r0,#(0x90)]'
entry-armv.S:981: Error: bad instruction `wstrw wCGR3,[r0,#(0x94)]'
entry-armv.S:981: Error: bad instruction `wstrd wR0,[r0,#(0x00)]'
entry-armv.S:981: Error: bad instruction `wstrd wR1,[r0,#(0x08)]'