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

Re: kernel softfloat emulation



かなり前の話ですが、

Takao Shinohara <shin@sm.sony.co.jp> writes:
> SPEC95ですが、NetBSD/i386では特に問題なく実行できたのですが、
> NetBSD/hpcmipsではf77のMIPS対応に問題があるようで、デフォルトではリンク
> に失敗しました(PICとnon-PICのバイナリをリンクしようとした)。
> 
> コンパイル時に -fPIC を指定することでリンクできるようにはなったのですが、
> 今度は実行直後に異常終了しました。

ようやく異常終了の原因がわかりました。

当時、私はPICコードの仕組みについて全然知らなかったのでそれ以上追及でき
なかったのですが、改めて見直してみたら原因は単純でした。

NetBSDのMIPS用のgccでは、cc1を呼ぶ時に"-mabicalls"を渡すことでPICをデフォ
ルトにしていました。しかし、これではf77(g77)ではPICがデフォルトになりま
せん。

解決策は簡単で、TARGET_DEFAULTにMASK_ABICALLSを足してやればよいです。こ
れで、CでもFortranでも何でもPICがデフォルトになります。

現在、この方法で問題ないかどうか一応お伺いをたてていますので、しばらくし
て異論がなければ修正はcommitします。

# 当座の回避策としては、"-mabicalls"をf77で指定すればOKです。

篠原