Improve the ltdl discovery code by checking for libtool 2.x functions.

The lt_dladvise_* interfaces are implemented only in the 2.x series and are
not implemented in 1.4, so we can rely on their presence to know that the
version is good enough.
This commit is contained in:
Diego E. 'Flameeyes' Pettenò 2009-01-22 20:02:42 +01:00
parent 3293251198
commit a257448ceb

View file

@ -244,6 +244,10 @@ dnl exactly which version of libltdl is present in the system, so we
dnl just assume that it's a working version as long as we have the dnl just assume that it's a working version as long as we have the
dnl library and the header files. dnl library and the header files.
dnl dnl
dnl As an extra safety device, check for lt_dladvise_init() which is
dnl only implemented in libtool 2.x, and refine as we go if we have
dnl refined requirements.
dnl
dnl Check the header files first since the system may have a dnl Check the header files first since the system may have a
dnl libltdl.so for runtime, but no headers, and we want to bail out as dnl libltdl.so for runtime, but no headers, and we want to bail out as
dnl soon as possible. dnl soon as possible.
@ -253,7 +257,7 @@ dnl can give the proper place to find libltdl through the standard
dnl variables like LDFLAGS and CPPFLAGS. dnl variables like LDFLAGS and CPPFLAGS.
AC_CHECK_HEADER([ltdl.h], AC_CHECK_HEADER([ltdl.h],
[AC_CHECK_LIB([ltdl], [lt_dlopen], [LIBLTDL=-lltdl], [LIBLTDL=])], [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
[LIBLTDL=]) [LIBLTDL=])
AS_IF([test "x$LIBLTDL" = "x"], AS_IF([test "x$LIBLTDL" = "x"],