Do not pass -DNDEBUG to Python compilations in development mode

The Python CFLAGS include -DNDEBUG.  This was apparently done
intentionally -- setting the flags is done manually because, according
to a comment, python-config passes too many things to the compiler
(which is true).

Per PR python/20445, this patch changes configure so that -DNDEBUG is
only used by release builds.  This probably doesn't have very much
effect in practice, but I did see that some Python headers use assert,
so perhaps it will give some safety.

Tested by rebuilding and re-running gdb.python/*.exp on x86-64 Fedora 28.

gdb/ChangeLog
2018-09-17  Tom Tromey  <tom@tromey.com>

	PR python/20445:
	* configure: Rebuild.
	* configure.ac: Conditionally use -DNDEBUG for Python.
This commit is contained in:
Tom Tromey 2018-09-16 12:38:12 -06:00
parent da658607ed
commit ae292b3afc
3 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2018-09-17 Tom Tromey <tom@tromey.com>
PR python/20445:
* configure: Rebuild.
* configure.ac: Conditionally use -DNDEBUG for Python.
2018-09-17 Tom Tromey <tom@tromey.com>
* configure: Rebuild.

6
gdb/configure vendored
View File

@ -10762,7 +10762,11 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h
# would make the python-related objects be compiled differently from the
# rest of GDB (e.g., -O2 and -fPIC).
if test "${GCC}" = yes; then
tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
tentative_python_cflags="-fno-strict-aliasing -fwrapv"
# Python headers recommend -DNDEBUG, but it's unclear if that just
# refers to building Python itself. In release mode, though, it
# doesn't hurt for the Python code in gdb to follow.
$development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
fi
if test "x${tentative_python_cflags}" != x; then

View File

@ -965,7 +965,11 @@ if test "${have_libpython}" != no; then
# would make the python-related objects be compiled differently from the
# rest of GDB (e.g., -O2 and -fPIC).
if test "${GCC}" = yes; then
tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
tentative_python_cflags="-fno-strict-aliasing -fwrapv"
# Python headers recommend -DNDEBUG, but it's unclear if that just
# refers to building Python itself. In release mode, though, it
# doesn't hurt for the Python code in gdb to follow.
$development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
fi
if test "x${tentative_python_cflags}" != x; then