2017-01-21

pkgsrcのdevel/cpuflagsを使うとエラーが出る

dynabook SS SX/15AにNetBSD/i386の環境を構築しています。pkgsrcを利用してコンパイルをおこなう場合のオプションを最適化してくれることを期待して「devel/cpuflsgs」を使ってみました。具体的には/etc/mk.confに次の行を追加します。必要なのは1行目だけらしいのですが、2行目も入れておくと御利益がありそうなので、追加しました。
.sinclude "/usr/pkg/share/mk/cpuflags.mk"
.sinclude "/usr/pkg/share/mk/optimize_gcc.mk" 
この状態でパッケージをコンパイルするとエラーが出てしまいます。詳細はconfig.logを参照せよとのことなので確認してみると次のエラーが記録されていました。
error: bad value (native) for -march= switch
cpuflagsを使うと「-mfpmath=sse -msse3 -march=native」というオプションが加えられるようです。3番目のオプションが悪いようですが、何が悪いのでしょう。

-march=nativeという指定が出来るのはgcc 4.2以降らしいのですが、NetBSD/i386のgccは4.8.4です。またmanを見てもnativeという指定が出来るように記述されています。

そうは言ってもエラーが出るものは仕方ないので回避策を考えてみます。dynabook SS SX/15AのCPUはCore Solo U1400 1.2GHzなのですが、この場合に-marchには何を指定すれば良いのでしょうか。Webを検索してみたら「Safe Cflags/Intel」という情報が見つかりました。どうやら「-march=prescott」と指定すれば良いようです。

結局/etc/mk.confには次のように書いておくことにしました。
CFLAGS+=    -mfpmath=sse -msse3 -march=prescott
.sinclude "/usr/pkg/share/mk/optimize_gcc.mk"

0 件のコメント:

コメントを投稿