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.
+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.
# 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
# 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