autotoolsで、libhoge.soをconfigureスクリプトでチェックするためにautoconfをするのだが、c++コードからコンパイルされら共有ライブラリだと、ライブラリ内ではシンボルがマングルされたまま保存されている。マングルされたシンボルはAC_CHECK_LIBを通過することができない。AC_CHECK_LIBの第二引数がfunctionを要求しているためである。このfunctionはマングルされていない関数名なのか、それとも名前空間の処遇を考えるとマングル後のfunctionを入れるのか、にしてもconfigureスクリプトにマングルする機能なんてないだろうしなぁと思ったり。autotoolsはgccではないわけで、当たり前といえば当たり前か。
(追記)昔のオレが出していた答えはAC_HAVE_LIBRARYだった。configure.acはこんな感じになっていた。
...
#for libxerces-c
if test -z "$LIBXERCESC_LIB"; then
AC_HAVE_LIBRARY( xerces-c,
LIBXERCESC_LIB='-lxerces-c',
AC_MSG_ERROR(*** XERCES-C library not found ***)
)
fi
AC_SUBST(LIBXERCESC_LIB)
...