[pushed] Fix py-tui.c build problem

Message ID 20200331200954.18700-1-tromey@adacore.com
State New
Headers show
  • [pushed] Fix py-tui.c build problem
Related show

Commit Message

Tom Tromey March 31, 2020, 8:09 p.m.
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".

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       | 5 +++++
 gdb/python/py-tui.c | 8 +++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)



diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c
index 4cb86ae75da..de7c396be9f 100644
--- a/gdb/python/py-tui.c
+++ b/gdb/python/py-tui.c
@@ -21,10 +21,16 @@ 
 #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"