diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2018-03-07 12:25:59 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2018-03-07 12:26:10 +0100 |
commit | 0265c80544aac93e238bcfb2d61afc547c48a829 (patch) | |
tree | e6380ea560a4f0fde1be7fae6acb7db7640948c1 | |
parent | 38db981490655c737dac6ef546f65b1e93d1d99a (diff) | |
download | dabmod-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-- | INSTALL | 19 | ||||
-rw-r--r-- | configure.ac | 16 |
2 files changed, 15 insertions, 20 deletions
@@ -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"], |