aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2018-03-07 12:25:59 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2018-03-07 12:26:10 +0100
commit0265c80544aac93e238bcfb2d61afc547c48a829 (patch)
treee6380ea560a4f0fde1be7fae6acb7db7640948c1
parent38db981490655c737dac6ef546f65b1e93d1d99a (diff)
downloaddabmod-0265c80544aac93e238bcfb2d61afc547c48a829.tar.gz
dabmod-0265c80544aac93e238bcfb2d61afc547c48a829.tar.bz2
dabmod-0265c80544aac93e238bcfb2d61afc547c48a829.zip
Remove --enable-debug configure flag
With --enable-debug, compiler flags include -g -O2, i.e. with debugging, with optimisations. Without --enable-debug, compiler flags include -g -O2 -DNDEBUG -g -O2 are defaults according to AC_PROG_CXX The macro NDEBUG has a small performance impact (less than 1%), but can put issues to light. It is beneficial to have assertions always enabled. Remove the flag, and let the user override CFLAGS/CXXFLAGS if he wishes to. This is documented in INSTALL.
-rw-r--r--INSTALL19
-rw-r--r--configure.ac16
2 files changed, 15 insertions, 20 deletions
diff --git a/INSTALL b/INSTALL
index 464eb57..7b18d2c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -27,16 +27,14 @@ The configure script can be launch with a variety of options:
output and remotecontrol.
--disable-output-uhd Disable the binding to the UHD driver for USRPs
--enable-fast-math Compile using the -ffast-math option that gives a substantial
- speedup at the cost of correctness.
+ speedup at the cost of floating point correctness.
--disable-native Do not compile ODR-DabMod with -march=native compiler option.
This is meant for distribution package maintainers who want to
use their own march option, and for people running into compilation
issues due to -march=native. (e.g. GCC bug 70132 on ARM systems)
--enable-edi Enable the EDI input.
-Debugging options: You should not enable debug if you need good performance.
-By default, debug is disabled.
- --enable-debug Do not compile with debugging, and enable optimisations
+Debugging options: You should not enable any debug option if you need good performance.
--enable-trace Create debugging files for each DSP block for data analysis
For more information, call:
@@ -54,10 +52,21 @@ Tricks for best performance:
* Do not use --disable-native
* Use --enable-fast-math
* Add -O3 to compiler flags
+ * Disable assertions with -DNDEBUG
Applying all together:
- % CFLAGS="-O3" CXXFLAGS="-O3" ./configure --enable-fast-math
+ % ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math
+
+Checking for memory usage issues
+--------------------------------
+If your compiler supports it, you can enable the address sanitizer to check for memory
+issues:
+
+ % ./configure CFLAGS="-fsanitize=address -g -O2" CXXFLAGS="-fsanitize=address -g -O2"
+
+The resulting binary will be instrumented with additional memory checks, which have a
+measurable overhead. Please report if you get warnings or errors when using the sanitizer.
Nearly as simple install procedure using repository:
====================================================
diff --git a/configure.ac b/configure.ac
index adf981b..e5221da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,31 +37,21 @@ AC_PROG_INSTALL
AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
EXTRA=""
-AC_ARG_ENABLE([debug],
- [AS_HELP_STRING([--enable-debug], [Enable debugger symbols])],
- [], [enable_debug=no])
AC_ARG_ENABLE([prof],
[AS_HELP_STRING([--enable-prof], [Enable profiling])],
[], [enable_prof=no])
AC_ARG_ENABLE([fast-math],
[AS_HELP_STRING([--enable-fast-math], [Set -ffast-math])],
[], [enable_fast_math=no])
-AC_ARG_WITH([debug-malloc],
- [AS_HELP_STRING([--with-debug-malloc[=no|yes|duma|efence|...]],
- [Add malloc debugger support])],
- [], [with_debug_malloc=no])
AC_ARG_ENABLE([trace],
[AS_HELP_STRING([--enable-trace], [Enable trace output])],
[], [enable_trace=no])
-
AC_ARG_ENABLE([zeromq],
[AS_HELP_STRING([--disable-zeromq], [Disable ZeroMQ input, output and remote control])],
[], [enable_zeromq=yes])
-
AC_ARG_ENABLE([edi],
[AS_HELP_STRING([--enable-edi], [Enable EDI input])],
[], [enable_edi=no])
-
AC_ARG_ENABLE([native],
[AS_HELP_STRING([--disable-native], [Do not compile with -march=native])],
[], [enable_native=yes])
@@ -93,10 +83,6 @@ AS_IF([test "x$enable_zeromq" = "xyes"],
AS_IF([test "x$enable_zeromq" = "xyes"],
[AC_DEFINE(HAVE_ZEROMQ, [1], [Define if ZeroMQ is enabled])])
-AS_IF([test "x$enable_debug" = "xno"],
- [EXTRA="$EXTRA -DNDEBUG"],
- [EXTRA="$EXTRA"])
-
AS_IF([test "x$enable_prof" != "xno"],
[EXTRA="$EXTRA -pg"])
@@ -218,7 +204,7 @@ echo
echo
enabled=""
disabled=""
-for feat in with_debug_malloc supports_march_native enable_fast_math
+for feat in supports_march_native enable_fast_math
do
eval var=\$$feat
AS_IF([test "x$var" != "xno"],