release prerelease development profiling gprof
optimization -O2 -O2 -O -O2 -O2
assertions X X
- stdlib-debug X
+ stdlib-assertions X
+ stdlib-debug
warnings X X
debug X X X X
maintainer-mode X
- The defaults are as follows in terms of version number
+ The defaults are as follows in terms of version number:
release: stable release (2.x.y)
prerelease: version number contains `alpha', `beta', `rc' or `pre'.
development: version number contains `dev'.
code which checks that some variables have sane values. Opposite
is --disable-assertions.
- o --enable-stdlib-debug adds some debug code in the standard
- library; this slows down the code, but has been helpful in the
- past to find bugs. Note that this is in general incompatible with
- the system hunspell library (as of version 1.5). You may have to use
- --disable-stdlib-debug when linking development versions against
- your system's hunspell library.
+ o --enable-stdlib-assertions adds some bound checking code in the
+ libstdc++ standard library; this slows down the code, but has been
+ helpful in the past to find bugs. This has no effect when using
+ llvm's libc++ library.
+
+ o --enable-stdlib-debug encompasses stdlib-assertions and adds
+ additional checks in libstdc++. Note that this changes the ABI and
+ is in general incompatible with the system hunspell library (as of
+ version 1.5). You may have to use --disable-stdlib-debug when
+ linking development versions against your system's hunspell
+ library. This has no effect when using llvm's libc++ library.
)
AC_ARG_ENABLE(stdlib-debug,
- AS_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
- [AS_CASE([$build_type], [dev*], [enable_stdlib_debug=yes],
- [enable_stdlib_debug=no])]
+ AS_HELP_STRING([--enable-stdlib-debug],[enable debug mode in libstdc++]),,
+ [enable_stdlib_debug=no]
+)
+
+AC_ARG_ENABLE(stdlib-assertions,
+ AS_HELP_STRING([--enable-stdlib-assertions],[enable assertions in libstdc++]),,
+ [AS_CASE([$build_type], [dev*], [enable_stdlib_assertions=yes],
+ [enable_stdlib_assertions=no])]
)
### set up optimization
CXX_VERSION="($clang_version)"
fi
+ case $gxx_version in
+ 2.*|3.*|4.@<:@0-8@:>@*) AC_MSG_ERROR([gcc >= 4.9 is required]);;
+ esac
+
AM_CXXFLAGS="$lyx_optim $AM_CXXFLAGS"
if test x$enable_debug = xyes ; then
AM_CXXFLAGS="-g $AM_CXXFLAGS"
[AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-copy"], [], [-Werror])
AC_LANG_POP(C++)
fi
- case $gxx_version in
- 2.*|3.*|4.@<:@0-8@:>@*) AC_MSG_ERROR([gcc >= 4.9 is required]);;
- esac
if test x$enable_stdlib_debug = xyes ; then
dnl FIXME: for clang/libc++, one should define _LIBCPP_DEBUG2=0
dnl See http://clang-developers.42468.n3.nabble.com/libc-debug-mode-td3336742.html
enable_stdlib_debug=no
fi
fi
+ if test x$enable_stdlib_assertions = xyes ; then
+ if test x$lyx_cv_lib_stdcxx = xyes ; then
+ lyx_flags="$lyx_flags stdlib-assertions"
+ AC_DEFINE(_GLIBCXX_ASSERTIONS, 1, [libstdc++ assertions mode])
+ else
+ enable_stdlib_assertions=no
+ fi
+ fi
fi
# Some additional flags may be needed