[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pbsd-mg2] Re: successful self make build
suz@hpc.bs1.fc.nec.co.jp writes:
> 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
> もダメです。こっちの方の方が対応が難しいと思う。
lib/libc/arch/mips/gen/Makefile.incで以下のようにsoftfloat用のソースを使
うようになっているので大丈夫ではないでしょうか?
.if (${MACHINE} == "hpcmips")
SRCS+= sf_fabs.c frexp.c infinity.c sf_isinf.c sf_ldexp.c sf_modf.c
SRCS+= sf_flt_rounds.c sf_fpgetmask.c sf_fpgetround.c sf_fpgetsticky.c
sf_fpsetmask.c sf_fpsetround.c sf_fpsetsticky.c
.else
SRCS+= fabs.S frexp.c infinity.c isinf.S ldexp.S modf.S
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c
fpsetround.c fpsetsticky.c
.endif
これらの変更をしたのは鈴木(康)さんではないですか:-)
ちなみに、${DESTDIR}/usr/libで以下のコマンドを実行してみましたが、FPA命
令(cp1命令)は検出できませんでした。
% mipsel-netbsd-objdump -d *.a | awk '{print $3}' | grep c1
篠原