summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Wood <thomas.wood@intel.com>2015-03-23 11:46:25 +0000
committerThomas Wood <thomas.wood@intel.com>2015-03-26 15:50:05 +0000
commit76dad7f41475347f99e8a8ce6af67020dfd7c0f1 (patch)
tree07f924ef1695f180b9a6e466c6139c3447648474
parent277ca2b992c766581ef6ef01ea210808f456fbe0 (diff)
Add default debug flags for tests
Include debugging symbols in tests by default to improve stack traces and also set the compiler optimisation level to improve the debugging experience. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
-rw-r--r--configure.ac14
-rw-r--r--m4/as-compiler-flag.m462
-rw-r--r--tests/Makefile.am2
3 files changed, 77 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index b9ecef8d..51595ade 100644
--- a/configure.ac
+++ b/configure.ac
@@ -196,6 +196,19 @@ if test "x$with_libunwind" = xyes; then
AC_MSG_ERROR([libunwind not found. Use --without-libunwind to disable libunwind support.]))
fi
+# enable debug symbols
+AC_ARG_ENABLE(debug,
+ AS_HELP_STRING([--disable-debug],
+ [Build tests without debug symbols]),
+ [], [enable_debug=yes])
+
+if test "x$enable_debug" = xyes; then
+ AS_COMPILER_FLAG([-g3], [DEBUG_CFLAGS="-g3"], [DEBUG_CFLAGS="-g"])
+ AS_COMPILER_FLAG([-Og], [DEBUG_CFLAGS+=" -Og -Wno-maybe-uninitialized"], # disable maybe-uninitialized due to false positives
+ [DEBUG_CFLAGS+=" -O0"])
+ AC_SUBST([DEBUG_CFLAGS])
+fi
+
# -----------------------------------------------------------------------------
# To build multithread code, gcc uses -pthread, Solaris Studio cc uses -mt
@@ -253,6 +266,7 @@ echo " • Tests:"
echo " Build tests : ${BUILD_TESTS}"
echo " Compile prime tests: ${NOUVEAU}"
echo " Print stack traces : ${with_libunwind}"
+echo " Debug flags : ${DEBUG_CFLAGS}"
echo ""
echo " • Tools:"
echo " Assembler : ${enable_assembler}"
diff --git a/m4/as-compiler-flag.m4 b/m4/as-compiler-flag.m4
new file mode 100644
index 00000000..0f660cf0
--- /dev/null
+++ b/m4/as-compiler-flag.m4
@@ -0,0 +1,62 @@
+dnl as-compiler-flag.m4 0.1.0
+
+dnl autostars m4 macro for detection of compiler flags
+
+dnl David Schleef <ds@schleef.org>
+
+dnl $Id: as-compiler-flag.m4,v 1.1 2005/12/15 23:35:19 ds Exp $
+
+dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
+dnl Tries to compile with the given CFLAGS.
+dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
+dnl and ACTION-IF-NOT-ACCEPTED otherwise.
+
+AC_DEFUN([AS_COMPILER_FLAG],
+[
+ AC_MSG_CHECKING([to see if compiler understands $1])
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+
+ AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+ CFLAGS="$save_CFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ m4_ifvaln([$2],[$2])
+ true
+ else
+ m4_ifvaln([$3],[$3])
+ true
+ fi
+ AC_MSG_RESULT([$flag_ok])
+])
+
+dnl AS_COMPILER_FLAGS(VAR, FLAGS)
+dnl Tries to compile with the given CFLAGS.
+
+AC_DEFUN([AS_COMPILER_FLAGS],
+[
+ list=$2
+ flags_supported=""
+ flags_unsupported=""
+ AC_MSG_CHECKING([for supported compiler flags])
+ for each in $list
+ do
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $each"
+ AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+ CFLAGS="$save_CFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ flags_supported="$flags_supported $each"
+ else
+ flags_unsupported="$flags_unsupported $each"
+ fi
+ done
+ AC_MSG_RESULT([$flags_supported])
+ if test "X$flags_unsupported" != X ; then
+ AC_MSG_WARN([unsupported compiler flags: $flags_unsupported])
+ fi
+ $1="$$1 $flags_supported"
+])
+
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 93f41ba9..f45c6c94 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -32,7 +32,7 @@ EXTRA_DIST = $(TESTS_scripts) $(TESTS_scripts_M) $(scripts) $(IMAGES) $(common_f
CLEANFILES = $(EXTRA_PROGRAMS) single-tests.txt multi-tests.txt
-AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) \
+AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) $(DEBUG_CFLAGS)\
-I$(srcdir)/.. \
-I$(srcdir)/../lib \
-include "$(srcdir)/../lib/check-ndebug.h" \