2008-06-09

FreeBSD 6.3でnvidia-driverがビルドできなくなってはまる

gettext祭りのついでに更新されてたnvidia-driverをビルドしようとして、warningしか出てないのに途中で止まっておかしいなとか思いながら、何かのはずみでpkg_deleteしてしまい、バカなことにそのことを忘れて再起動したものだから、Xが動かなくなってあせる。

ヘッダ内のプロトタイプが合わないせいでwarningが出るのに、CFLAGSに-Werrorがついてしまっているのが原因なのはすぐ判明。しかし、static inlineの定義を宣言に合わせて書き直すのは面倒なので、-Werrorを無効化したい。

-Werrorをつけてる箇所を探して、とりあえず/usr/share/mk/bsd.sys.mkにそれらしいのがあったので、応急で/etc/make.confにNO_WERROR=yesをつけてみたがダメ。

さらに調べると、/usr/src/sys/conf/kmod.mkでWERRORが定義されてなければWERROR=-WerrorにしてCFLAGSに加えている。これって、WERRORを無効化することを考えていないわけか?しかたないので、無害なところでWERROR=-Wallを定義してみたら、とりあえずビルドに成功。

次に、無条件には無効化したくないので、portconfを利用して、/usr/local/etc/ports.confに書いてみたが、portsのMakefileではなく、サブディレクトリにあるsrc/Makefileで有効にするには、ワイルドカードで指定しなければいけないようだ。

x11/nvidia-driver*: WERROR=-Wall
でしのぐ。

とかやっていたら、同じようなタイミングで、ports/124407が出ている。いずれちゃんと修正されるんだろう。-Werror無効化なんていうハックじゃなくて、warningが出ないようにしてくれればいいんだけど。

0 件のコメント: