r23186 - gnucash/trunk - Bug 654196 - "make check" fails when built with --enable-dbi

John Ralls jralls at ceridwen.us
Sun Sep 22 17:56:52 EDT 2013


On Sep 22, 2013, at 1:16 PM, Christian Stimming <christian at cstimming.de> wrote:

> Am Samstag, 21. September 2013, 15:44:05 schrieb John Ralls:
>> On Sep 21, 2013, at 2:36 PM, Christian Stimming <christian at cstimming.de> 
> wrote:
>>> The new test fails for me as well: Kubuntu 11.10, and config.log says:
>>> 
>>> configure:20323: checking Looking for at least one supported DBD module
>>> configure:20343: gcc -o conftest -I/home/cs/usr/include   -ldl
>>> conftest.c - lpthread
>>> 
>>>> &5
>>> 
>>> /tmp/ccISRVMn.o: In function `main':
>>> conftest.c:(.text+0xf): undefined reference to `dlopen'
>> 
>> That's the problem, and it's a big one.
>> ...
>> That part doesn't matter until we can sort out why the linker can't find
>> dlopen. It's supposed to be in libdl.so, which Debian installs in
>> /usr/lib/x86_64-linux-gnu. Can you check that it's there (it might be in
>> /lib instead of /usr/lib)? 
> 
> The error message in config.log is still unchanged. libdl.so is in 
> /usr/lib/x86_64-linux-gnu, as you guessed. Also the linker error message 
> doesn't complain about "could not link 'dl'" but it rather complains only 
> about the undefined reference. Hence, it found libdl.so but somehow doesn't 
> find that reference.
> 
> $ ls -l /usr/lib/x86_64-linux-gnu/libdl*
> -rw-r--r-- 1 root root 13194 2012-09-21 09:04 /usr/lib/x86_64-linux-
> gnu/libdl.a
> lrwxrwxrwx 1 root root    32 2012-09-21 09:04 /usr/lib/x86_64-linux-
> gnu/libdl.so -> /lib/x86_64-linux-gnu/libdl.so.2
> 
>> Also, please run  grep lt_cv_dlopen config.log
> 
> lt_cv_dlopen=dlopen
> lt_cv_dlopen_libs=-ldl
> lt_cv_dlopen_self=yes
> lt_cv_dlopen_self_static=no

So libtool.m4's call of AC_CHECK_LIB([ldl], [dlopen],...) found dlopen in libdl.so.

More likely then that the command  gcc -o conftest -I/home/cs/usr/include   -ldl conftest.c - lpthread
isn't trying to link libdl. Which is strange, especially since it works fine on Debian Wheezy 64.

Hmm. That space between - and lpthread is bothersome.  Try this patch and see if it changes anything:
diff --git a/configure.ac b/configure.ac
index 2b78423..17c3c6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -534,6 +534,7 @@ then
   EXTRA_SEARCH_LIBS=""
   AC_CHECK_HEADERS(dbi/dbi.h)
   if test "x$ac_cv_header_dbi_dbi_h" != xno; then
+    saved_LIBS=$LIBS
     AC_ARG_WITH( dbi-dbd-dir,
       [AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of libdbi dri
       [[GNC_DBD_DIR="$with_dbi_dbd_dir"
@@ -551,7 +552,7 @@ then
         LDINC="#include <dlfcn.h>"
         LDFUNCARGS=", RTLD_NOW"
         LDEXT=so
-        export LDFLAGS="$LDFLAGS $lt_cv_dlopen_libs"
+        LIBS="$lt_cv_dlopen_libs $LIBS"
         ;;
       esac
       export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$EXTRA_SEARCH_LIBS"
@@ -581,6 +582,7 @@ to the configure argument list and run it again.

     LIBDBI_LIBS=-ldbi
     _COMPONENTS="$_COMPONENTS dbi"
+    LIBS=$saved_libs
   else
     AC_MSG_ERROR([

Regards,
John Ralls




More information about the gnucash-devel mailing list