Closed mumumu closed 6 years ago
authdaemondprog links with libcouriercommon.la with links with libcourierauth.la
Yes. authdaemondprog links with libcourierauthcommon.la. But it's strange that libcourierauthcommon.la does not inherit libcourierauth.la's debug.c symbol.
$ nm -u .libs/libcourierauthcommon.so | grep debug
U courier_authdebug_login_level
U courier_authdebug_printf
So, I added libcourierauth.la dependency to LDADD instead of debug.c. How do you think?
This must be some kind of a libtool issue. My link pulls in libcourierauth automatically:
/bin/sh ./libtool --tag=CXX --mode=link g++ -I/usr/include/mysql -I/usr/include/mysql -I/usr/include -g -O2 -Wall -Ilibs -I./libs -export-dynamic -dlopen libauthuserdb.la -dlopen libauthpam.la -dlopen libauthpgsql.la -dlopen libauthldap.la -dlopen libauthmysql.la -dlopen libauthsqlite.la -dlopen libauthcustom.la -dlopen libauthpipe.la -o authdaemondprog authdaemond.o authdaemondcpp.o -lltdl libcourierauthcommon.la libs/liblock/liblock.la libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la libs/rfc822/libencode.la libs/numlib/libnumlib.la
libtool: link: rm -f .libs/authdaemondprog.nm .libs/authdaemondprog.nmS .libs/authdaemondprog.nmT
libtool: link: rm -f ".libs/authdaemondprog.nmI"
libtool: link: (cd .libs && gcc -I/usr/include/mysql -I/usr/include/mysql -I/usr/include -g -O2 -Wall -Ilibs -I./libs -c -fno-builtin "authdaemondprogS.c")
libtool: link: rm -f ".libs/authdaemondprogS.c" ".libs/authdaemondprog.nm" ".libs/authdaemondprog.nmS" ".libs/authdaemondprog.nmT" ".libs/authdaemondprog.nmI"
libtool: link: g++ -I/usr/include/mysql -I/usr/include/mysql -I/usr/include -g -O2 -Wall -Ilibs -I./libs .libs/authdaemondprogS.o -o .libs/authdaemondprog authdaemond.o authdaemondcpp.o -Wl,--export-dynamic -lltdl ./.libs/libcourierauthcommon.so /home/mrsam/src/courier.git/courier-authlib/.libs/libcourierauth.so libs/liblock/.libs/liblock.a libs/libhmac/.libs/libhmac.a libs/md5/.libs/libmd5.a libs/sha1/.libs/libsha1.a libs/rfc822/.libs/libencode.a libs/numlib/.libs/libnumlib.a -Wl,-rpath -Wl,/usr/local/lib/courier-authlib
Explicitly linking with libcourierauth does not harm, though.
@svarshavchik Just for future reference, can you let me know about your build environment? I guess that a similar build problem will be occur in the future.
My environment is the following.
Fedora 28, with gcc 8.1.1, autoconf 1.15.1 libtool 2.4.6 and autoconf 2.69.
It's unlikely that the compiler makes any difference with this issue specifically; it's probably distribution-specific patches to libtool.
When I build my libcourierauthcommon.la contains:
# Libraries that this one depends upon.
dependency_libs=' /home/mrsam/src/courier-authlib/libcourierauth.la -ldl'
I surmise that linking with libcourierauthcomon.la also pulls in libcourierauth.la that way.
I tried to build courier-authlib by the following procedure, but got linker error because the lack of debug.[oc] dependency. I fixed it by changing Makefile.am.