[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Circular dependency building test programs
Hi,
I'm not terribly good with libtool and automake so I'm hoping someone
on the list has a suggestion for a problem I'm having (also, experience
has shown that I aways solve my problem 5 minutes after I post a message
to this list which would be great too :-)
I'm trying to link Heimdal with a library that links with Heimdal. Meaning
I have a circular dependency. Linking libraries is not a problem
since the linker doesn't try to resolve dependencies when creating
libraries. However, Heimdal's makefiles try to create a number of test
programs which *do* need to resolve the dependencies.
In particular when building roken/.libs/snprintf-test I get 'undefined
reference' errors:
gcc <stuff> -o .libs/snprintf-test snprintf_test-snprintf-test.o \
<stuff> ./.libs/libtest.a ./.libs/libroken.so -pthread \
-l<mylibhere> -l<heimdallibshere> <morestuff>
/var/ioplex/heimdal/lib/libkrb5.so: undefined reference to `bswap16'
/var/ioplex/heimdal/lib/libkrb5.so: undefined reference to `setprogname
...
It seems the linker is using .libs/libroken.so which doesn't have all of
the necessary symbols required by the libkrb5 my library is linked with:
snprintf-test -> libmylib -> libkrb5 -> .libs/libroken.so (needs
to be /var/ioplex/heimdal/lib/libroken.so)
Ideally I would prefer to simply not build any test programs at all. Then
I would only need to add the LIBS necessary to link the libraries and
not executables.
So is there any option to NOT build test programs?
Or perhaps there's a way to specify different options for linking
executables so that I can leave out the link to my lib?
Mike
--
Michael B Allen
PHP Active Directory SPNEGO SSO
http://www.ioplex.com/