* libcody: fix --enable-checking=... [PR 98311]
@ 2020-12-16 14:22 Nathan Sidwell
2020-12-16 15:40 ` Jakub Jelinek
0 siblings, 1 reply; 3+ messages in thread
From: Nathan Sidwell @ 2020-12-16 14:22 UTC (permalink / raw)
To: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 303 bytes --]
Thanks Jakub for pointing at libcpp.
The -enable-checking configure code in libcody didn't play well with
us. This just uses libcpp's configurey for that piece.
libcody/
* configure.ac: Use libcpp's enable-checking code.
* configure: Rebuilt.
pushing to trunk
--
Nathan Sidwell
[-- Attachment #2: 98311.diff --]
[-- Type: text/x-patch, Size: 4123 bytes --]
diff --git i/libcody/configure w/libcody/configure
index 4cc03dcaa3a..76ff932d61b 100755
--- i/libcody/configure
+++ w/libcody/configure
@@ -1285,7 +1285,11 @@ Optional Features:
--enable-maintainer-mode
enable maintainer mode. Add rules to rebuild
configurey bits
- --enable-checking enable run-time checking
+ --enable-checking[=LIST]
+ enable expensive run-time checks. With LIST, enable
+ only specific categories of checks. Categories are:
+ yes,no,all,none,release. Flags are: misc,valgrind or
+ other strings
--enable-exceptions enable exceptions & rtti
Optional Packages:
@@ -2708,30 +2712,45 @@ _ACEOF
# Check whether --enable-checking was given.
if test "${enable_checking+set}" = set; then :
- enableval=$enable_checking;
+ enableval=$enable_checking; ac_checking_flags="${enableval}"
else
- enable_checking="yes"
+
+# Determine the default checks.
+if test x$is_release = x ; then
+ ac_checking_flags=yes
+else
+ ac_checking_flags=release
+fi
fi
-case $enable_checking in #(
- yes|all|yes,*) :
- nms_checking=yes ;; #(
- no|none|release) :
- nms_checking= ;; #(
- *) :
- as_fn_error $? "unknown check \"$enable_checking\"" "$LINENO" 5 ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking checking" >&5
-$as_echo_n "checking checking... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${nms_checking:-no}" >&5
-$as_echo "${nms_checking:-no}" >&6; }
-if test "$nms_checking" = yes ; then
+IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+ case $check in
+ # these set all the flags to specific states
+ yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+ no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
+ release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+ # these enable particular checks
+ assert) ac_assert_checking=1 ;;
+ misc) ac_checking=1 ;;
+ valgrind) ac_valgrind_checking=1 ;;
+ # accept
+ *) ;;
+ esac
+done
+IFS="$ac_save_IFS"
-cat >>confdefs.h <<_ACEOF
-#define NMS_CHECKING 0${nms_checking:+1}
-_ACEOF
+if test x$ac_checking != x ; then
+
+$as_echo "#define NMS_CHECKING 1" >>confdefs.h
+
+else
+ $as_echo "#define NMS_CHECKING 0" >>confdefs.h
fi
+
+
# Check whether --enable-exceptions was given.
if test "${enable_exceptions+set}" = set; then :
enableval=$enable_exceptions;
diff --git i/libcody/configure.ac w/libcody/configure.ac
index 31f041e6679..c3db5534f1f 100644
--- i/libcody/configure.ac
+++ w/libcody/configure.ac
@@ -24,7 +24,47 @@ NMS_LINK_OPT([-Wl,--no-undefined])
NMS_CONFIG_FILES([gdbinit dox.cfg])
NMS_BUGURL
-NMS_ENABLE_CHECKING
+dnl NMS_ENABLE_CHECKING
+dnl cloned from ../libcpp/configure.ac
+AC_ARG_ENABLE(checking,
+[AS_HELP_STRING([[--enable-checking[=LIST]]],
+ [enable expensive run-time checks. With LIST,
+ enable only specific categories of checks.
+ Categories are: yes,no,all,none,release.
+ Flags are: misc,valgrind or other strings])],
+[ac_checking_flags="${enableval}"],[
+# Determine the default checks.
+if test x$is_release = x ; then
+ ac_checking_flags=yes
+else
+ ac_checking_flags=release
+fi])
+IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+ case $check in
+ # these set all the flags to specific states
+ yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+ no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
+ release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+ # these enable particular checks
+ assert) ac_assert_checking=1 ;;
+ misc) ac_checking=1 ;;
+ valgrind) ac_valgrind_checking=1 ;;
+ # accept
+ *) ;;
+ esac
+done
+IFS="$ac_save_IFS"
+
+if test x$ac_checking != x ; then
+ AC_DEFINE(NMS_CHECKING, 1,
+[Define to 1 if you want more run-time sanity checks.])
+else
+ AC_DEFINE(NMS_CHECKING, 0)
+fi
+
+
NMS_ENABLE_EXCEPTIONS
AC_CONFIG_HEADERS([config.h])
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: libcody: fix --enable-checking=... [PR 98311]
2020-12-16 14:22 libcody: fix --enable-checking=... [PR 98311] Nathan Sidwell
@ 2020-12-16 15:40 ` Jakub Jelinek
2020-12-16 17:07 ` Nathan Sidwell
0 siblings, 1 reply; 3+ messages in thread
From: Jakub Jelinek @ 2020-12-16 15:40 UTC (permalink / raw)
To: Nathan Sidwell; +Cc: GCC Patches
On Wed, Dec 16, 2020 at 09:22:49AM -0500, Nathan Sidwell wrote:
> Thanks Jakub for pointing at libcpp.
>
> The -enable-checking configure code in libcody didn't play well with
> us. This just uses libcpp's configurey for that piece.
>
> libcody/
> * configure.ac: Use libcpp's enable-checking code.
> * configure: Rebuilt.
>
> pushing to trunk
This doesn't set is_release anywhere, which means when --enable-checking*
or --disable-checking isn't specified, it always treats it as
--enable-checking=yes, while the normal gcc behavior is treat only trunk
as --enable-checking=yes and treat release branches as
--enable-checking=release by default.
On the other side, nothing uses those ac_assert_checking and
ac_valgrind_checking variables, so it is a waste to compute those.
Is this ok if it passes testing?
2020-12-16 Jakub Jelinek <jakub@redhat.com>
* configure.ac: Compute is_release.
(NMS_ENABLE_CHECKING): Simplify but not computing ac_assert_checking
and ac_valgrind_checking the code doesn't use.
* configure: Regenerated.
--- libcody/configure.ac.jj 2020-12-16 16:14:49.468351790 +0100
+++ libcody/configure.ac 2020-12-16 16:23:57.630214135 +0100
@@ -23,6 +23,14 @@ NMS_TOOL_DIRS
NMS_LINK_OPT([-Wl,--no-undefined])
NMS_CONFIG_FILES([gdbinit dox.cfg])
+# Enable expensive internal checks
+is_release=
+if test -d $srcdir/../gcc \
+ && test -f $srcdir/../gcc/DEV-PHASE \
+ && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
+ is_release=yes
+fi
+
NMS_BUGURL
dnl NMS_ENABLE_CHECKING
dnl cloned from ../libcpp/configure.ac
@@ -44,13 +52,8 @@ for check in release $ac_checking_flags
do
case $check in
# these set all the flags to specific states
- yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
- no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
- release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
- # these enable particular checks
- assert) ac_assert_checking=1 ;;
- misc) ac_checking=1 ;;
- valgrind) ac_valgrind_checking=1 ;;
+ yes|all|misc) ac_checking=1 ;;
+ no|none|release) ac_checking= ;;
# accept
*) ;;
esac
--- libcody/configure.jj 2020-12-16 16:14:49.459351891 +0100
+++ libcody/configure 2020-12-16 16:29:28.204514512 +0100
@@ -2686,6 +2686,14 @@ configure_args=$ac_configure_args
+# Enable expensive internal checks
+is_release=
+if test -d $srcdir/../gcc \
+ && test -f $srcdir/../gcc/DEV-PHASE \
+ && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
+ is_release=yes
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking bugurl" >&5
$as_echo_n "checking bugurl... " >&6; }
@@ -2728,13 +2736,8 @@ for check in release $ac_checking_flags
do
case $check in
# these set all the flags to specific states
- yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
- no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
- release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
- # these enable particular checks
- assert) ac_assert_checking=1 ;;
- misc) ac_checking=1 ;;
- valgrind) ac_valgrind_checking=1 ;;
+ yes|all|misc) ac_checking=1 ;;
+ no|none|release) ac_checking= ;;
# accept
*) ;;
esac
Jakub
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: libcody: fix --enable-checking=... [PR 98311]
2020-12-16 15:40 ` Jakub Jelinek
@ 2020-12-16 17:07 ` Nathan Sidwell
0 siblings, 0 replies; 3+ messages in thread
From: Nathan Sidwell @ 2020-12-16 17:07 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: GCC Patches
On 12/16/20 10:40 AM, Jakub Jelinek wrote:
> On Wed, Dec 16, 2020 at 09:22:49AM -0500, Nathan Sidwell wrote:
>> Thanks Jakub for pointing at libcpp.
>>
>> The -enable-checking configure code in libcody didn't play well with
>> us. This just uses libcpp's configurey for that piece.
>>
>> libcody/
>> * configure.ac: Use libcpp's enable-checking code.
>> * configure: Rebuilt.
>>
>> pushing to trunk
>
> This doesn't set is_release anywhere, which means when --enable-checking*
> or --disable-checking isn't specified, it always treats it as
> --enable-checking=yes, while the normal gcc behavior is treat only trunk
> as --enable-checking=yes and treat release branches as
> --enable-checking=release by default.
>
> On the other side, nothing uses those ac_assert_checking and
> ac_valgrind_checking variables, so it is a waste to compute those.
>
> Is this ok if it passes testing?
yes. hehe, I checked that -enable-checking=set,of,options worked :)
> 2020-12-16 Jakub Jelinek <jakub@redhat.com>
>
> * configure.ac: Compute is_release.
> (NMS_ENABLE_CHECKING): Simplify but not computing ac_assert_checking
> and ac_valgrind_checking the code doesn't use.
> * configure: Regenerated.
>
> --- libcody/configure.ac.jj 2020-12-16 16:14:49.468351790 +0100
> +++ libcody/configure.ac 2020-12-16 16:23:57.630214135 +0100
> @@ -23,6 +23,14 @@ NMS_TOOL_DIRS
> NMS_LINK_OPT([-Wl,--no-undefined])
> NMS_CONFIG_FILES([gdbinit dox.cfg])
>
> +# Enable expensive internal checks
> +is_release=
> +if test -d $srcdir/../gcc \
> + && test -f $srcdir/../gcc/DEV-PHASE \
> + && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
> + is_release=yes
> +fi
> +
> NMS_BUGURL
> dnl NMS_ENABLE_CHECKING
> dnl cloned from ../libcpp/configure.ac
> @@ -44,13 +52,8 @@ for check in release $ac_checking_flags
> do
> case $check in
> # these set all the flags to specific states
> - yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
> - no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
> - release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
> - # these enable particular checks
> - assert) ac_assert_checking=1 ;;
> - misc) ac_checking=1 ;;
> - valgrind) ac_valgrind_checking=1 ;;
> + yes|all|misc) ac_checking=1 ;;
> + no|none|release) ac_checking= ;;
> # accept
> *) ;;
> esac
> --- libcody/configure.jj 2020-12-16 16:14:49.459351891 +0100
> +++ libcody/configure 2020-12-16 16:29:28.204514512 +0100
> @@ -2686,6 +2686,14 @@ configure_args=$ac_configure_args
>
>
>
> +# Enable expensive internal checks
> +is_release=
> +if test -d $srcdir/../gcc \
> + && test -f $srcdir/../gcc/DEV-PHASE \
> + && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
> + is_release=yes
> +fi
> +
> { $as_echo "$as_me:${as_lineno-$LINENO}: checking bugurl" >&5
> $as_echo_n "checking bugurl... " >&6; }
>
> @@ -2728,13 +2736,8 @@ for check in release $ac_checking_flags
> do
> case $check in
> # these set all the flags to specific states
> - yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
> - no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
> - release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
> - # these enable particular checks
> - assert) ac_assert_checking=1 ;;
> - misc) ac_checking=1 ;;
> - valgrind) ac_valgrind_checking=1 ;;
> + yes|all|misc) ac_checking=1 ;;
> + no|none|release) ac_checking= ;;
> # accept
> *) ;;
> esac
>
>
> Jakub
>
--
Nathan Sidwell
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-12-16 17:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-16 14:22 libcody: fix --enable-checking=... [PR 98311] Nathan Sidwell
2020-12-16 15:40 ` Jakub Jelinek
2020-12-16 17:07 ` Nathan Sidwell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).