summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-04-28 14:01:40 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-04-28 14:01:40 +0000
commit279a935ff4bc1df86e090f8e28f15d70384514eb (patch)
treea5bc6249aa24285c664840fc0a7c18d7aea148b9
parent07357f2f5a81e008b78af738e5e0050d850425a8 (diff)
configure.ac: Do valgrind header checks unconditionally.
2014-04-28 Richard Biener <rguenther@suse.de> * configure.ac: Do valgrind header checks unconditionally. Add --enable-valgrind-annotations. * system.h: Guard valgrind header inclusion with ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING. * alloc-pool.c (pool_alloc, pool_free): Use ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING to guard possibly dead code. * config.in: Regenerated. * configure: Likewise. From-SVN: r209861
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/alloc-pool.c6
-rw-r--r--gcc/config.in6
-rwxr-xr-xgcc/configure65
-rw-r--r--gcc/configure.ac54
-rw-r--r--gcc/system.h2
6 files changed, 101 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 89930b0042c..3b3f613464d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2014-04-28 Richard Biener <rguenther@suse.de>
+
+ * configure.ac: Do valgrind header checks unconditionally.
+ Add --enable-valgrind-annotations.
+ * system.h: Guard valgrind header inclusion with
+ ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
+ * alloc-pool.c (pool_alloc, pool_free): Use
+ ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
+ to guard possibly dead code.
+ * config.in: Regenerated.
+ * configure: Likewise.
+
2014-04-28 Jeff Law <law@redhat.com>
PR tree-optimization/60902
diff --git a/gcc/alloc-pool.c b/gcc/alloc-pool.c
index dfb13ce55fb..87fbd8556fb 100644
--- a/gcc/alloc-pool.c
+++ b/gcc/alloc-pool.c
@@ -250,7 +250,7 @@ void *
pool_alloc (alloc_pool pool)
{
alloc_pool_list header;
-#ifdef ENABLE_VALGRIND_CHECKING
+#ifdef ENABLE_VALGRIND_ANNOTATIONS
int size;
#endif
@@ -265,7 +265,7 @@ pool_alloc (alloc_pool pool)
}
gcc_checking_assert (pool);
-#ifdef ENABLE_VALGRIND_CHECKING
+#ifdef ENABLE_VALGRIND_ANNOTATIONS
size = pool->elt_size - offsetof (allocation_object, u.data);
#endif
@@ -334,7 +334,7 @@ void
pool_free (alloc_pool pool, void *ptr)
{
alloc_pool_list header;
-#if defined(ENABLE_VALGRIND_CHECKING) || defined(ENABLE_CHECKING)
+#if defined(ENABLE_VALGRIND_ANNOTATIONS) || defined(ENABLE_CHECKING)
int size;
size = pool->elt_size - offsetof (allocation_object, u.data);
#endif
diff --git a/gcc/config.in b/gcc/config.in
index cebe0e5349c..c0ba36ea98b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -172,6 +172,12 @@
#endif
+/* Define to get calls to the valgrind runtime enabled. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_VALGRIND_ANNOTATIONS
+#endif
+
+
/* Define if you want to run subprograms and generated programs through
valgrind (a memory checker). This is extremely expensive. */
#ifndef USED_FOR_TARGET
diff --git a/gcc/configure b/gcc/configure
index e806873a04e..d912261c1cf 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -882,6 +882,7 @@ enable_werror_always
enable_checking
enable_coverage
enable_gather_detailed_mem_stats
+enable_valgrind_annotations
with_stabs
enable_multilib
enable_multiarch
@@ -1591,6 +1592,8 @@ Optional Features:
Values are opt, noopt, default is noopt
--enable-gather-detailed-mem-stats
enable detailed memory allocation stats gathering
+ --enable-valgrind-annotations
+ enable valgrind runtime interaction
--enable-multilib enable library support for multiple ABIs
--enable-multiarch enable support for multiarch paths
--enable-__cxa_atexit enable __cxa_atexit for C++
@@ -6772,12 +6775,11 @@ fi
-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.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_DISCARD in <valgrind/memcheck.h>" >&5
+# It is certainly possible that there's valgrind but no valgrind.h.
+# GCC relies on making annotations so we must have both.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_DISCARD in <valgrind/memcheck.h>" >&5
$as_echo_n "checking for VALGRIND_DISCARD in <valgrind/memcheck.h>... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <valgrind/memcheck.h>
#ifndef VALGRIND_DISCARD
@@ -6790,11 +6792,11 @@ else
gcc_cv_header_valgrind_memcheck_h=no
fi
rm -f conftest.err conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_valgrind_memcheck_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_valgrind_memcheck_h" >&5
$as_echo "$gcc_cv_header_valgrind_memcheck_h" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_DISCARD in <memcheck.h>" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_DISCARD in <memcheck.h>" >&5
$as_echo_n "checking for VALGRIND_DISCARD in <memcheck.h>... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <memcheck.h>
#ifndef VALGRIND_DISCARD
@@ -6807,8 +6809,20 @@ else
gcc_cv_header_memcheck_h=no
fi
rm -f conftest.err conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_memcheck_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_memcheck_h" >&5
$as_echo "$gcc_cv_header_memcheck_h" >&6; }
+if test $gcc_cv_header_valgrind_memcheck_h = yes; then
+
+$as_echo "#define HAVE_VALGRIND_MEMCHECK_H 1" >>confdefs.h
+
+fi
+if test $gcc_cv_header_memcheck_h = yes; then
+
+$as_echo "#define HAVE_MEMCHECK_H 1" >>confdefs.h
+
+fi
+
+if test x$ac_valgrind_checking != x ; then
# Prepare PATH_SEPARATOR.
# The user is always right.
@@ -6887,16 +6901,6 @@ fi
$as_echo "#define ENABLE_VALGRIND_CHECKING 1" >>confdefs.h
- if test $gcc_cv_header_valgrind_memcheck_h = yes; then
-
-$as_echo "#define HAVE_VALGRIND_MEMCHECK_H 1" >>confdefs.h
-
- fi
- if test $gcc_cv_header_memcheck_h = yes; then
-
-$as_echo "#define HAVE_MEMCHECK_H 1" >>confdefs.h
-
- fi
fi
@@ -6939,6 +6943,25 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+# Check whether --enable-valgrind-annotations was given.
+if test "${enable_valgrind_annotations+set}" = set; then :
+ enableval=$enable_valgrind_annotations;
+else
+ enable_valgrind_annotations=no
+fi
+
+if test x$enable_valgrind_annotations != xno \
+ || test x$ac_valgrind_checking != x; then
+ if (test $have_valgrind_h = no \
+ && test $gcc_cv_header_memcheck_h = no \
+ && test $gcc_cv_header_valgrind_memcheck_h = no); then
+ as_fn_error "*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h" "$LINENO" 5
+ fi
+
+$as_echo "#define ENABLE_VALGRIND_ANNOTATIONS 1" >>confdefs.h
+
+fi
+
# -------------------------------
# Miscenalleous configure options
# -------------------------------
@@ -17971,7 +17994,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17974 "configure"
+#line 17997 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18077,7 +18100,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18080 "configure"
+#line 18103 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index a3154bb32f1..5565524c89a 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -514,27 +514,36 @@ 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_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 <valgrind/memcheck.h>)
- AC_PREPROC_IFELSE([AC_LANG_SOURCE(
- [[#include <valgrind/memcheck.h>
+# 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 <valgrind/memcheck.h>)
+AC_PREPROC_IFELSE([AC_LANG_SOURCE(
+ [[#include <valgrind/memcheck.h>
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#endif]])],
[gcc_cv_header_valgrind_memcheck_h=yes],
[gcc_cv_header_valgrind_memcheck_h=no])
- AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
- AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
- AC_PREPROC_IFELSE([AC_LANG_SOURCE(
- [[#include <memcheck.h>
+AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
+AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
+AC_PREPROC_IFELSE([AC_LANG_SOURCE(
+ [[#include <memcheck.h>
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#endif]])],
[gcc_cv_header_memcheck_h=yes],
[gcc_cv_header_memcheck_h=no])
- AC_MSG_RESULT($gcc_cv_header_memcheck_h)
+AC_MSG_RESULT($gcc_cv_header_memcheck_h)
+if test $gcc_cv_header_valgrind_memcheck_h = yes; then
+ AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
+ [Define if valgrind's valgrind/memcheck.h header is installed.])
+fi
+if test $gcc_cv_header_memcheck_h = yes; then
+ AC_DEFINE(HAVE_MEMCHECK_H, 1,
+ [Define if valgrind's memcheck.h header is installed.])
+fi
+
+if test x$ac_valgrind_checking != x ; then
AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
[$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
if test "x$valgrind_path" = "x" \
@@ -548,14 +557,6 @@ if test x$ac_valgrind_checking != x ; then
AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
[Define if you want to run subprograms and generated programs
through valgrind (a memory checker). This is extremely expensive.])
- if test $gcc_cv_header_valgrind_memcheck_h = yes; then
- AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
- [Define if valgrind's valgrind/memcheck.h header is installed.])
- fi
- if test $gcc_cv_header_memcheck_h = yes; then
- AC_DEFINE(HAVE_MEMCHECK_H, 1,
- [Define if valgrind's memcheck.h header is installed.])
- fi
fi
AC_SUBST(valgrind_path_defines)
AC_SUBST(valgrind_command)
@@ -594,6 +595,21 @@ gather_stats=`if test $enable_gather_detailed_mem_stats != no; then echo 1; else
AC_DEFINE_UNQUOTED(GATHER_STATISTICS, $gather_stats,
[Define to enable detailed memory allocation stats gathering.])
+AC_ARG_ENABLE(valgrind-annotations,
+[AS_HELP_STRING([--enable-valgrind-annotations],
+ [enable valgrind runtime interaction])], [],
+[enable_valgrind_annotations=no])
+if test x$enable_valgrind_annotations != xno \
+ || test x$ac_valgrind_checking != x; then
+ if (test $have_valgrind_h = no \
+ && test $gcc_cv_header_memcheck_h = no \
+ && test $gcc_cv_header_valgrind_memcheck_h = no); then
+ AC_MSG_ERROR([*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h])
+ fi
+ AC_DEFINE(ENABLE_VALGRIND_ANNOTATIONS, 1,
+[Define to get calls to the valgrind runtime enabled.])
+fi
+
# -------------------------------
# Miscenalleous configure options
# -------------------------------
diff --git a/gcc/system.h b/gcc/system.h
index 42bc509f2cd..892271f58a8 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -1025,7 +1025,7 @@ helper_const_non_const_cast (const char *p)
#endif
#endif
-#ifdef ENABLE_VALGRIND_CHECKING
+#ifdef ENABLE_VALGRIND_ANNOTATIONS
# ifdef HAVE_VALGRIND_MEMCHECK_H
# include <valgrind/memcheck.h>
# elif defined HAVE_MEMCHECK_H