From c463808992abd450d5469befe9f7e67b4732cb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Tue, 10 Mar 2020 13:35:18 +0100 Subject: [PATCH] Remove the ability to generate internal symbol table The internal symbol table cannot be generated when libtool is in use, which is going to be a mandatory in the next commit. --- configure | 54 --------------------------- configure.ac | 45 ---------------------- util/copyrights | 1 - util/mksymtbl.pl | 97 ------------------------------------------------ 4 files changed, 197 deletions(-) delete mode 100755 util/mksymtbl.pl diff --git a/configure b/configure index 83c2d0a5c5..9b5b3f4aea 100755 --- a/configure +++ b/configure @@ -718,8 +718,6 @@ LIBTOOL_MKDEP_SED SA A O -ALWAYS_MAKE_SYMTABLE -MKSYMTBL_PROGRAM PURIFY purify_path MKDEPPROG @@ -924,7 +922,6 @@ with_zlib with_purify with_gperftools_profiler enable_backtrace -enable_symtable enable_tcp_fastopen with_readline enable_isc_spnego @@ -1631,8 +1628,6 @@ Optional Features: --enable-fips-mode enable FIPS mode in OpenSSL library [default=no] --enable-native-pkcs11 use native PKCS11 for public-key crypto [default=no] --enable-backtrace log stack backtrace on abort [default=yes] - --enable-symtable use internal symbol table for backtrace - [all|minimal(default)|none] --disable-tcp-fastopen disable TCP Fast Open support [default=yes] --disable-isc-spnego use SPNEGO from GSSAPI library --disable-chroot disable chroot @@ -12260,7 +12255,6 @@ if test "$enable_developer" = "yes"; then : test "${enable_querytrace+set}" = set || enable_querytrace=yes test "${with_cmocka+set}" = set || with_cmocka=yes test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes - test "${enable_symtable+set}" = set || enable_symtable=all test "${enable_warn_error+set}" = set || enable_warn_error=yes test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes test "${with_zlib+set}" = set || with_zlib=yes @@ -18768,50 +18762,6 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -# Check whether --enable-symtable was given. -if test "${enable_symtable+set}" = set; then : - enableval=$enable_symtable; want_symtable="$enableval" -else - want_symtable="minimal" -fi - -case $want_symtable in -yes|all|minimal) # "yes" is a hidden value equivalent to "minimal" - if test "" = "$PERL" - then - as_fn_error $? "Internal symbol table requires perl but no perl is found. -Install perl or explicitly disable the feature by --disable-symtable." "$LINENO" 5 - fi - if test "yes" = "$use_libtool"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Internal symbol table does not work with libtool. Disabling symbol table." >&5 -$as_echo "$as_me: WARNING: Internal symbol table does not work with libtool. Disabling symbol table." >&2;} - else - # we generate the internal symbol table only for those systems - # known to work to avoid unexpected build failure. Also, warn - # about unsupported systems when the feature is enabled - # manually. - case $host_os in - freebsd*|netbsd*|openbsd*|linux*|solaris*|darwin*) - MKSYMTBL_PROGRAM="$PERL" - if test "all" = "$want_symtable"; then - ALWAYS_MAKE_SYMTABLE="yes" - fi - ;; - *) - if test "yes" = "$want_symtable" -o "all" = "$want_symtable" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: this system is not known to generate internal symbol table safely; disabling it" >&5 -$as_echo "$as_me: WARNING: this system is not known to generate internal symbol table safely; disabling it" >&2;} - fi - esac - fi - ;; -*) - ;; -esac - - - # # File name extension for static archive files, for those few places # where they are treated differently from dynamic ones. @@ -26040,10 +25990,6 @@ report() { echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)" test "yes" = "$enable_backtrace" && \ echo " Print backtrace on crash (--enable-backtrace)" - test "minimal" = "$want_symtable" && \ - echo " Use symbol table for backtrace, named only (--enable-symtable)" - test "yes" = "$want_symtable" -o "all" = "$want_symtable" && \ - echo " Use symbol table for backtrace, all binaries (--enable-symtable=all)" test "no" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)" test "yes" = "$want_querytrace" && \ echo " Very verbose query trace logging (--enable-querytrace)" diff --git a/configure.ac b/configure.ac index 550326bcfe..25bfad04b0 100644 --- a/configure.ac +++ b/configure.ac @@ -94,7 +94,6 @@ AS_IF([test "$enable_developer" = "yes"], test "${enable_querytrace+set}" = set || enable_querytrace=yes test "${with_cmocka+set}" = set || with_cmocka=yes test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes - test "${enable_symtable+set}" = set || enable_symtable=all test "${enable_warn_error+set}" = set || enable_warn_error=yes test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes test "${with_zlib+set}" = set || with_zlib=yes @@ -1476,46 +1475,6 @@ AS_IF([test "$enable_backtrace" = "yes"], [AC_DEFINE([HAVE_LIBCTRACE], [1], [define if system have backtrace function])] )]) -AC_ARG_ENABLE(symtable, - AS_HELP_STRING([--enable-symtable], - [use internal symbol table for backtrace - [all|minimal(default)|none]]), - want_symtable="$enableval", want_symtable="minimal") -case $want_symtable in -yes|all|minimal) # "yes" is a hidden value equivalent to "minimal" - if test "" = "$PERL" - then - AC_MSG_ERROR([Internal symbol table requires perl but no perl is found. -Install perl or explicitly disable the feature by --disable-symtable.]) - fi - if test "yes" = "$use_libtool"; then - AC_MSG_WARN([Internal symbol table does not work with libtool. Disabling symbol table.]) - else - # we generate the internal symbol table only for those systems - # known to work to avoid unexpected build failure. Also, warn - # about unsupported systems when the feature is enabled - # manually. - case $host_os in - freebsd*|netbsd*|openbsd*|linux*|solaris*|darwin*) - MKSYMTBL_PROGRAM="$PERL" - if test "all" = "$want_symtable"; then - ALWAYS_MAKE_SYMTABLE="yes" - fi - ;; - *) - if test "yes" = "$want_symtable" -o "all" = "$want_symtable" - then - AC_MSG_WARN([this system is not known to generate internal symbol table safely; disabling it]) - fi - esac - fi - ;; -*) - ;; -esac -AC_SUBST(MKSYMTBL_PROGRAM) -AC_SUBST(ALWAYS_MAKE_SYMTABLE) - # # File name extension for static archive files, for those few places # where they are treated differently from dynamic ones. @@ -2943,10 +2902,6 @@ report() { echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)" test "yes" = "$enable_backtrace" && \ echo " Print backtrace on crash (--enable-backtrace)" - test "minimal" = "$want_symtable" && \ - echo " Use symbol table for backtrace, named only (--enable-symtable)" - test "yes" = "$want_symtable" -o "all" = "$want_symtable" && \ - echo " Use symbol table for backtrace, all binaries (--enable-symtable=all)" test "no" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)" test "yes" = "$want_querytrace" && \ echo " Very verbose query trace logging (--enable-querytrace)" diff --git a/util/copyrights b/util/copyrights index bdf10cda34..bff0ea4fc5 100644 --- a/util/copyrights +++ b/util/copyrights @@ -2589,7 +2589,6 @@ ./util/mdnbuildtest.sh SH 2000,2001,2004,2007,2012,2016,2018,2019,2020 ./util/memleak.pl PERL 1999,2000,2001,2004,2007,2012,2016,2018,2019,2020 ./util/merge_copyrights PERL 1998,1999,2000,2001,2003,2004,2005,2006,2007,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 -./util/mksymtbl.pl PERL 2009,2012,2016,2018,2019,2020 ./util/models.c C 2015,2016,2017,2018,2019,2020 ./util/nanny.pl PERL 2000,2001,2004,2007,2012,2016,2018,2019,2020 ./util/new-func PERL 2005,2007,2012,2016,2018,2019,2020 diff --git a/util/mksymtbl.pl b/util/mksymtbl.pl deleted file mode 100755 index 1a4891e231..0000000000 --- a/util/mksymtbl.pl +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright (C) Internet Systems Consortium, Inc. ("ISC") -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# See the COPYRIGHT file distributed with this work for additional -# information regarding copyright ownership. - -use strict; -use diagnostics; -$^W = 1; - -my $rev = '$Id$'; -$rev =~ s/\$//g; -$rev =~ s/,v//g; -$rev =~ s/Id: //; - -use Getopt::Std; -my %options; -getopts('i:o:', \%options); - -my ($binname, $need_uscorefix, $outputfile, $nsyms, $ostype, $nm_prog); -my %symmap; - -$binname = $ARGV[0]; -$need_uscorefix = 0; -if ($options{'o'}) { - $outputfile = $options{'o'}; -} else { - $outputfile = "symtbl.c"; -} - -# OS-depending configuration -$nm_prog = "nm"; -$ostype = `uname -s`; -chop($ostype); - -if ($options{'i'}) { - open(SYMBOLS, $options{'i'}) || die "failed to open $options{'i'}"; -} else { - open(SYMBOLS, "$nm_prog $binname |") || - die "failed to invoke utility to get symbols"; -} -open(TBLFILE, ">$outputfile") || die "failed to open output file: $outputfile"; - -$nsyms = 0; -while () { - my ($addr, $symbol) = (0, ""); - # *BSDs, Linux, etc. - if (/([0-9a-f]*)\s[tT]\s(.*)/) { - ($addr, $symbol) = ($1, $2); - # heuristics: some compilers add a "_" to all program - # defined symbols. Detect and fix it for a well known - # symbol of "main". - $need_uscorefix = 1 if ($symbol eq "_main"); - } - if ($symbol ne "") { - next if ($symmap{$addr}); - - $symmap{$addr} = $symbol; - $nsyms++; - } -} - -sub lhex { - my $la = substr($a, -8); - my $lb = substr($b, -8); - my $ha = substr($a, 0, length($a) - length($la)); - my $hb = substr($b, 0, length($b) - length($lb)); - $ha = "0" if ($ha eq ""); - $ha = "0" if ($hb eq ""); - if (hex($ha) != hex($hb)) { - $la = $ha; - $lb = $hb; - } - hex($la) <=> hex($lb) -} - -print TBLFILE "/*\n * Generated by $rev \n */\n"; -print TBLFILE "#include \n"; -print TBLFILE "const int isc__backtrace_nsymbols = $nsyms;\n"; -print TBLFILE "const isc_backtrace_symmap_t isc__backtrace_symtable[] = {\n"; -foreach (sort lhex keys(%symmap)) { - my ($addr, $symbol) = ($_, $symmap{$_}); - if ($need_uscorefix && $symbol =~ /^_(.*)/) { - $symbol = $1; - } - print TBLFILE "\t{ (void *)0x$addr, \"$symbol\" },\n"; -} -print TBLFILE "\t{ (void *)0x0, \"\" },\n"; -print TBLFILE "};\n"; - -close(TBLFILE); -close(SYMBOLS);