diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-05-19 14:16:55 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-05-19 14:16:55 +0200 |
commit | 7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70 (patch) | |
tree | d0738eb85213b13ab7338a26965515553fe16a43 | |
parent | 1933fd8ee01ad2e74a9c6341bc40f54962a8f889 (diff) | |
download | fsf-binutils-gdb-7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70.zip fsf-binutils-gdb-7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70.tar.gz fsf-binutils-gdb-7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70.tar.bz2 |
Fix tui compilation with Solaris libcurses: non-const last arg to mvwaddstr (PR tui/21482)
On both mainline and the 8.0 branch, gdb compilation fails on Solaris 10
with the native libcurses in gdb/tui for several instances of the same problem:
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c: In function `void tui_erase_source_content(tui_win_info*, int)':
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:257:18: error: invalid conversion from `const char*' to `char*' [-fpermissive]
no_src_str);
^
In file included from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/gdb_curses.h:42:0,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-data.h:26,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:33:
/vol/gcc-7/lib/gcc/sparc-sun-solaris2.10/7.1.0/include-fixed/curses.h:699:12: note: initializing argument 4 of `int mvwaddstr(WINDOW*, int, int, char*)'
extern int mvwaddstr(WINDOW *, int, int, char *);
^~~~~~~~~
make[2]: *** [Makefile:1927: tui-winsource.o] Error 1
Unlike ncurses, <curses.h> declares
extern int mvwaddstr(WINDOW *, int, int, char *);
i.e. the last arg is char *, not const char *.
The patch fixes this by casting the last arg to mvwaddstr to char *,
as was recently done on mainline in a newterm() call (the only
difference between 8.0 and mainline gdb/tui).
* tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr
arg to char *.
* tui/tui-wingeneral.c (box_win): Likewise.
* tui/tui-winsource.c (tui_erase_source_content): Likewise.
(tui_show_source_line): Likewise.
(tui_show_exec_info_content): Likewise.
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/tui/tui-windata.c | 2 | ||||
-rw-r--r-- | gdb/tui/tui-wingeneral.c | 2 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 7 |
4 files changed, 15 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1273ed8..6bffa90 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2017-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr + arg to char *. + * tui/tui-wingeneral.c (box_win): Likewise. + * tui/tui-winsource.c (tui_erase_source_content): Likewise. + (tui_show_source_line): Likewise. + (tui_show_exec_info_content): Likewise. + 2017-05-19 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> * sparc-tdep.c (sparc_structure_return_p) diff --git a/gdb/tui/tui-windata.c b/gdb/tui/tui-windata.c index 8e7d55c..e7571e6 100644 --- a/gdb/tui/tui-windata.c +++ b/gdb/tui/tui-windata.c @@ -117,7 +117,7 @@ tui_erase_data_content (const char *prompt) mvwaddstr (TUI_DATA_WIN->generic.handle, (TUI_DATA_WIN->generic.height / 2), x_pos, - prompt); + (char *) prompt); } wrefresh (TUI_DATA_WIN->generic.handle); } diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c index 16b466d..5dd2c01 100644 --- a/gdb/tui/tui-wingeneral.c +++ b/gdb/tui/tui-wingeneral.c @@ -101,7 +101,7 @@ box_win (struct tui_gen_win_info *win_info, box (win, tui_border_vline, tui_border_hline); #endif if (win_info->title) - mvwaddstr (win, 0, 3, win_info->title); + mvwaddstr (win, 0, 3, (char *) win_info->title); wattroff (win, attrs); } } diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 73ad93f..3ae9c71 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -254,7 +254,7 @@ tui_erase_source_content (struct tui_win_info *win_info, mvwaddstr (win_info->generic.handle, (win_info->generic.height / 2), x_pos, - no_src_str); + (char *) no_src_str); /* elz: Added this function call to set the real contents of the window to what is on the screen, so that later calls @@ -280,7 +280,7 @@ tui_show_source_line (struct tui_win_info *win_info, int lineno) wattron (win_info->generic.handle, A_STANDOUT); mvwaddstr (win_info->generic.handle, lineno, 1, - line->which_element.source.line); + (char *) line->which_element.source.line); if (line->which_element.source.is_exec_point) wattroff (win_info->generic.handle, A_STANDOUT); @@ -565,7 +565,8 @@ tui_show_exec_info_content (struct tui_win_info *win_info) mvwaddstr (exec_info->handle, cur_line, 0, - exec_info->content[cur_line - 1]->which_element.simple_string); + (char *) exec_info->content[cur_line - 1] + ->which_element.simple_string); tui_refresh_win (exec_info); exec_info->content_in_use = TRUE; } |