Commit 1628f586 authored by Ondřej Surý's avatar Ondřej Surý

Remove configure option to compile without libtool

libtool is a requirement to use automake (see GL #4), so this commit
removes the ability to compile BIND 9 without libtool.
parent c4638089
......@@ -1143,30 +1143,6 @@ system:clang:openbsd6.6:amd64:
- schedules
- web
# Jobs with libtool disabled
nolibtool:sid:amd64:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON}"
EXTRA_CONFIGURE: "--with-libidn2 --without-libtool --with-dlopen"
<<: *debian_sid_amd64_image
<<: *build_job
system:nolibtool:sid:amd64:
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- nolibtool:sid:amd64
needs: ["nolibtool:sid:amd64"]
unit:nolibtool:sid:amd64:
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- nolibtool:sid:amd64
needs: ["nolibtool:sid:amd64"]
# Jobs for Visual Studio 2017 builds on Windows (amd64)
msvc:windows:amd64:
......
......@@ -116,19 +116,14 @@ backtrace_test_nosymtbl@EXEEXT@: ${srcdir}/backtrace_test.c ${ISCDEPLIBS}
backtrace_test@EXEEXT@: ${srcdir}/backtrace_test.c backtrace_test_nosymtbl@EXEEXT@
#first step: create a first symbol table
rm -f symtbl.c
if test X${MKSYMTBL_PROGRAM} != X; then \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
backtrace_test_nosymtbl@EXEEXT@; else \
cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c
#second step: build a binary with the first symbol table
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
-o $@0 ${srcdir}/backtrace_test.c symtbl.c \
${ISCNOSYMLIBS} ${LIBS}
rm -f symtbl.c
#third step: create a second symbol table
if test X${MKSYMTBL_PROGRAM} != X; then \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl $@0; else \
cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c
#fourth step: build the final binary
rm -f $@0
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
......
......@@ -559,9 +559,6 @@
non-blocking. */
#undef USE_FIONBIO_IOCTL
/* Define if libtool is used for compilation */
#undef USE_LIBTOOL
/* define if OpenSSL is used for Public-Key Cryptography */
#undef USE_OPENSSL
......
......@@ -710,6 +710,7 @@ DST_EXTRA_OBJS
USE_ISC_SPNEGO
READLINE_LIB
BIND9_CO_RULE
INSTALL_LIBRARY
LIBTOOL_MODE_UNINSTALL
LIBTOOL_MODE_LINK
LIBTOOL_MODE_INSTALL
......@@ -745,7 +746,6 @@ PKCS11_TOOLS
PKCS11_TEST
OPENSSL_LIBS
OPENSSL_CFLAGS
INSTALL_LIBRARY
ALWAYS_DEFINES
LIBUV_LIBS
LIBUV_CFLAGS
......@@ -907,7 +907,6 @@ with_geoip2
enable_geoip
with_maxminddb
with_locktype
with_libtool
enable_pthread_rwlock
with_openssl
enable_fips_mode
......@@ -1661,7 +1660,6 @@ Optional Packages:
--with-maxminddb=PATH Build with MaxMind GeoIP2 support (auto|yes|no|path)
[default=auto]
--with-locktype=ARG Specify mutex lock type (adaptive or standard)
--with-libtool use GNU libtool
--with-openssl=DIR root of the OpenSSL directory
--with-pkcs11=PATH Build with PKCS11 support [no|path] (PATH is for the
PKCS11 provider)
......@@ -11938,6 +11936,9 @@ CC=$lt_save_CC
# Only expand once:
if test -z "$LIBTOOL"; then :
as_fn_error $? "The libtool script could not be found." "$LINENO" 5
fi
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
......@@ -15989,51 +15990,6 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libtool" >&5
$as_echo_n "checking for libtool... " >&6; }
# Check whether --with-libtool was given.
if test "${with_libtool+set}" = set; then :
withval=$with_libtool; use_libtool="$withval"
else
use_libtool="no"
fi
case $use_libtool in
yes)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
O=lo
A=la
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
LIBTOOL_MODE_COMPILE='--mode=compile'
LIBTOOL_MODE_INSTALL='--mode=install'
LIBTOOL_MODE_LINK='--mode=link'
LIBTOOL_MODE_UNINSTALL='--mode=uninstall'
INSTALL_LIBRARY='${INSTALL_PROGRAM}'
$as_echo "#define USE_LIBTOOL 1" >>confdefs.h
;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
O=o
A=a
LIBTOOL=
LIBTOOL_MKDEP_SED=
LIBTOOL_MODE_COMPILE=
LIBTOOL_MODE_INSTALL=
LIBTOOL_MODE_LINK=
LIBTOOL_MODE_UNINSTALL=
INSTALL_LIBRARY='${INSTALL_DATA}'
;;
esac
#
# Do we want to use pthread rwlock?
#
......@@ -18766,7 +18722,16 @@ fi
# File name extension for static archive files, for those few places
# where they are treated differently from dynamic ones.
#
O=lo
A=la
SA=a
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
LIBTOOL_MODE_COMPILE='--mode=compile'
LIBTOOL_MODE_INSTALL='--mode=install'
LIBTOOL_MODE_LINK='--mode=link'
LIBTOOL_MODE_UNINSTALL='--mode=uninstall'
INSTALL_LIBRARY='${INSTALL_PROGRAM}'
......@@ -22291,47 +22256,21 @@ if test "$with_dlopen" = "yes"; then :
LDFLAGS="${LDFLAGS} -Wl,--export-dynamic"
SO_CFLAGS="-fPIC"
SO_LDFLAGS=""
if test "$use_libtool" = "yes"; then :
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
else
SO_LDFLAGS="-shared"
SO_LD="${CC}"
fi
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
;; #(
*-freebsd*|*-openbsd*|*-netbsd*) :
LDFLAGS="${LDFLAGS} -Wl,-E"
SO_CFLAGS="-fpic"
if test "$use_libtool" = "yes"; then :
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
else
SO_LDFLAGS="-shared"
SO_LD="${CC}"
fi
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
;; #(
*-darwin*) :
SO_CFLAGS="-fPIC"
SO_LD="${CC}"
if test "$use_libtool" = "yes"; then :
SO_LDFLAGS="-Xcompiler -dynamiclib -undefined dynamic_lookup"
else
SO_LDFLAGS="-dynamiclib -undefined dynamic_lookup"
fi
SO_LDFLAGS="-Xcompiler -dynamiclib -undefined dynamic_lookup"
;; #(
*-solaris*) :
......@@ -22351,20 +22290,10 @@ fi
;;
esac
if test "$GCC" = "yes"; then :
SO_CFLAGS="-fPIC"
if test -z "$SO_LD"; then :
if test "$use_libtool" = "yes"; then :
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
else
SO_LDFLAGS="-shared"
SO_LD="${CC}"
fi
SO_CFLAGS="-fPIC"
if test -z "$SO_LD"; then :
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
fi
......@@ -25990,7 +25919,6 @@ report() {
echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
test "yes" = "$enable_backtrace" && \
echo " Print backtrace on crash (--enable-backtrace)"
test "no" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "yes" = "$want_querytrace" && \
echo " Very verbose query trace logging (--enable-querytrace)"
test "no" = "$with_cmocka" || echo " CMocka Unit Testing Framework (--with-cmocka)"
......@@ -26047,7 +25975,6 @@ report() {
test "yes" = "$want_querytrace" || \
echo " Very verbose query trace logging (--enable-querytrace)"
test "yes" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testing Framework (--with-cmocka)"
test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
......
......@@ -45,6 +45,8 @@ AC_DEFINE([__APPLE_USE_RFC_3542], [1], [Select RFC3542 IPv6 API on macOS])
AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
AS_IF([test -z "$LIBTOOL"],
[AC_MSG_ERROR([The libtool script could not be found.])])
AC_PROG_INSTALL
AC_PROG_LN_S
AX_POSIX_SHELL
......@@ -680,40 +682,6 @@ AC_CHECK_FUNCS([sysconf])
AC_SUBST(ALWAYS_DEFINES)
AC_MSG_CHECKING(for libtool)
AC_ARG_WITH(libtool, AS_HELP_STRING([--with-libtool], [use GNU libtool]),
use_libtool="$withval", use_libtool="no")
case $use_libtool in
yes)
AC_MSG_RESULT(yes)
AM_PROG_LIBTOOL
O=lo
A=la
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
LIBTOOL_MODE_COMPILE='--mode=compile'
LIBTOOL_MODE_INSTALL='--mode=install'
LIBTOOL_MODE_LINK='--mode=link'
LIBTOOL_MODE_UNINSTALL='--mode=uninstall'
INSTALL_LIBRARY='${INSTALL_PROGRAM}'
AC_DEFINE([USE_LIBTOOL],[1],[Define if libtool is used for compilation])
;;
*)
AC_MSG_RESULT(no)
O=o
A=a
LIBTOOL=
AC_SUBST(LIBTOOL)
LIBTOOL_MKDEP_SED=
LIBTOOL_MODE_COMPILE=
LIBTOOL_MODE_INSTALL=
LIBTOOL_MODE_LINK=
LIBTOOL_MODE_UNINSTALL=
INSTALL_LIBRARY='${INSTALL_DATA}'
;;
esac
AC_SUBST(INSTALL_LIBRARY)
#
# Do we want to use pthread rwlock?
#
......@@ -1479,7 +1447,15 @@ AS_IF([test "$enable_backtrace" = "yes"],
# File name extension for static archive files, for those few places
# where they are treated differently from dynamic ones.
#
O=lo
A=la
SA=a
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
LIBTOOL_MODE_COMPILE='--mode=compile'
LIBTOOL_MODE_INSTALL='--mode=install'
LIBTOOL_MODE_LINK='--mode=link'
LIBTOOL_MODE_UNINSTALL='--mode=uninstall'
INSTALL_LIBRARY='${INSTALL_PROGRAM}'
AC_SUBST(O)
AC_SUBST(A)
......@@ -1489,6 +1465,7 @@ AC_SUBST(LIBTOOL_MODE_COMPILE)
AC_SUBST(LIBTOOL_MODE_INSTALL)
AC_SUBST(LIBTOOL_MODE_LINK)
AC_SUBST(LIBTOOL_MODE_UNINSTALL)
AC_SUBST(INSTALL_LIBRARY)
BIND9_CO_RULE=".c.$O:"
AC_SUBST(BIND9_CO_RULE)
......@@ -2398,33 +2375,19 @@ AS_IF([test "$with_dlopen" = "yes"],
LDFLAGS="${LDFLAGS} -Wl,--export-dynamic"
SO_CFLAGS="-fPIC"
SO_LDFLAGS=""
AS_IF([test "$use_libtool" = "yes"],[
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
],[
SO_LDFLAGS="-shared"
SO_LD="${CC}"
])
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
],
[*-freebsd*|*-openbsd*|*-netbsd*],[
LDFLAGS="${LDFLAGS} -Wl,-E"
SO_CFLAGS="-fpic"
AS_IF([test "$use_libtool" = "yes"],[
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
],[
SO_LDFLAGS="-shared"
SO_LD="${CC}"
])
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
],
[*-darwin*],[
SO_CFLAGS="-fPIC"
SO_LD="${CC}"
AS_IF([test "$use_libtool" = "yes"],[
SO_LDFLAGS="-Xcompiler -dynamiclib -undefined dynamic_lookup"
],[
SO_LDFLAGS="-dynamiclib -undefined dynamic_lookup"
])
SO_LDFLAGS="-Xcompiler -dynamiclib -undefined dynamic_lookup"
],
[*-solaris*],[
SO_CFLAGS="-KPIC"
......@@ -2439,17 +2402,12 @@ AS_IF([test "$with_dlopen" = "yes"],
[
SO_CFLAGS="-fPIC"
])
AS_IF([test "$GCC" = "yes"],[
SO_CFLAGS="-fPIC"
AS_IF([test -z "$SO_LD"],
[AS_IF([test "$use_libtool" = "yes"],[
SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
],[
SO_LDFLAGS="-shared"
SO_LD="${CC}"
])
])
AS_IF([test "$GCC" = "yes"],
[SO_CFLAGS="-fPIC"
AS_IF([test -z "$SO_LD"],
[SO_LDFLAGS="-Xcompiler -shared"
SO_LD="${CC}"
])
])
# If we still don't know how to make shared objects, don't make any.
AS_IF([test -n "$SO_LD"],
......@@ -2902,7 +2860,6 @@ report() {
echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
test "yes" = "$enable_backtrace" && \
echo " Print backtrace on crash (--enable-backtrace)"
test "no" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "yes" = "$want_querytrace" && \
echo " Very verbose query trace logging (--enable-querytrace)"
test "no" = "$with_cmocka" || echo " CMocka Unit Testing Framework (--with-cmocka)"
......@@ -2959,7 +2916,6 @@ report() {
test "yes" = "$want_querytrace" || \
echo " Very verbose query trace logging (--enable-querytrace)"
test "yes" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testing Framework (--with-cmocka)"
test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
......
......@@ -38,7 +38,6 @@
#include "nstest.h"
#if defined(USE_LIBTOOL) || LD_WRAP
static int
_setup(void **state) {
isc_result_t result;
......@@ -139,20 +138,15 @@ notify_start(void **state) {
ns_test_cleanup_zone();
isc_nmhandle_unref(client->handle);
}
#endif /* if defined(USE_LIBTOOL) || LD_WRAP */
int
main(void) {
#if defined(USE_LIBTOOL) || LD_WRAP
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(notify_start, _setup,
_teardown),
};
return (cmocka_run_group_tests(tests, NULL, NULL));
#else /* if defined(USE_LIBTOOL) || LD_WRAP */
print_message("1..0 # Skip notify_test requires libtool or LD_WRAP\n");
#endif /* if defined(USE_LIBTOOL) || LD_WRAP */
}
#else /* HAVE_CMOCKA && !__SANITIZE_ADDRESS__ */
......
......@@ -34,7 +34,6 @@
#include "nstest.h"
#if defined(USE_LIBTOOL) || LD_WRAP
static int
_setup(void **state) {
isc_result_t result;
......@@ -600,11 +599,9 @@ ns__query_start_test(void **state) {
run_start_test(&tests[i]);
}
}
#endif /* if defined(USE_LIBTOOL) || LD_WRAP */
int
main(void) {
#if defined(USE_LIBTOOL) || LD_WRAP
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(ns__query_sfcache_test, _setup,
_teardown),
......@@ -613,9 +610,6 @@ main(void) {
};
return (cmocka_run_group_tests(tests, NULL, NULL));
#else /* if defined(USE_LIBTOOL) || LD_WRAP */
print_message("1..0 # Skip query_test requires libtool or LD_WRAP\n");
#endif /* if defined(USE_LIBTOOL) || LD_WRAP */
}
#else /* HAVE_CMOCKA && !__SANITIZE_ADDRESS__ */
......
......@@ -206,46 +206,8 @@ MKDEP = ${SHELL} ${top_builddir}/make/mkdep
### ${FINALBUILDCMD}
### See bin/check/Makefile.in for a complete example of the use of LIBS0.
###
FINALBUILDCMD = if [ X"${MKSYMTBL_PROGRAM}" = X -o X"$${MAKE_SYMTABLE:-${ALWAYS_MAKE_SYMTABLE}}" = X ] ; then \
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} ${LDFLAGS} \
FINALBUILDCMD = ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} ${LDFLAGS} \
-o $@ $${BASEOBJS} $${LIBS0} ${LIBS}; \
else \
rm -f $@tmp0; \
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} ${LDFLAGS} \
-o $@tmp0 $${BASEOBJS} $${LIBS0} ${LIBS} || exit 1; \
rm -f $@-symtbl.c $@-symtbl.@O@; \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
-o $@-symtbl.c $@tmp0 || exit 1; \
$(MAKE) $@-symtbl.@O@ || exit 1; \
rm -f $@tmp1; \
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} ${LDFLAGS} \
-o $@tmp1 $${BASEOBJS} $@-symtbl.@O@ $${LIBS0} ${NOSYMLIBS} || exit 1; \
rm -f $@-symtbl.c $@-symtbl.@O@; \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
-o $@-symtbl.c $@tmp1 || exit 1; \
$(MAKE) $@-symtbl.@O@ || exit 1; \
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} ${LDFLAGS} \
-o $@tmp2 $${BASEOBJS} $@-symtbl.@O@ $${LIBS0} ${NOSYMLIBS}; \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
-o $@-symtbl2.c $@tmp2; \
count=0; \
until diff $@-symtbl.c $@-symtbl2.c > /dev/null ; \
do \
count=`expr $$count + 1` ; \
test $$count = 42 && exit 1 ; \
rm -f $@-symtbl.c $@-symtbl.@O@; \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
-o $@-symtbl.c $@tmp2 || exit 1; \
$(MAKE) $@-symtbl.@O@ || exit 1; \
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${ALL_CFLAGS} \
${LDFLAGS} -o $@tmp2 $${BASEOBJS} $@-symtbl.@O@ \
$${LIBS0} ${NOSYMLIBS}; \
${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
-o $@-symtbl2.c $@tmp2; \
done ; \
mv $@tmp2 $@; \
rm -f $@tmp0 $@tmp1 $@tmp2 $@-symtbl2.c; \
fi
cleandir: distclean
superclean: maintainer-clean
......@@ -333,16 +295,6 @@ DBLATEX = @DBLATEX@
W3M = @W3M@
PANDOC = @PANDOC@
###
### Script language program used to create internal symbol tables
###
MKSYMTBL_PROGRAM = @MKSYMTBL_PROGRAM@
###
### Switch to create internal symbol table selectively
###
ALWAYS_MAKE_SYMTABLE = @ALWAYS_MAKE_SYMTABLE@
###
### DocBook -> HTML
### DocBook -> man page
......
......@@ -38,25 +38,18 @@ then
# show backtrace via gdb(1).
broken_tests=$(kyua_report | awk '$2 == "->" && ( $3 == "broken:" || $3 == "failed:" ) { print $1 }')
if [ -n "${CI}" ] && [ "$(id -u)" -eq 0 ] && [ -n "${broken_tests}" ] && [ -n "${GDB}" ]; then
if grep '^#define USE_LIBTOOL 1$' "${TOP}/config.h" >/dev/null; then
# kyua debug command misidentifies broken binary when libtool is used
# to configure BIND (see https://github.com/jmmv/kyua/issues/207).
# Here we try "trick" kyua use our custom gdb script instead
# of using gdb(1) directly. That's why this part needs to be run as root
# and, for safety reasons, only in the CI.
mv "${GDB}" "${GDB}.orig"
cp "${TOP}/unit/gdb" "${GDB}"
for test in ${broken_tests}; do
echo
${KYUA} debug "${test}"
done
mv "${GDB}.orig" "${GDB}"
else
for test in ${broken_tests}; do
echo
${KYUA} debug "${test}"
done
fi
# kyua debug command misidentifies broken binary when libtool is used
# to configure BIND (see https://github.com/jmmv/kyua/issues/207).
# Here we try "trick" kyua use our custom gdb script instead
# of using gdb(1) directly. That's why this part needs to be run as root
# and, for safety reasons, only in the CI.
mv "${GDB}" "${GDB}.orig"
cp "${TOP}/unit/gdb" "${GDB}"
for test in ${broken_tests}; do
echo
${KYUA} debug "${test}"
done
mv "${GDB}.orig" "${GDB}"
fi
if [ "${status}" -eq 0 ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment