From 6f29a53415003fd958978471801c072b2fcc8f80 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 31 Mar 2020 14:07:04 -0600 Subject: [PATCH] Fix py-tui.c build problem 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 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/ChangeLog b/gdb/ChangeLog index d3873da04b4..116a9b36dcd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-03-31 Joel Jones + + PR tui/25597: + * python/py-tui.c: Include gdb_curses.h inside of #ifdef TUI. + 2020-03-31 Tom Tromey * dwarf2/abbrev.c (abbrev_table::read): Conditionally call 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" -- 2.30.2