Subject: | static build does not work: undefined reference to symbol dlclose (e085a5fc5ec78763c3532bea1085b1535ec53655) |
Date: | Thu, 25 May 2017 10:45:52 +0200 |
To: | bind-bugs@isc.org |
From: | "Petr Špaček" <petr.spacek@nic.cz> |
Hello,
it seems that static build on lastest master branch
(e085a5fc5ec78763c3532bea1085b1535ec53655) is broken.
Console output follows:
$ ./configure --disable-backtrace --disable-symtable
--enable-full-report --disable-shared --enable-static --without-lmdb
--without-zlib --without-gssapi --without-libxml2 --without-dlopen
$ make
if [ X"" = X -o X"${MAKE_SYMTABLE:-}" = X ] ; then gcc
-I/home/pspacek/pkg/bind/git -I../.. -I./include -I./unix/include -I.
-I/home/pspacek/pkg/bind/git/lib/lwres/include
-I../../lib/lwres/unix/include -I../../lib/lwres/include
-I/home/pspacek/pkg/bind/git/lib/dns/include -I../../lib/dns/include
-I/home/pspacek/pkg/bind/git/lib/bind9/include -I../../lib/bind9/include
-I/home/pspacek/pkg/bind/git/lib/isccfg/include
-I../../lib/isccfg/include
-I/home/pspacek/pkg/bind/git/lib/isccc/include -I../../lib/isccc/include
-I/home/pspacek/pkg/bind/git/lib/isc/include -I../../lib/isc
-I../../lib/isc/include -I../../lib/isc/unix/include
-I../../lib/isc/pthreads/include -I../../lib/isc/x86_32/include
-D_REENTRANT -DOPENSSL -D_GNU_SOURCE -g -O2 -W -Wall
-Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat
-Wpointer-arith -fno-strict-aliasing -fno-delete-null-pointer-checks
-o named ${BASEOBJS} ${LIBS0} ../../lib/lwres/liblwres.a
../../lib/dns/libdns.a -lcrypto ../../lib/bind9/libbind9.a
../../lib/isccfg/libisccfg.a ../../lib/isccc/libisccc.a
../../lib/isc/libisc.a -lpthread ; else rm -f namedtmp0; gcc
-I/home/pspacek/pkg/bind/git -I../.. -I./include -I./unix/include -I.
-I/home/pspacek/pkg/bind/git/lib/lwres/include
-I../../lib/lwres/unix/include -I../../lib/lwres/include
-I/home/pspacek/pkg/bind/git/lib/dns/include -I../../lib/dns/include
-I/home/pspacek/pkg/bind/git/lib/bind9/include -I../../lib/bind9/include
-I/home/pspacek/pkg/bind/git/lib/isccfg/include
-I../../lib/isccfg/include
-I/home/pspacek/pkg/bind/git/lib/isccc/include -I../../lib/isccc/include
-I/home/pspacek/pkg/bind/git/lib/isc/include -I../../lib/isc
-I../../lib/isc/include -I../../lib/isc/unix/include
-I../../lib/isc/pthreads/include -I../../lib/isc/x86_32/include
-D_REENTRANT -DOPENSSL -D_GNU_SOURCE -g -O2 -W -Wall
-Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat
-Wpointer-arith -fno-strict-aliasing -fno-delete-null-pointer-checks
-o namedtmp0 ${BASEOBJS} ${LIBS0} ../../lib/lwres/liblwres.a
../../lib/dns/libdns.a -lcrypto ../../lib/bind9/libbind9.a
../../lib/isccfg/libisccfg.a ../../lib/isccc/libisccc.a
../../lib/isc/libisc.a -lpthread || exit 1; rm -f named-symtbl.c
named-symtbl.o; ../../util/mksymtbl.pl -o named-symtbl.c namedtmp0 ||
exit 1; make named-symtbl.o || exit 1; rm -f namedtmp1; gcc
-I/home/pspacek/pkg/bind/git -I../.. -I./include -I./unix/include -I.
-I/home/pspacek/pkg/bind/git/lib/lwres/include
-I../../lib/lwres/unix/include -I../../lib/lwres/include
-I/home/pspacek/pkg/bind/git/lib/dns/include -I../../lib/dns/include
-I/home/pspacek/pkg/bind/git/lib/bind9/include -I../../lib/bind9/include
-I/home/pspacek/pkg/bind/git/lib/isccfg/include
-I../../lib/isccfg/include
-I/home/pspacek/pkg/bind/git/lib/isccc/include -I../../lib/isccc/include
-I/home/pspacek/pkg/bind/git/lib/isc/include -I../../lib/isc
-I../../lib/isc/include -I../../lib/isc/unix/include
-I../../lib/isc/pthreads/include -I../../lib/isc/x86_32/include
-D_REENTRANT -DOPENSSL -D_GNU_SOURCE -g -O2 -W -Wall
-Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat
-Wpointer-arith -fno-strict-aliasing -fno-delete-null-pointer-checks
-o namedtmp1 ${BASEOBJS} named-symtbl.o ${LIBS0}
../../lib/lwres/liblwres.a ../../lib/dns/libdns.a -lcrypto
../../lib/bind9/libbind9.a ../../lib/isccfg/libisccfg.a
../../lib/isccc/libisccc.a ../../lib/isc/libisc-nosymtbl.a -lpthread
|| exit 1; rm -f named-symtbl.c named-symtbl.o; ../../util/mksymtbl.pl
-o named-symtbl.c namedtmp1 || exit 1; make named-symtbl.o || exit 1;
gcc -I/home/pspacek/pkg/bind/git -I../.. -I./include -I./unix/include
-I. -I/home/pspacek/pkg/bind/git/lib/lwres/include
-I../../lib/lwres/unix/include -I../../lib/lwres/include
-I/home/pspacek/pkg/bind/git/lib/dns/include -I../../lib/dns/include
-I/home/pspacek/pkg/bind/git/lib/bind9/include -I../../lib/bind9/include
-I/home/pspacek/pkg/bind/git/lib/isccfg/include
-I../../lib/isccfg/include
-I/home/pspacek/pkg/bind/git/lib/isccc/include -I../../lib/isccc/include
-I/home/pspacek/pkg/bind/git/lib/isc/include -I../../lib/isc
-I../../lib/isc/include -I../../lib/isc/unix/include
-I../../lib/isc/pthreads/include -I../../lib/isc/x86_32/include
-D_REENTRANT -DOPENSSL -D_GNU_SOURCE -g -O2 -W -Wall
-Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat
-Wpointer-arith -fno-strict-aliasing -fno-delete-null-pointer-checks
-o namedtmp2 ${BASEOBJS} named-symtbl.o ${LIBS0}
../../lib/lwres/liblwres.a ../../lib/dns/libdns.a -lcrypto
../../lib/bind9/libbind9.a ../../lib/isccfg/libisccfg.a
../../lib/isccc/libisccc.a ../../lib/isc/libisc-nosymtbl.a -lpthread ;
../../util/mksymtbl.pl -o named-symtbl2.c namedtmp2; count=0; until
diff named-symtbl.c named-symtbl2.c > /dev/null ; do count=`expr $count
+ 1` ; test $count = 42 && exit 1 ; rm -f named-symtbl.c named-symtbl.o;
../../util/mksymtbl.pl -o named-symtbl.c namedtmp2 || exit 1; make
named-symtbl.o || exit 1; gcc -I/home/pspacek/pkg/bind/git -I../..
-I./include -I./unix/include -I.
-I/home/pspacek/pkg/bind/git/lib/lwres/include
-I../../lib/lwres/unix/include -I../../lib/lwres/include
-I/home/pspacek/pkg/bind/git/lib/dns/include -I../../lib/dns/include
-I/home/pspacek/pkg/bind/git/lib/bind9/include -I../../lib/bind9/include
-I/home/pspacek/pkg/bind/git/lib/isccfg/include
-I../../lib/isccfg/include
-I/home/pspacek/pkg/bind/git/lib/isccc/include -I../../lib/isccc/include
-I/home/pspacek/pkg/bind/git/lib/isc/include -I../../lib/isc
-I../../lib/isc/include -I../../lib/isc/unix/include
-I../../lib/isc/pthreads/include -I../../lib/isc/x86_32/include
-D_REENTRANT -DOPENSSL -D_GNU_SOURCE -g -O2 -W -Wall
-Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat
-Wpointer-arith -fno-strict-aliasing -fno-delete-null-pointer-checks
-o namedtmp2 ${BASEOBJS} named-symtbl.o ${LIBS0}
../../lib/lwres/liblwres.a ../../lib/dns/libdns.a -lcrypto
../../lib/bind9/libbind9.a ../../lib/isccfg/libisccfg.a
../../lib/isccc/libisccc.a ../../lib/isc/libisc-nosymtbl.a -lpthread ;
../../util/mksymtbl.pl -o named-symtbl2.c namedtmp2; done ; mv
namedtmp2 named; rm -f namedtmp0 namedtmp1 namedtmp2 named-symtbl2.c; fi
/bin/ld: ../../lib/dns/libdns.a(dyndb.o): undefined reference to symbol
'dlclose@@GLIBC_2.2.5'
/usr/lib64/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:534: recipe for target 'named' failed
BTW option --disable-shared requires explicit --without-dlopen otherwise
the build fails on libtool ("unable to create dynamic library").
I hope it helps. Let me know if you need further details.
--
Petr Špaček @ CZ.NIC