Libtool problems

Herbert Thoma tma@iis.fhg.de
Mon, 12 Nov 2001 22:07:20 +0100


Bill Gribble schrieb:
> 
> On Mon, 2001-11-12 at 14:12, Herbert Thoma wrote:
> > I did exactly this. And I did this again about half an hour ago
> > and it still fails :-(
> 
> Could you give a description of the problem again please?  I am not sure
> exactly what is failing.    The error message is the most useful part.

Hi Bill,

this is what fails and the error message:
make[4]: Entering directory `/opt/gnucash/gnucash_cvs/gnucash_work/src/engine/test'
gcc -DHAVE_CONFIG_H -I. -I. -I../../..    -I../../../src/gnc-module   -I../../../src/test-core   -I..   -I../test-core   -I/usr/include   -I/usr/include/glib-1.2 -I/usr/lib/glib/include  -g -O2 -Wall
-Wunused  -Wall -Wno-unused -Werror-implicit-function-declaration -c test-commodities.c
/bin/sh ../../../libtool --mode=link gcc -I../../../src/gnc-module   -I../../../src/test-core   -I..   -I../test-core   -I/usr/include   -I/usr/include/glib-1.2 -I/usr/lib/glib/include  -g -O2 -Wall
-Wunused  -Wall -Wno-unused -Werror-implicit-function-declaration  -o test-commodities  test-commodities.o ../../../src/gnc-module/libgncmodule.la   ../../../src/test-core/libgncmod-test.la  
../libgncmod-engine.la   ../libgw-engine.la   ../libgw-glib.la   ../libgw-kvp.la   ../test-core/libgncmod-test-engine.la   -L/usr/lib -lglib   -lltdl -lpopt -lm  -lm
mkdir .libs
gcc -I../../../src/gnc-module -I../../../src/test-core -I.. -I../test-core -I/usr/include -I/usr/include/glib-1.2 -I/usr/lib/glib/include -g -O2 -Wall -Wunused -Wall -Wno-unused
-Werror-implicit-function-declaration -o test-commodities test-commodities.o  ../../../src/gnc-module/.libs/libgncmodule.a -L/usr/local/lib -L/usr/lib ../../../src/test-core/.libs/libgncmod-test.a
../.libs/libgncmod-engine.a /opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgw-engine.a /opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgw-glib.a
/opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgw-kvp.a ../.libs/libgw-engine.a ../.libs/libgw-glib.a ../.libs/libgw-kvp.a ../test-core/.libs/libgncmod-test-engine.a
/opt/gnucash/gnucash_cvs/gnucash_work/src/gnc-module/.libs/libgncmodule.a /usr/local/lib/libg-wrap-runtime-guile.so /usr/lib/libguile.so /usr/lib/libqthreads.so -lpthread /usr/lib/libglib.so
/usr/lib/libltdl.so -ldl /usr/lib/libpopt.so -lm -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib
/opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgw-engine.a(engine-helpers.o): In function `gnc_scm2query_term_query':
/opt/gnucash/gnucash_cvs/gnucash_work/src/engine/engine-helpers.c:891: undefined reference to `xaccMallocQuery'
/opt/gnucash/gnucash_cvs/gnucash_work/src/engine/engine-helpers.c:938: undefined reference to `xaccQueryAddDateMatchTS'

A lot of other undefined references follow.
If I call make with -k other calls to the linker fail, too.

nm /opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgw-engine.a
lists xaccMallocQuery as U (external reference).

nm /opt/gnucash/gnucash_cvs/gnucash_work/src/engine/.libs/libgncmod-engine.a
lists xaccMallocQuery as T (in here).

libgncmod-engine.a is specified in the failing command before libgw-engine.a
May be this is a case of circular dependencies of static libraries? But libtool
should handle this?

> What have you tried to correct the problem?  Is it just an order of
> compilation thing?

Dave advised me to move the line in src/engine/test/Makefile.am

  ../libgncmod-engine.la \

farther down the list in LDADD.

I did this, but it did not help.

Unfortunately I don't understand the interaction of autoconf, libtool,
the compiler and the linker good enough to know what to change in
which Makefile.am or configure.in or whatever. And the autgenerated
Makefile is to complex ...

 Herbert.


> Thanks,
> Bill Gribble

-- 
Herbert Thoma
FhG-IIS A, Studio Department
Am Weichselgarten3, 91058 Erlangen, Germany
Phone: +49-9131-776-323
Fax:   +49-9131-776-399
email: tma@iis.fhg.de
www: http://www.iis.fhg.de/