FreeBSD 10.0-RELEASEへのアプグレード続き

いくつか標準から外れたものがあるようだ。とりあえず cvsは消えてくれてサンキューだが、digは無いと困るので入れた。

portsのリコンパイルはportmasterにお任せなんですが、それでもiconv関連で以下のようなメッセージが出て、

error: GNU libiconv not in use but included iconv.h is from libiconv

エラーで止まって悩みました。

これ以前別のプロジェクトでもハマったんだよな。おそらくconstがついてるか否かとかそういう(些細な)問題だったような記憶があるけど、これは古い何かと何かがかち合って、何かと何かのiconv.hの宣言がかみ合ってないのか?まずはググるが、適切な回答みつからず。しゃーないから自分で調べる

/usr/ports/devel/glib20のMakefile

を眺めると

ICONV_LIBというのが定義されていると、 configureに  --with-libiconv=gnuが渡されるようである。エラーで止まったあとに workの下で ./config.statusしてみると

# ./config.status --config
'--enable-static' '--disable-gtk-doc' '--with-html-dir=/usr/local/share/doc' '--disable-man' '--without-xml-catalog' '--with-pcre=system' '--disable-fam' '--disable-dtrace' '--with-libiconv=native' '--disable-modular-tests' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=x86_64-portbld-freebsd10.0' 'build_alias=x86_64-portbld-freebsd10.0' 'CC=cc' 'CFLAGS=-O2 -pipe -DLIBICONV_PLUG -fno-strict-aliasing' 'LDFLAGS= -L/usr/local/lib' 'CPPFLAGS=-I/usr/local/include -DLIBICONV_PLUG' 'CPP=cpp' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -DLIBICONV_PLUG -fno-strict-aliasing -DLIBICONV_PLUG' 'PKG_CONFIG=pkgconf' 'PYTHON=/usr/local/bin/python2.7'

と、nativeなiconvを使おうとしてるので、これが効いていないっぽい。devel/glib20/Makefileを強引に gnuを使うように書き換えたらちゃんとコンパイルが通った。

つまるところ、nativeな iconvを使おうとしてるのに /usr/local/include/iconv.h をincludeしているのがよくないのであろう。ここまではわかった。

コンパイラのインクルードパスを見る順番という問題な気もするが、iconvを全削除して、portsをリビルドするとうまくいくような気もする?それはそれでいろいろ別な問題が発生するような気がするが、さてどちらの対処でいくかべきか?

 

Posted by issei

カテゴリ: BSD

コメント一覧

そんなところでがんばらなくてもpkg でインストールすればいいのよ
みんみん

pkgのコンパイル済みは昔使ってイマイチなっとくいかなかったのがあるので、結局辞めたんですよね。何が納得いかなかったのかは忘れたけど
issei