From 2c016c64f533171e1342c1914754b017026c8ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tatuya=20JINMEI=20=E7=A5=9E=E6=98=8E=E9=81=94=E5=93=89?= Date: Wed, 11 Nov 2009 08:46:47 +0000 Subject: [PATCH] 2757. [cleanup] Enable internal symbol table for backtrace only for systems that are known to work. Currently, BSD variants, Linux and Solaris are supported. [RT# 20202] 9.7.0rc1 --- CHANGES | 4 ++++ configure.in | 26 +++++++++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index f4c4583f3e..0fa2895f28 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +2761. [cleanup] Enable internal symbol table for backtrace only for + systems that are known to work. Currently, BSD + variants, Linux and Solaris are supported. [RT# 20202] + 2760. [cleanup] Corrected named-compilezone usage summary. [RT #20533] 2759. [doc] Add information about .jbk/.jnw files to diff --git a/configure.in b/configure.in index c8b476c9e9..c36f43992d 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl esyscmd([sed "s/^/# /" COPYRIGHT])dnl AC_DIVERT_POP()dnl -AC_REVISION($Revision: 1.488 $) +AC_REVISION($Revision: 1.489 $) AC_INIT(lib/dns/name.c) AC_PREREQ(2.59) @@ -1367,8 +1367,7 @@ AC_ARG_ENABLE(symtable, [[all|minimal(default)|none]]], want_symtable="$enableval", want_symtable="minimal") case $want_symtable in -yes|all|minimal) - +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. @@ -1377,10 +1376,23 @@ Install perl or explicitly disable the feature by --disable-symtable.]) if test "$use_libtool" = "yes"; then AC_MSG_WARN([Internal symbol table does not work with libtool. Disabling symbol table.]) else - MKSYMTBL_PROGRAM="$PERL" - if test $want_symtable = all; then - ALWAYS_MAKE_SYMTABLE="yes" - fi + # 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 $want_symtable = all; then + ALWAYS_MAKE_SYMTABLE="yes" + fi + ;; + *) + if test $want_symtable = yes -o $want_symtable = all + then + AC_MSG_WARN([this system is not known to generate internal symbol table safely; disabling it]) + fi + esac fi ;; *)