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

[pbsd-mg2] Re: Serial console



鈴木(康)です。
<199904210705.QAA26903@shin1.sm.sony.co.jp>の記事において
takemura@sm.sony.co.jpさんは書きました。

  |  > コマンドなどを make してみようと思っているんですが、
  |  > ベースバージョンとしては、なにが良いのでしょうか?

連休中に cross-make できる環境を作りました。
# あれこれもってくるのは、面倒なので、
# NetBSD-1.3.3 の source/comp.tgz から全部を生成するようにしました。
今まとめていますが、いくつか疑問点/問題点があります。

まずカーネルですが、4/4 版で少し動かしはじめました。
( 私のは、vr4102 キャッシュ1k なので、あまり考えずに L1 Cache ON
にしてみました。)
普通に memset.S を使うと bicons の スクロールで、
縦縞(4dot 毎に 白/黒) が出てしまいます。
しかたがないので、bicons の中の memset を使っていますが、
これの対策を知りませんでしょうか? > たけむらさん。
# なんとなく知っているのではないかと思い手を付けていません。

あと、バグ情報 machdep.c の、minaddr,maxaddr 初期値が設定
されていません。( memset がらみかも知れないのですが、私の
マシンでは、minaddr が 0xffffffff になっていて、uvm_map で
失敗します。) こちらでは、minaddr = 0, maxaddr = 0xffffffff
とかしています。

  |  > あと、ライブラリを作るときに、少なくとも setjmp まわりは変更しないと
  |  > いけないと思いますが、signal 関係もなにかしなければならないのではないか
  |  > と思っています。情報があれば教えてください。
  | 
  | 私は setjmp 関連の FPU レジスタの退避コードは、
  | #ifdef WITHOUT_FPU で囲みました。
  | これに加えて、私が以前書いた以下のメールのような対応をしています。
  |  > -msoft-float に必要な floating point のランタイム関数が libgcc.a に

いま、lib/libc/arch/mips/gen のしたを見ているんですが、setjmp 系以外も
ほぼ全部リプレースしないといけないようです。

あと、-msoft-float がどんなコードか調べてみたんですが、
double のかけ算など、__muldf3 を呼ぶだけのようです。

libgcc.a を無理矢理作ったので、__muldf3 自体も __muldf3 を呼ぶといった
ヒサンな ことになっていました。

lib/libc/arch/arm32 から、いろいろ持って来れば上の2点とも解決するよう
な感じなので、ちょっとほっとしていますが、まだ手を着けていません。

ところで t-r3900 私は見つけることができませんでした。
この中の不動小数点のランタイムで、libc のなかの、fpsetround() などと連動
しないといけないようなんですが、そうなっている(or できそう)でしょうか?

もしそうでないなら、arm32 から全面移植の方がよいと思いますが、
もはや mips におくのもなんとなくためらわれます。
source の構成どうしたらよいでしょうか?

--
					鈴木 康司 @NEC
					suz@hpc.bs1.fc.nec.co.jp
					TEL 0423-33-5381