Fix py-tui.c build problem
authorTom Tromey <tromey@adacore.com>
Tue, 31 Mar 2020 20:07:04 +0000 (14:07 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 31 Mar 2020 20:09:36 +0000 (14:09 -0600)
py-tui.c can fail to build if the ncurses development headers are not
installed, but if Python was built against ncurses.  In this case, the
Python headers will define HAVE_NCURSES_H, confusing gdb_curses.h.

This patch fixes the problem by moving this include inside
"#ifdef TUI".

gdb/ChangeLog
2020-03-31  Joel Jones  <joelkevinjones@gmail.com>

PR tui/25597:
* python/py-tui.c: Include gdb_curses.h inside of #ifdef TUI.

gdb/ChangeLog
gdb/python/py-tui.c

index d3873da04b4f0e094d632e434b6133c754b499ae..116a9b36dcdf0886e6f0ab05a692bc25d10a7fd0 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-31  Joel Jones  <joelkevinjones@gmail.com>
+
+       PR tui/25597:
+       * python/py-tui.c: Include gdb_curses.h inside of #ifdef TUI.
+
 2020-03-31  Tom Tromey  <tromey@adacore.com>
 
        * dwarf2/abbrev.c (abbrev_table::read): Conditionally call
index 4cb86ae75da4e309285dc4c4eeaa7de067e71d78..de7c396be9f0bd58e0ef43665d286effd83223be 100644 (file)
 #include "defs.h"
 #include "arch-utils.h"
 #include "python-internal.h"
-#include "gdb_curses.h"
 
 #ifdef TUI
 
+/* Note that Python's public headers may define HAVE_NCURSES_H, so if
+   we unconditionally include this (outside the #ifdef above), then we
+   can get a compile error when ncurses is not in fact installed.  See
+   PR tui/25597; or the upstream Python bug
+   https://bugs.python.org/issue20768.  */
+#include "gdb_curses.h"
+
 #include "tui/tui-data.h"
 #include "tui/tui-io.h"
 #include "tui/tui-layout.h"