Created
July 20, 2021 13:19
-
-
Save iains/72ebaac2f748ffdd70eb360e3d602ed0 to your computer and use it in GitHub Desktop.
WIP pr98821
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From ea19ab9479aa40d602650734f943cb85a259bd25 Mon Sep 17 00:00:00 2001 | |
From: Iain Sandoe <iain@sandoe.co.uk> | |
Date: Tue, 20 Jul 2021 14:00:38 +0100 | |
Subject: [PATCH] c++tools, configury: Configure with C++; test checking status | |
[PR98821]. | |
The configure fragments need to be built with a C++ compiler. | |
The stand-alone server uses diagnostic mechanisms in common with | |
GCC, but needs to define implementations of the asserts and supporting | |
output funtions. | |
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> | |
Co-authored-by: Jakub Jelinek <jakub@redhat.com> | |
PR c++/98821 - modules : c++tools configures with CC but code fragments assume CXX. | |
PR c++/98821 | |
c++tools/ChangeLog: | |
* config.h.in: Regenerate. | |
* configure: Regenerate. | |
* configure.ac: Configure using C++. Pull logic to | |
detect enabled chcking modes. | |
* server.cc (AI_NUMERICSERV): Define a fallback value. | |
(gcc_assert): New. | |
(gcc_checking_assert): New. | |
(gcc_unreachable): New. | |
(fancy_abort): Only build when checking is enabled. | |
--- | |
c++tools/config.h.in | 10 + | |
c++tools/configure | 763 +++++++----------------------------------- | |
c++tools/configure.ac | 51 +++ | |
c++tools/server.cc | 35 ++ | |
4 files changed, 216 insertions(+), 643 deletions(-) | |
diff --git a/c++tools/config.h.in b/c++tools/config.h.in | |
index bfb49582357..555008ad899 100644 | |
--- a/c++tools/config.h.in | |
+++ b/c++tools/config.h.in | |
@@ -1,5 +1,15 @@ | |
/* config.h.in. Generated from configure.ac by autoheader. */ | |
+/* Define to 1 if you want more run-time sanity checks. */ | |
+#undef CHECKING_P | |
+ | |
+/* Define if you want assertions enabled. This is a cheap check. */ | |
+#undef ENABLE_ASSERT_CHECKING | |
+ | |
+/* Define if you want to workaround valgrind (a memory checker) warnings about | |
+ possible memory leaks because of libcpp use of interior pointers. */ | |
+#undef ENABLE_VALGRIND_CHECKING | |
+ | |
/* Define if accept4 provided. */ | |
#undef HAVE_ACCEPT4 | |
diff --git a/c++tools/configure b/c++tools/configure | |
index a288f7abe5d..dc8b711763f 100755 | |
--- a/c++tools/configure | |
+++ b/c++tools/configure | |
@@ -626,10 +626,7 @@ NETLIBS | |
get_gcc_base_ver | |
EGREP | |
GREP | |
-CPP | |
-ac_ct_CC | |
-CFLAGS | |
-CC | |
+CXXCPP | |
PIEFLAG | |
MAINTAINER | |
CXX_AUX_TOOLS | |
@@ -701,6 +698,7 @@ ac_user_opts=' | |
enable_option_checking | |
enable_c___tools | |
enable_maintainer_mode | |
+enable_checking | |
enable_default_pie | |
with_gcc_major_version_only | |
' | |
@@ -713,9 +711,7 @@ LDFLAGS | |
LIBS | |
CPPFLAGS | |
CCC | |
-CC | |
-CFLAGS | |
-CPP' | |
+CXXCPP' | |
# Initialize some variables set by options. | |
@@ -1332,6 +1328,11 @@ Optional Features: | |
--enable-maintainer-mode | |
enable maintainer mode. Add rules to rebuild | |
configurey bits | |
+ --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-default-pie enable Position Independent Executable as default | |
Optional Packages: | |
@@ -1348,9 +1349,7 @@ Some influential environment variables: | |
LIBS libraries to pass to the linker, e.g. -l<library> | |
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if | |
you have headers in a nonstandard directory <include dir> | |
- CC C compiler command | |
- CFLAGS C compiler flags | |
- CPP C preprocessor | |
+ CXXCPP C++ preprocessor | |
Use these variables to override the choices made by `configure' or to help | |
it to find libraries and programs with nonstandard names/locations. | |
@@ -1470,48 +1469,10 @@ fi | |
} # ac_fn_cxx_try_compile | |
-# ac_fn_c_try_compile LINENO | |
-# -------------------------- | |
-# Try to compile conftest.$ac_ext, and return whether this succeeded. | |
-ac_fn_c_try_compile () | |
-{ | |
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
- rm -f conftest.$ac_objext | |
- if { { ac_try="$ac_compile" | |
-case "(($ac_try" in | |
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
- *) ac_try_echo=$ac_try;; | |
-esac | |
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | |
-$as_echo "$ac_try_echo"; } >&5 | |
- (eval "$ac_compile") 2>conftest.err | |
- ac_status=$? | |
- if test -s conftest.err; then | |
- grep -v '^ *+' conftest.err >conftest.er1 | |
- cat conftest.er1 >&5 | |
- mv -f conftest.er1 conftest.err | |
- fi | |
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
- test $ac_status = 0; } && { | |
- test -z "$ac_c_werror_flag" || | |
- test ! -s conftest.err | |
- } && test -s conftest.$ac_objext; then : | |
- ac_retval=0 | |
-else | |
- $as_echo "$as_me: failed program was:" >&5 | |
-sed 's/^/| /' conftest.$ac_ext >&5 | |
- | |
- ac_retval=1 | |
-fi | |
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
- as_fn_set_status $ac_retval | |
- | |
-} # ac_fn_c_try_compile | |
- | |
-# ac_fn_c_try_cpp LINENO | |
-# ---------------------- | |
+# ac_fn_cxx_try_cpp LINENO | |
+# ------------------------ | |
# Try to preprocess conftest.$ac_ext, and return whether this succeeded. | |
-ac_fn_c_try_cpp () | |
+ac_fn_cxx_try_cpp () | |
{ | |
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
if { { ac_try="$ac_cpp conftest.$ac_ext" | |
@@ -1530,7 +1491,7 @@ $as_echo "$ac_try_echo"; } >&5 | |
fi | |
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
test $ac_status = 0; } > conftest.i && { | |
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || | |
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || | |
test ! -s conftest.err | |
}; then : | |
ac_retval=0 | |
@@ -1543,14 +1504,14 @@ fi | |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
as_fn_set_status $ac_retval | |
-} # ac_fn_c_try_cpp | |
+} # ac_fn_cxx_try_cpp | |
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES | |
-# ------------------------------------------------------- | |
+# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES | |
+# --------------------------------------------------------- | |
# Tests whether HEADER exists, giving a warning if it cannot be compiled using | |
# the include files in INCLUDES and setting the cache variable VAR | |
# accordingly. | |
-ac_fn_c_check_header_mongrel () | |
+ac_fn_cxx_check_header_mongrel () | |
{ | |
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
if eval \${$3+:} false; then : | |
@@ -1571,7 +1532,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
$4 | |
#include <$2> | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_header_compiler=yes | |
else | |
ac_header_compiler=no | |
@@ -1587,7 +1548,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
/* end confdefs.h. */ | |
#include <$2> | |
_ACEOF | |
-if ac_fn_c_try_cpp "$LINENO"; then : | |
+if ac_fn_cxx_try_cpp "$LINENO"; then : | |
ac_header_preproc=yes | |
else | |
ac_header_preproc=no | |
@@ -1597,7 +1558,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext | |
$as_echo "$ac_header_preproc" >&6; } | |
# So? What about this header? | |
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( | |
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( | |
yes:no: ) | |
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 | |
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} | |
@@ -1630,13 +1591,13 @@ $as_echo "$ac_res" >&6; } | |
fi | |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
-} # ac_fn_c_check_header_mongrel | |
+} # ac_fn_cxx_check_header_mongrel | |
-# ac_fn_c_try_run LINENO | |
-# ---------------------- | |
+# ac_fn_cxx_try_run LINENO | |
+# ------------------------ | |
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes | |
# that executables *can* be run. | |
-ac_fn_c_try_run () | |
+ac_fn_cxx_try_run () | |
{ | |
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
if { { ac_try="$ac_link" | |
@@ -1672,13 +1633,13 @@ fi | |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
as_fn_set_status $ac_retval | |
-} # ac_fn_c_try_run | |
+} # ac_fn_cxx_try_run | |
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES | |
-# ------------------------------------------------------- | |
+# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES | |
+# --------------------------------------------------------- | |
# Tests whether HEADER exists and can be compiled using the include files in | |
# INCLUDES, setting the cache variable VAR accordingly. | |
-ac_fn_c_check_header_compile () | |
+ac_fn_cxx_check_header_compile () | |
{ | |
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 | |
@@ -1691,7 +1652,7 @@ else | |
$4 | |
#include <$2> | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
eval "$3=yes" | |
else | |
eval "$3=no" | |
@@ -1703,12 +1664,12 @@ eval ac_res=\$$3 | |
$as_echo "$ac_res" >&6; } | |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
-} # ac_fn_c_check_header_compile | |
+} # ac_fn_cxx_check_header_compile | |
-# ac_fn_c_try_link LINENO | |
-# ----------------------- | |
+# ac_fn_cxx_try_link LINENO | |
+# ------------------------- | |
# Try to link conftest.$ac_ext, and return whether this succeeded. | |
-ac_fn_c_try_link () | |
+ac_fn_cxx_try_link () | |
{ | |
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
rm -f conftest.$ac_objext conftest$ac_exeext | |
@@ -1728,7 +1689,7 @@ $as_echo "$ac_try_echo"; } >&5 | |
fi | |
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
test $ac_status = 0; } && { | |
- test -z "$ac_c_werror_flag" || | |
+ test -z "$ac_cxx_werror_flag" || | |
test ! -s conftest.err | |
} && test -s conftest$ac_exeext && { | |
test "$cross_compiling" = yes || | |
@@ -1749,7 +1710,7 @@ fi | |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | |
as_fn_set_status $ac_retval | |
-} # ac_fn_c_try_link | |
+} # ac_fn_cxx_try_link | |
cat >config.log <<_ACEOF | |
This file contains any messages produced by compilers while | |
running configure, to aid debugging if configure makes a mistake. | |
@@ -2955,6 +2916,13 @@ done | |
test -n "$AUTOHEADER" || AUTOHEADER="$MISSING autoheader" | |
+ac_ext=cpp | |
+ac_cpp='$CXXCPP $CPPFLAGS' | |
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu | |
+ | |
+ | |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build C++ tools" >&5 | |
$as_echo_n "checking whether to build C++ tools... " >&6; } | |
# Check whether --enable-c++-tools was given. | |
@@ -2989,556 +2957,69 @@ $as_echo "$maintainer_mode" >&6; } | |
test "$maintainer_mode" = yes && MAINTAINER=yes | |
-# Check whether --enable-default-pie was given. | |
-# Check whether --enable-default-pie was given. | |
-if test "${enable_default_pie+set}" = set; then : | |
- enableval=$enable_default_pie; PIEFLAG=-fPIE | |
+# Check whether --enable-checking was given. | |
+if test "${enable_checking+set}" = set; then : | |
+ enableval=$enable_checking; ac_checking_flags="${enableval}" | |
else | |
- PIEFLAG= | |
-fi | |
- | |
- | |
-# Check if O_CLOEXEC is defined by fcntl | |
-ac_ext=c | |
-ac_cpp='$CPP $CPPFLAGS' | |
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
-ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
-if test -n "$ac_tool_prefix"; then | |
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. | |
-set dummy ${ac_tool_prefix}gcc; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- if test -n "$CC"; then | |
- ac_cv_prog_CC="$CC" # Let the user override the test. | |
+# Determine the default checks. | |
+if test x$is_release = x ; then | |
+ ac_checking_flags=yes | |
else | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
-do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- ac_cv_prog_CC="${ac_tool_prefix}gcc" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
-done | |
- done | |
-IFS=$as_save_IFS | |
- | |
+ ac_checking_flags=release | |
fi | |
fi | |
-CC=$ac_cv_prog_CC | |
-if test -n "$CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | |
-$as_echo "$CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
-fi | |
- | |
-fi | |
-if test -z "$ac_cv_prog_CC"; then | |
- ac_ct_CC=$CC | |
- # Extract the first word of "gcc", so it can be a program name with args. | |
-set dummy gcc; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_ac_ct_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- if test -n "$ac_ct_CC"; then | |
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | |
-else | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
+IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," | |
+for check in release $ac_checking_flags | |
do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- ac_cv_prog_ac_ct_CC="gcc" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
-done | |
- done | |
-IFS=$as_save_IFS | |
- | |
-fi | |
-fi | |
-ac_ct_CC=$ac_cv_prog_ac_ct_CC | |
-if test -n "$ac_ct_CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | |
-$as_echo "$ac_ct_CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
-fi | |
- | |
- if test "x$ac_ct_CC" = x; then | |
- CC="" | |
- else | |
- case $cross_compiling:$ac_tool_warned in | |
-yes:) | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | |
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | |
-ac_tool_warned=yes ;; | |
-esac | |
- CC=$ac_ct_CC | |
- fi | |
-else | |
- CC="$ac_cv_prog_CC" | |
-fi | |
- | |
-if test -z "$CC"; then | |
- if test -n "$ac_tool_prefix"; then | |
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. | |
-set dummy ${ac_tool_prefix}cc; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- if test -n "$CC"; then | |
- ac_cv_prog_CC="$CC" # Let the user override the test. | |
-else | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
-do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- ac_cv_prog_CC="${ac_tool_prefix}cc" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
-done | |
- done | |
-IFS=$as_save_IFS | |
- | |
-fi | |
-fi | |
-CC=$ac_cv_prog_CC | |
-if test -n "$CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | |
-$as_echo "$CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
-fi | |
- | |
- | |
- fi | |
-fi | |
-if test -z "$CC"; then | |
- # Extract the first word of "cc", so it can be a program name with args. | |
-set dummy cc; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- if test -n "$CC"; then | |
- ac_cv_prog_CC="$CC" # Let the user override the test. | |
-else | |
- ac_prog_rejected=no | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
-do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then | |
- ac_prog_rejected=yes | |
- continue | |
- fi | |
- ac_cv_prog_CC="cc" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
-done | |
- done | |
-IFS=$as_save_IFS | |
- | |
-if test $ac_prog_rejected = yes; then | |
- # We found a bogon in the path, so make sure we never use it. | |
- set dummy $ac_cv_prog_CC | |
- shift | |
- if test $# != 0; then | |
- # We chose a different compiler from the bogus one. | |
- # However, it has the same basename, so the bogon will be chosen | |
- # first if we set CC to just the basename; use the full file name. | |
- shift | |
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" | |
- fi | |
-fi | |
-fi | |
-fi | |
-CC=$ac_cv_prog_CC | |
-if test -n "$CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | |
-$as_echo "$CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
-fi | |
- | |
- | |
-fi | |
-if test -z "$CC"; then | |
- if test -n "$ac_tool_prefix"; then | |
- for ac_prog in cl.exe | |
- do | |
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. | |
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- if test -n "$CC"; then | |
- ac_cv_prog_CC="$CC" # Let the user override the test. | |
-else | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
-do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
+ 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 | |
- done | |
-IFS=$as_save_IFS | |
+IFS="$ac_save_IFS" | |
-fi | |
-fi | |
-CC=$ac_cv_prog_CC | |
-if test -n "$CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | |
-$as_echo "$CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
-fi | |
+if test x$ac_checking != x ; then | |
+$as_echo "#define CHECKING_P 1" >>confdefs.h | |
- test -n "$CC" && break | |
- done | |
-fi | |
-if test -z "$CC"; then | |
- ac_ct_CC=$CC | |
- for ac_prog in cl.exe | |
-do | |
- # Extract the first word of "$ac_prog", so it can be a program name with args. | |
-set dummy $ac_prog; ac_word=$2 | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | |
-$as_echo_n "checking for $ac_word... " >&6; } | |
-if ${ac_cv_prog_ac_ct_CC+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
else | |
- if test -n "$ac_ct_CC"; then | |
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | |
-else | |
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
-for as_dir in $PATH | |
-do | |
- IFS=$as_save_IFS | |
- test -z "$as_dir" && as_dir=. | |
- for ac_exec_ext in '' $ac_executable_extensions; do | |
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | |
- ac_cv_prog_ac_ct_CC="$ac_prog" | |
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
- break 2 | |
- fi | |
-done | |
- done | |
-IFS=$as_save_IFS | |
+ $as_echo "#define CHECKING_P 0" >>confdefs.h | |
-fi | |
-fi | |
-ac_ct_CC=$ac_cv_prog_ac_ct_CC | |
-if test -n "$ac_ct_CC"; then | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | |
-$as_echo "$ac_ct_CC" >&6; } | |
-else | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
-$as_echo "no" >&6; } | |
fi | |
+if test x$ac_assert_checking != x ; then | |
- test -n "$ac_ct_CC" && break | |
-done | |
- | |
- if test "x$ac_ct_CC" = x; then | |
- CC="" | |
- else | |
- case $cross_compiling:$ac_tool_warned in | |
-yes:) | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | |
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | |
-ac_tool_warned=yes ;; | |
-esac | |
- CC=$ac_ct_CC | |
- fi | |
-fi | |
+$as_echo "#define ENABLE_ASSERT_CHECKING 1" >>confdefs.h | |
fi | |
+if test x$ac_valgrind_checking != x ; then | |
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | |
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | |
-as_fn_error $? "no acceptable C compiler found in \$PATH | |
-See \`config.log' for more details" "$LINENO" 5; } | |
+$as_echo "#define ENABLE_VALGRIND_CHECKING 1" >>confdefs.h | |
-# Provide some information about the compiler. | |
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 | |
-set X $ac_compile | |
-ac_compiler=$2 | |
-for ac_option in --version -v -V -qversion; do | |
- { { ac_try="$ac_compiler $ac_option >&5" | |
-case "(($ac_try" in | |
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
- *) ac_try_echo=$ac_try;; | |
-esac | |
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | |
-$as_echo "$ac_try_echo"; } >&5 | |
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err | |
- ac_status=$? | |
- if test -s conftest.err; then | |
- sed '10a\ | |
-... rest of stderr output deleted ... | |
- 10q' conftest.err >conftest.er1 | |
- cat conftest.er1 >&5 | |
- fi | |
- rm -f conftest.er1 conftest.err | |
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | |
- test $ac_status = 0; } | |
-done | |
- | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 | |
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } | |
-if ${ac_cv_c_compiler_gnu+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
-/* end confdefs.h. */ | |
- | |
-int | |
-main () | |
-{ | |
-#ifndef __GNUC__ | |
- choke me | |
-#endif | |
- | |
- ; | |
- return 0; | |
-} | |
-_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
- ac_compiler_gnu=yes | |
-else | |
- ac_compiler_gnu=no | |
fi | |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
-ac_cv_c_compiler_gnu=$ac_compiler_gnu | |
-fi | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 | |
-$as_echo "$ac_cv_c_compiler_gnu" >&6; } | |
-if test $ac_compiler_gnu = yes; then | |
- GCC=yes | |
-else | |
- GCC= | |
-fi | |
-ac_test_CFLAGS=${CFLAGS+set} | |
-ac_save_CFLAGS=$CFLAGS | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 | |
-$as_echo_n "checking whether $CC accepts -g... " >&6; } | |
-if ${ac_cv_prog_cc_g+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
-else | |
- ac_save_c_werror_flag=$ac_c_werror_flag | |
- ac_c_werror_flag=yes | |
- ac_cv_prog_cc_g=no | |
- CFLAGS="-g" | |
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
-/* end confdefs.h. */ | |
- | |
-int | |
-main () | |
-{ | |
- | |
- ; | |
- return 0; | |
-} | |
-_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
- ac_cv_prog_cc_g=yes | |
-else | |
- CFLAGS="" | |
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
-/* end confdefs.h. */ | |
- | |
-int | |
-main () | |
-{ | |
- | |
- ; | |
- return 0; | |
-} | |
-_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
- | |
-else | |
- ac_c_werror_flag=$ac_save_c_werror_flag | |
- CFLAGS="-g" | |
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
-/* end confdefs.h. */ | |
- | |
-int | |
-main () | |
-{ | |
- | |
- ; | |
- return 0; | |
-} | |
-_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
- ac_cv_prog_cc_g=yes | |
-fi | |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
-fi | |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
-fi | |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
- ac_c_werror_flag=$ac_save_c_werror_flag | |
-fi | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 | |
-$as_echo "$ac_cv_prog_cc_g" >&6; } | |
-if test "$ac_test_CFLAGS" = set; then | |
- CFLAGS=$ac_save_CFLAGS | |
-elif test $ac_cv_prog_cc_g = yes; then | |
- if test "$GCC" = yes; then | |
- CFLAGS="-g -O2" | |
- else | |
- CFLAGS="-g" | |
- fi | |
-else | |
- if test "$GCC" = yes; then | |
- CFLAGS="-O2" | |
- else | |
- CFLAGS= | |
- fi | |
-fi | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 | |
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } | |
-if ${ac_cv_prog_cc_c89+:} false; then : | |
- $as_echo_n "(cached) " >&6 | |
+# Check whether --enable-default-pie was given. | |
+# Check whether --enable-default-pie was given. | |
+if test "${enable_default_pie+set}" = set; then : | |
+ enableval=$enable_default_pie; PIEFLAG=-fPIE | |
else | |
- ac_cv_prog_cc_c89=no | |
-ac_save_CC=$CC | |
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
-/* end confdefs.h. */ | |
-#include <stdarg.h> | |
-#include <stdio.h> | |
-struct stat; | |
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ | |
-struct buf { int x; }; | |
-FILE * (*rcsopen) (struct buf *, struct stat *, int); | |
-static char *e (p, i) | |
- char **p; | |
- int i; | |
-{ | |
- return p[i]; | |
-} | |
-static char *f (char * (*g) (char **, int), char **p, ...) | |
-{ | |
- char *s; | |
- va_list v; | |
- va_start (v,p); | |
- s = g (p, va_arg (v,int)); | |
- va_end (v); | |
- return s; | |
-} | |
- | |
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has | |
- function prototypes and stuff, but not '\xHH' hex character constants. | |
- These don't provoke an error unfortunately, instead are silently treated | |
- as 'x'. The following induces an error, until -std is added to get | |
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an | |
- array size at least. It's necessary to write '\x00'==0 to get something | |
- that's true only with -std. */ | |
-int osf4_cc_array ['\x00' == 0 ? 1 : -1]; | |
- | |
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters | |
- inside strings and character constants. */ | |
-#define FOO(x) 'x' | |
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; | |
- | |
-int test (int i, double x); | |
-struct s1 {int (*f) (int a);}; | |
-struct s2 {int (*f) (double a);}; | |
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); | |
-int argc; | |
-char **argv; | |
-int | |
-main () | |
-{ | |
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; | |
- ; | |
- return 0; | |
-} | |
-_ACEOF | |
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ | |
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" | |
-do | |
- CC="$ac_save_CC $ac_arg" | |
- if ac_fn_c_try_compile "$LINENO"; then : | |
- ac_cv_prog_cc_c89=$ac_arg | |
-fi | |
-rm -f core conftest.err conftest.$ac_objext | |
- test "x$ac_cv_prog_cc_c89" != "xno" && break | |
-done | |
-rm -f conftest.$ac_ext | |
-CC=$ac_save_CC | |
- | |
+ PIEFLAG= | |
fi | |
-# AC_CACHE_VAL | |
-case "x$ac_cv_prog_cc_c89" in | |
- x) | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | |
-$as_echo "none needed" >&6; } ;; | |
- xno) | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | |
-$as_echo "unsupported" >&6; } ;; | |
- *) | |
- CC="$CC $ac_cv_prog_cc_c89" | |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 | |
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; | |
-esac | |
-if test "x$ac_cv_prog_cc_c89" != xno; then : | |
-fi | |
-ac_ext=c | |
-ac_cpp='$CPP $CPPFLAGS' | |
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
-ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
+# Check if O_CLOEXEC is defined by fcntl | |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 | |
$as_echo_n "checking for O_CLOEXEC... " >&6; } | |
@@ -3559,7 +3040,7 @@ return open ("/dev/null", O_RDONLY | O_CLOEXEC); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_o_cloexec=yes | |
else | |
ac_cv_o_cloexec=no | |
@@ -3574,26 +3055,22 @@ $as_echo "#define HOST_HAS_O_CLOEXEC 1" >>confdefs.h | |
fi | |
-ac_ext=c | |
-ac_cpp='$CPP $CPPFLAGS' | |
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
-ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 | |
-$as_echo_n "checking how to run the C preprocessor... " >&6; } | |
-# On Suns, sometimes $CPP names a directory. | |
-if test -n "$CPP" && test -d "$CPP"; then | |
- CPP= | |
-fi | |
-if test -z "$CPP"; then | |
- if ${ac_cv_prog_CPP+:} false; then : | |
+ac_ext=cpp | |
+ac_cpp='$CXXCPP $CPPFLAGS' | |
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu | |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 | |
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; } | |
+if test -z "$CXXCPP"; then | |
+ if ${ac_cv_prog_CXXCPP+:} false; then : | |
$as_echo_n "(cached) " >&6 | |
else | |
- # Double quotes because CPP needs to be expanded | |
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" | |
+ # Double quotes because CXXCPP needs to be expanded | |
+ for CXXCPP in "$CXX -E" "/lib/cpp" | |
do | |
ac_preproc_ok=false | |
-for ac_c_preproc_warn_flag in '' yes | |
+for ac_cxx_preproc_warn_flag in '' yes | |
do | |
# Use a header file that comes with gcc, so configuring glibc | |
# with a fresh cross-compiler works. | |
@@ -3610,7 +3087,7 @@ do | |
#endif | |
Syntax error | |
_ACEOF | |
-if ac_fn_c_try_cpp "$LINENO"; then : | |
+if ac_fn_cxx_try_cpp "$LINENO"; then : | |
else | |
# Broken: fails on valid input. | |
@@ -3624,7 +3101,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext | |
/* end confdefs.h. */ | |
#include <ac_nonexistent.h> | |
_ACEOF | |
-if ac_fn_c_try_cpp "$LINENO"; then : | |
+if ac_fn_cxx_try_cpp "$LINENO"; then : | |
# Broken: success on invalid input. | |
continue | |
else | |
@@ -3642,17 +3119,17 @@ if $ac_preproc_ok; then : | |
fi | |
done | |
- ac_cv_prog_CPP=$CPP | |
+ ac_cv_prog_CXXCPP=$CXXCPP | |
fi | |
- CPP=$ac_cv_prog_CPP | |
+ CXXCPP=$ac_cv_prog_CXXCPP | |
else | |
- ac_cv_prog_CPP=$CPP | |
+ ac_cv_prog_CXXCPP=$CXXCPP | |
fi | |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 | |
-$as_echo "$CPP" >&6; } | |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 | |
+$as_echo "$CXXCPP" >&6; } | |
ac_preproc_ok=false | |
-for ac_c_preproc_warn_flag in '' yes | |
+for ac_cxx_preproc_warn_flag in '' yes | |
do | |
# Use a header file that comes with gcc, so configuring glibc | |
# with a fresh cross-compiler works. | |
@@ -3669,7 +3146,7 @@ do | |
#endif | |
Syntax error | |
_ACEOF | |
-if ac_fn_c_try_cpp "$LINENO"; then : | |
+if ac_fn_cxx_try_cpp "$LINENO"; then : | |
else | |
# Broken: fails on valid input. | |
@@ -3683,7 +3160,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext | |
/* end confdefs.h. */ | |
#include <ac_nonexistent.h> | |
_ACEOF | |
-if ac_fn_c_try_cpp "$LINENO"; then : | |
+if ac_fn_cxx_try_cpp "$LINENO"; then : | |
# Broken: success on invalid input. | |
continue | |
else | |
@@ -3701,15 +3178,15 @@ if $ac_preproc_ok; then : | |
else | |
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | |
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | |
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check | |
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check | |
See \`config.log' for more details" "$LINENO" 5; } | |
fi | |
-ac_ext=c | |
-ac_cpp='$CPP $CPPFLAGS' | |
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
-ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
+ac_ext=cpp | |
+ac_cpp='$CXXCPP $CPPFLAGS' | |
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | |
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu | |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 | |
@@ -3862,7 +3339,7 @@ main () | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_header_stdc=yes | |
else | |
ac_cv_header_stdc=no | |
@@ -3935,7 +3412,7 @@ main () | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_run "$LINENO"; then : | |
+if ac_fn_cxx_try_run "$LINENO"; then : | |
else | |
ac_cv_header_stdc=no | |
@@ -3959,7 +3436,7 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ | |
inttypes.h stdint.h unistd.h | |
do : | |
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | |
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default | |
+ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default | |
" | |
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : | |
cat >>confdefs.h <<_ACEOF | |
@@ -3973,7 +3450,7 @@ done | |
for ac_header in sys/mman.h | |
do : | |
- ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" | |
+ ac_fn_cxx_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" | |
if test "x$ac_cv_header_sys_mman_h" = xyes; then : | |
cat >>confdefs.h <<_ACEOF | |
#define HAVE_SYS_MMAN_H 1 | |
@@ -4016,7 +3493,7 @@ connect (fd, (sockaddr *)&un, sizeof (un)); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_af_unix=yes | |
else | |
ac_cv_af_unix=no | |
@@ -4070,7 +3547,7 @@ connect (fd, (sockaddr *)&in6, sizeof (in6)); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_af_inet6=yes | |
else | |
ac_cv_af_inet6=no | |
@@ -4111,7 +3588,7 @@ epoll_pwait (fd, 0, 0, -1, 0); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_epoll=yes | |
else | |
ac_cv_epoll=no | |
@@ -4147,7 +3624,7 @@ pselect (0, 0, 0, 0, 0, 0); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_pselect=yes | |
else | |
ac_cv_pselect=no | |
@@ -4184,7 +3661,7 @@ select (0, 0, 0, 0, 0); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_select=yes | |
else | |
ac_cv_select=no | |
@@ -4220,7 +3697,7 @@ int err = accept4 (1, 0, 0, SOCK_NONBLOCK); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_accept4=yes | |
else | |
ac_cv_accept4=no | |
@@ -4259,7 +3736,7 @@ const char *str = inet_ntop (AF_INET6, &in6, buf, sizeof (buf)); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_compile "$LINENO"; then : | |
+if ac_fn_cxx_try_compile "$LINENO"; then : | |
ac_cv_inet_ntop=yes | |
else | |
ac_cv_inet_ntop=no | |
@@ -4325,7 +3802,7 @@ for ac_lib in '' nsl; do | |
ac_res=-l$ac_lib | |
LIBS="-l$ac_lib $ac_func_search_save_LIBS" | |
fi | |
- if ac_fn_c_try_link "$LINENO"; then : | |
+ if ac_fn_cxx_try_link "$LINENO"; then : | |
ac_cv_search_gethostbyname=$ac_res | |
fi | |
rm -f core conftest.err conftest.$ac_objext \ | |
@@ -4381,7 +3858,7 @@ for ac_lib in '' socket; do | |
ac_res=-l$ac_lib | |
LIBS="-l$ac_lib $ac_func_search_save_LIBS" | |
fi | |
- if ac_fn_c_try_link "$LINENO"; then : | |
+ if ac_fn_cxx_try_link "$LINENO"; then : | |
ac_cv_search_socket=$ac_res | |
fi | |
rm -f core conftest.err conftest.$ac_objext \ | |
@@ -4431,7 +3908,7 @@ return socket (); | |
return 0; | |
} | |
_ACEOF | |
-if ac_fn_c_try_link "$LINENO"; then : | |
+if ac_fn_cxx_try_link "$LINENO"; then : | |
ac_cv_lib_socket_socket=yes | |
else | |
ac_cv_lib_socket_socket=no | |
diff --git a/c++tools/configure.ac b/c++tools/configure.ac | |
index 70fcb641db9..751ec02b72d 100644 | |
--- a/c++tools/configure.ac | |
+++ b/c++tools/configure.ac | |
@@ -41,6 +41,8 @@ MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing | |
AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf]) | |
AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader]) | |
+AC_LANG(C++) | |
+ | |
dnl Enabled by default | |
AC_MSG_CHECKING([whether to build C++ tools]) | |
AC_ARG_ENABLE(c++-tools, | |
@@ -67,6 +69,55 @@ AC_MSG_RESULT([$maintainer_mode]) | |
test "$maintainer_mode" = yes && MAINTAINER=yes | |
AC_SUBST(MAINTAINER) | |
+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(CHECKING_P, 1, | |
+[Define to 1 if you want more run-time sanity checks.]) | |
+else | |
+ AC_DEFINE(CHECKING_P, 0) | |
+fi | |
+ | |
+if test x$ac_assert_checking != x ; then | |
+ AC_DEFINE(ENABLE_ASSERT_CHECKING, 1, | |
+[Define if you want assertions enabled. This is a cheap check.]) | |
+fi | |
+ | |
+if test x$ac_valgrind_checking != x ; then | |
+ AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1, | |
+[Define if you want to workaround valgrind (a memory checker) warnings about | |
+ possible memory leaks because of libcpp use of interior pointers.]) | |
+fi | |
+ | |
# Check whether --enable-default-pie was given. | |
AC_ARG_ENABLE(default-pie, | |
[AS_HELP_STRING([--enable-default-pie], | |
diff --git a/c++tools/server.cc b/c++tools/server.cc | |
index fae3e78dc5d..bac11038679 100644 | |
--- a/c++tools/server.cc | |
+++ b/c++tools/server.cc | |
@@ -61,6 +61,10 @@ along with GCC; see the file COPYING3. If not see | |
# define gai_strerror(X) "" | |
#endif | |
+#ifndef AI_NUMERICSERV | |
+#define AI_NUMERICSERV 0 | |
+#endif | |
+ | |
#include <getopt.h> | |
// Select or epoll | |
@@ -92,6 +96,35 @@ along with GCC; see the file COPYING3. If not see | |
#define DIR_SEPARATOR '/' | |
#endif | |
+/* Imported from libcpp/system.h | |
+ Use gcc_assert(EXPR) to test invariants. */ | |
+#if ENABLE_ASSERT_CHECKING | |
+#define gcc_assert(EXPR) \ | |
+ ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0)) | |
+#elif (GCC_VERSION >= 4005) | |
+#define gcc_assert(EXPR) \ | |
+ ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0)) | |
+#else | |
+/* Include EXPR, so that unused variable warnings do not occur. */ | |
+#define gcc_assert(EXPR) ((void)(0 && (EXPR))) | |
+#endif | |
+ | |
+#if CHECKING_P | |
+#define gcc_checking_assert(EXPR) gcc_assert (EXPR) | |
+#else | |
+/* N.B.: in release build EXPR is not evaluated. */ | |
+#define gcc_checking_assert(EXPR) ((void)(0 && (EXPR))) | |
+#endif | |
+ | |
+/* Use gcc_unreachable() to mark unreachable locations (like an | |
+ unreachable default case of a switch. Do not use gcc_assert(0). */ | |
+#if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING | |
+#define gcc_unreachable() __builtin_unreachable () | |
+#else | |
+#define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__)) | |
+#endif | |
+ | |
+ | |
#if NETWORKING | |
struct netmask { | |
in6_addr addr; | |
@@ -202,11 +235,13 @@ internal_error (const char *fmt, ...) | |
/* Hooked to from gcc_assert & gcc_unreachable. */ | |
+#if ENABLE_ASSERT_CHECKING | |
void ATTRIBUTE_NORETURN ATTRIBUTE_COLD | |
fancy_abort (const char *file, int line, const char *func) | |
{ | |
internal_error ("in %s, at %s:%d", func, trim_src_file (file), line); | |
} | |
+#endif | |
/* Exploded on a signal. */ | |
-- | |
2.24.3 (Apple Git-128) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment