From cdce5c164ebf7b6c92f7eee633bd1552b1603438 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 1 Apr 2005 13:58:20 +0000 Subject: [PATCH] configure.ac (enable-checking): Explicitly set all variables for collective switch values. * configure.ac (enable-checking): Explicitly set all variables for collective switch values. Alphabetize variables. Rename ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as synonym for 'no'. * doc/install.texi (enable-checking): Update documentation. * configure: Rebuilt. From-SVN: r97390 --- gcc/ChangeLog | 9 ++++++++ gcc/configure | 53 ++++++++++++++++++++++++++------------------ gcc/configure.ac | 51 +++++++++++++++++++++++++----------------- gcc/doc/install.texi | 47 +++++++++++++++++++-------------------- 4 files changed, 95 insertions(+), 65 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3237308d6b5..e1b9540fc3d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-04-01 Nathan Sidwell + + * configure.ac (enable-checking): Explicitly set all variables for + collective switch values. Alphabetize variables. Rename + ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as + synonym for 'no'. + * doc/install.texi (enable-checking): Update documentation. + * configure: Rebuilt. + 2005-04-01 Kazu Hirata * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where diff --git a/gcc/configure b/gcc/configure index f2c70ba0682..b382766c1e3 100755 --- a/gcc/configure +++ b/gcc/configure @@ -867,8 +867,9 @@ Optional Features: --enable-checking=LIST enable expensive run-time checks. With LIST, enable only specific categories of checks. - Categories are: assert,fold,gc,gcac,misc, - rtlflag,rtl,runtime,tree,valgrind,release,yes,all; + Categories are: yes,no,all,none,release. + Flags are: assert,fold,gc,gcac,misc, + rtlflag,rtl,runtime,tree,valgrind. --enable-mapped-location location_t is fileline integer cookie --enable-coverage=LEVEL enable compiler's code coverage collection. @@ -6275,40 +6276,50 @@ fi fi; ac_assert_checking=1 ac_checking= -ac_tree_checking= +ac_fold_checking= +ac_gc_checking= +ac_gc_always_collect= ac_rtl_checking= ac_rtlflag_checking= ac_runtime_checking=1 -ac_gc_checking= -ac_gc_always_collect= -ac_fold_checking= +ac_tree_checking= +ac_valgrind_checking= IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," for check in $ac_checking_flags do case $check in + # these set all the flags to specific states yes) ac_assert_checking=1 ; ac_checking=1 ; - ac_tree_checking=1 ; ac_gc_checking=1 ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;; - no) ac_assert_checking= ; ac_checking= ; - ac_tree_checking= ; ac_rtl_checking= ; - ac_rtlflag_checking= ; ac_gc_checking= ; - ac_gc_always_collect= ; ac_fold_checking= ;; + ac_fold_checking= ; ac_gc_checking=1 ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking=1 ; ac_runtime_chacking=1 ; + ac_tree_checking=1 ; ac_valgrind_checking= ;; + no|none) ac_assert_checking= ; ac_checking= ; + ac_fold_checking= ; ac_gc_checking= ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking= ; ac_runtime_chacking= ; + ac_tree_checking= ; ac_valgrind_checking= ;; all) ac_assert_checking=1 ; ac_checking=1 ; - ac_tree_checking=1 ; ac_rtl_checking=1 ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1; - ac_gc_checking=1 ; ac_gc_always_collect=1 ; - ac_fold_checking=1 ;; - release) ac_assert_checking=1 ; ac_runtime_checking=1 ;; + ac_fold_checking=1 ; ac_gc_checking=1 ; + ac_gc_always_collect=1 ; ac_rtl_checking=1 ; + ac_rtlflag_checking=1 ; ac_runtime_checking=1 ; + ac_tree_checking=1 ; ac_valgrind_checking= ;; + release) ac_assert_checking=1 ; ac_checking= ; + ac_fold_checking= ; ac_gc_checking= ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking= ; ac_runtime_checking=1 ; + ac_tree_checking= ; ac_valgrind_checking= ;; + # these enable particular checks assert) ac_assert_checking=1 ;; fold) ac_fold_checking=1 ;; gc) ac_gc_checking=1 ;; gcac) ac_gc_always_collect=1 ;; misc) ac_checking=1 ;; - rtlflag) ac_rtlflag_checking=1 ;; rtl) ac_rtl_checking=1 ;; + rtlflag) ac_rtlflag_checking=1 ;; runtime) ac_runtime_checking=1 ;; tree) ac_tree_checking=1 ;; - valgrind) ac_checking_valgrind=1 ;; + valgrind) ac_valgrind_checking=1 ;; *) { { echo "$as_me:$LINENO: error: unknown check category $check" >&5 echo "$as_me: error: unknown check category $check" >&2;} { (exit 1); exit 1; }; } ;; @@ -6532,7 +6543,7 @@ fi -if test x$ac_checking_valgrind != x ; then +if test x$ac_valgrind_checking != x ; then # It is certainly possible that there's valgrind but no valgrind.h. # GCC relies on making annotations so we must have both. echo "$as_me:$LINENO: checking for VALGRIND_DISCARD in " >&5 @@ -7388,7 +7399,7 @@ if test "${gcc_cv_prog_makeinfo_modern+set}" = set; then else ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` - echo "configure:7381: version of makeinfo is $ac_prog_version" >&5 + echo "configure:7402: version of makeinfo is $ac_prog_version" >&5 case $ac_prog_version in '') gcc_cv_prog_makeinfo_modern=no;; 4.[2-9]*) diff --git a/gcc/configure.ac b/gcc/configure.ac index 46886fb2d7d..069711359b1 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -393,8 +393,9 @@ AC_ARG_ENABLE(checking, [ --enable-checking[=LIST] enable expensive run-time checks. With LIST, enable only specific categories of checks. - Categories are: assert,fold,gc,gcac,misc, - rtlflag,rtl,runtime,tree,valgrind,release,yes,all;], + Categories are: yes,no,all,none,release. + Flags are: assert,fold,gc,gcac,misc, + rtlflag,rtl,runtime,tree,valgrind.], [ac_checking_flags="${enableval}"],[ # Determine the default checks. if test x$is_release = x ; then @@ -404,40 +405,50 @@ else fi]) ac_assert_checking=1 ac_checking= -ac_tree_checking= +ac_fold_checking= +ac_gc_checking= +ac_gc_always_collect= ac_rtl_checking= ac_rtlflag_checking= ac_runtime_checking=1 -ac_gc_checking= -ac_gc_always_collect= -ac_fold_checking= +ac_tree_checking= +ac_valgrind_checking= IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," for check in $ac_checking_flags do case $check in + # these set all the flags to specific states yes) ac_assert_checking=1 ; ac_checking=1 ; - ac_tree_checking=1 ; ac_gc_checking=1 ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;; - no) ac_assert_checking= ; ac_checking= ; - ac_tree_checking= ; ac_rtl_checking= ; - ac_rtlflag_checking= ; ac_gc_checking= ; - ac_gc_always_collect= ; ac_fold_checking= ;; + ac_fold_checking= ; ac_gc_checking=1 ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking=1 ; ac_runtime_chacking=1 ; + ac_tree_checking=1 ; ac_valgrind_checking= ;; + no|none) ac_assert_checking= ; ac_checking= ; + ac_fold_checking= ; ac_gc_checking= ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking= ; ac_runtime_chacking= ; + ac_tree_checking= ; ac_valgrind_checking= ;; all) ac_assert_checking=1 ; ac_checking=1 ; - ac_tree_checking=1 ; ac_rtl_checking=1 ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1; - ac_gc_checking=1 ; ac_gc_always_collect=1 ; - ac_fold_checking=1 ;; - release) ac_assert_checking=1 ; ac_runtime_checking=1 ;; + ac_fold_checking=1 ; ac_gc_checking=1 ; + ac_gc_always_collect=1 ; ac_rtl_checking=1 ; + ac_rtlflag_checking=1 ; ac_runtime_checking=1 ; + ac_tree_checking=1 ; ac_valgrind_checking= ;; + release) ac_assert_checking=1 ; ac_checking= ; + ac_fold_checking= ; ac_gc_checking= ; + ac_gc_always_collect= ; ac_rtl_checking= ; + ac_rtlflag_checking= ; ac_runtime_checking=1 ; + ac_tree_checking= ; ac_valgrind_checking= ;; + # these enable particular checks assert) ac_assert_checking=1 ;; fold) ac_fold_checking=1 ;; gc) ac_gc_checking=1 ;; gcac) ac_gc_always_collect=1 ;; misc) ac_checking=1 ;; - rtlflag) ac_rtlflag_checking=1 ;; rtl) ac_rtl_checking=1 ;; + rtlflag) ac_rtlflag_checking=1 ;; runtime) ac_runtime_checking=1 ;; tree) ac_tree_checking=1 ;; - valgrind) ac_checking_valgrind=1 ;; + valgrind) ac_valgrind_checking=1 ;; *) AC_MSG_ERROR(unknown check category $check) ;; esac done @@ -505,7 +516,7 @@ dnl # an if statement. This was the source of very frustrating bugs dnl # in converting to autoconf 2.5x! AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no) -if test x$ac_checking_valgrind != x ; then +if test x$ac_valgrind_checking != x ; then # It is certainly possible that there's valgrind but no valgrind.h. # GCC relies on making annotations so we must have both. AC_MSG_CHECKING(for VALGRIND_DISCARD in ) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 12fc78d3a51..78c7c1f4b0a 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1099,30 +1099,29 @@ controlled by the Makefiles. @item --enable-checking @itemx --enable-checking=@var{list} -When you specify this option, the compiler is built to perform checking -of tree node types when referencing fields of that node, and some other -internal consistency checks. This does not change the generated code, -but adds error checking within the compiler. This will slow down the -compiler and may only work properly if you are building the compiler -with GCC@. This is on by default when building from CVS or snapshots, -but off for releases. More control over the checks may be had by -specifying @var{list}; the categories of checks available are -@samp{release}, @samp{assert}, @samp{misc}, @samp{tree}, @samp{gc}, -@samp{rtl}, @samp{rtlflag}, @samp{runtime}, @samp{fold}, @samp{gcac} and -@samp{valgrind}. The @samp{release} category enables only those checks -suitable for release builds, currently this is @samp{assert} and -@samp{runtime}. The check @samp{valgrind} requires the external -@command{valgrind} simulator, available from -@uref{http://valgrind.kde.org/}. The checks @samp{rtl}, @samp{gcac} and -@samp{valgrind} are very expensive. The default when @var{list} is not -specified is @samp{assert,misc,tree,gc,rtlflag,runtime}. That is also -the default for development builds, when @samp{--enable-checking} is not -specified. For release builds the default, when -@samp{--enable-checking} is not given, is @samp{release}. To disable -all checking, @samp{--disable-checking} must be explicitly requested. -Disabling assertions will make the compiler and runtime slightly faster -but increase the risk of undetected internal errors causing wrong code -to be generated. +When you specify this option, the compiler is built to perform internal +constency checks of the requested complexity. This does not change the +generated code, but adds error checking within the compiler. This will +slow down the compiler and may only work properly if you are building +the compiler with GCC@. This is @samp{yes} by default when building +from CVS or snapshots, but @samp{release} for releases. More control +over the checks may be had by specifying @var{list}. The categories of +checks available are @samp{yes} (most common checks +@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at +all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest +checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). +Individual checks can be enabled with these flags @samp{assert}, +@samp{fold}, @samp{gc}, @samp{gcac} @samp{misc}, @samp{rtl}, +@samp{rtlflag}, @samp{runtime}, @samp{tree}, and @samp{valgrind}. + +The @samp{valgrind} check requires the external @command{valgrind} +simulator, available from @uref{http://valgrind.kde.org/}. The +@samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very expensive. +To disable all checking, @samp{--disable-checking} or +@samp{--enable-checking=none} must be explicitly requested. Disabling +assertions will make the compiler and runtime slightly faster but +increase the risk of undetected internal errors causing wrong code to be +generated. @item --enable-coverage @itemx --enable-coverage=@var{level}