[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pocket PostPet



初めまして。時々 Web から読ませてもらってます。
subscribe してないけど書けるのかな?

In message <200007061055.e66Atni07513@escar.shiota.imasy.or.jp>, Noriyuki Shiotawrites:

> ということをやりますが、mips の場合には、1 で確保される領域はkernel
> virtualな領域で、そのアドレスはkseg2(0xcXXXXXXX)になってしまうので、
> kernelのあるkesg0 (0x8xxxxxxx) とldでリンクしようとするとjumpのオフ
> セット(28bit?)が足りないためうまくリンクできませんでした。
> (多分これ以外の問題はないと思います。)
> 
> そのため、mipsでlkmをサポートする場合、1 でkernel内に確保する領域を
> kseg0 に取るようにするか、 2 でリンクする時になんとかする必要があり
> ます。

カーネルを kseg2 に引っ越すという手もありますよ :-)

> ldでリンクがうまくいかないのは、
> 
>         jal  tsleep
> 
> となっているからだめな訳で、
> 
>         la   t8,tsleep
>         jalr t8
> 
> になっていればいいんですけど、こういうのはgccやgasのオプションで何と
> かなるんでしょうか?

最近の gcc なのかな? -mlong-calls というオプションがあるようです。

あと shared object だと Global Object Table が含まれてますから
同様に制限がないですが、これを lkm で使うのはちょっとしんどいかな?

----
NOKUBI Hirotaka
Fingerprint20 = DEBC 0793 7CD6 92F1 0A1F  A792 9E2F EEEE A41B 171D