2011/06/25(土)/usr/local/lib/libldap.so: undefined reference to `fetchGetURL'
2017/10/12 4:29
openLDAP サポートを必要とする他のアプリケーションを構築しようとすると、
/usr/local/lib/libldap.so: undefined reference to `fetchGetURL'
のようなリンクエラーが出て構築できないという状況になる場合があります。
日本語での情報が全く無いため、記録しておきます。
google のお世話になりました。英語が苦手なのでちと苦労を。。(爆)
これは、openLDAP 2.4.24 以降の新しいバージョンで fetch(3) ライブラリをデフォルトで組み込まなくなったことによります。
FreeBSD の場合は、fetch(3) ライブラリはOS標準で用意されています。
OpenLDAP 2.4.23 以前と同じ挙動にするためには、openLDAP 2.4 コンパイルの configure 時に、
--with-fetch
をconfigure オプションに追加します。
しかし、FreeBSD の場合、これだけでは駄目なのです。
コンパイル、インストールは何の問題もなくされるのですが、なんと、configure スクリプト自身にバグが潜んでいます。
以下のパッチを当てる必要があります:
@@ -22234,7 +22234,7 @@
if test $ol_cv_lib_fetch != no ; then
- LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
+ LIBS="$LIBS $ol_link_fetch"
> ol_link_fetch=freebsd
elif test $ol_with_fetch != auto ; then
上記の修正後、--with-fetch オプションを追加した状態にて、いつもどおり configure から openLDAP 2.4 を構築することで解決します。
(追記 2011/07/14)
OpenLDAP 2.4.26 に於いて、このバグは解消されているようです。