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

[pbsd-mg2] Re: successful self make build



鈴木(康)です。最近サボッテいるので、発言しにくいんですが、
コメント。

<199909020922.SAA09917@shin1.sm.sony.co.jp>の記事において
takemura@sm.sony.co.jpさんは書きました。
  | 
  | とはいえ、互換性がないのは、ライブラリの setjmp などに load/store 
  | 命令がすこし入っているという点だけなのですよね?

lib/arch/mips を見てもらえばわかりますが、

flt_rounds.c:   __asm__("cfc1 %0,$31" : "=r" (x));
fpgetmask.c:    __asm__("cfc1 %0,$31" : "=r" (x));
fpgetround.c:   __asm__("cfc1 %0,$31" : "=r" (x));
fpgetsticky.c:  __asm__("cfc1 %0,$31" : "=r" (x));
fpsetmask.c:    __asm__("cfc1 %0,$31" : "=r" (old));
fpsetmask.c:    __asm__("ctc1 %0,$31" : : "r" (new));
fpsetround.c:   __asm__("cfc1 %0,$31" : "=r" (old));
fpsetround.c:   __asm__("ctc1 %0,$31" : : "r" (new));
fpsetsticky.c:  __asm__("cfc1 %0,$31" : "=r" (old));
fpsetsticky.c:  __asm__("ctc1 %0,$31" : : "r" (new));

は、全部だめです。こちらは、cfc1 を無視でいいのかも知れません。

あと、fabs.S isinf.S ldexp.S modf.S
もダメです。こっちの方の方が対応が難しいと思う。

  | そこでちょっと考えたのですが、カーネルが FP reg. の load/store を無視
  | して program counter を進めることができれば、
  | gcc は mipsel-netbsd で共通で、user land のコンパイルの際に
  | どこかで CFLAGS=-msoft-float できればよいのではないでしょうか。(嘘?)
  | 
  | 上記のような例外の無視は、やっぱり困難でしょうか?

というわけで、例外の対応だけでは難しいと思います。

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