diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2019-05-10 17:22:09 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2019-05-10 17:22:09 -0400 |
commit | 1367480341749b1498a6c5e7a7b79c7a4ab4ed34 (patch) | |
tree | 9ab9cbcfabab084d71008197cdb25ff945fe140b /gdb/mi | |
parent | a9eac7f9b45e92b83db476d167e5ff26607a8b47 (diff) | |
download | binutils-1367480341749b1498a6c5e7a7b79c7a4ab4ed34.zip binutils-1367480341749b1498a6c5e7a7b79c7a4ab4ed34.tar.gz binutils-1367480341749b1498a6c5e7a7b79c7a4ab4ed34.tar.bz2 |
Fix GDB build when using --disable-gdbmi
Since commit
b4be1b064860 ("Fix MI output for multi-location breakpoints")
we get this error when building with --disable-gdbmi:
CXXLD gdb
/home/smarchi/src/binutils-gdb/gdb/breakpoint.c:6358: error: undefined reference to 'mi_multi_location_breakpoint_output_fixed(ui_out*)'
This is due to breakpoint.c using a function defined in mi/mi-main.c, even
though mi/mi-main.c isn't included in the build.
To fix it, use the flags feature of ui_out. mi_ui_out has the new
fix_multi_location_breakpoint_output flag set for versions >= 3. Also,
move the global variable fix_multi_location_breakpoint_output to
breakpoint.c, so it can be read there even when we build without MI. I
renamed it to fix_multi_location_breakpoint_output_globally so it
doesn't clash with the new enumerator.
gdb/ChangeLog:
* breakpoint.h (fix_multi_location_breakpoint_output_globally):
New variable declaration.
* breakpoint.c (fix_multi_location_breakpoint_output_globally):
New variable.
(print_one_breakpoint): Use ui_out::test_flags and new global
variable to compute use_fixed_output.
* mi/mi-main.h (mi_multi_location_breakpoint_output_fixed):
Remove.
* mi/mi-main.c (fix_multi_location_breakpoint_output): Remove.
(mi_multi_location_breakpoint_output_fixed): Remove.
(mi_cmd_fix_multi_location_breakpoint_output): Adjust to set the
new variable.
* mi/mi-out.c (mi_ui_out::mi_ui_out): Set
fix_multi_location_breakpoint_output flag if version >= 3.
* ui-out.h (enum ui_out_flag)
<fix_multi_location_breakpoint_output>: New enumerator.
Diffstat (limited to 'gdb/mi')
-rw-r--r-- | gdb/mi/mi-main.c | 20 | ||||
-rw-r--r-- | gdb/mi/mi-main.h | 8 | ||||
-rw-r--r-- | gdb/mi/mi-out.c | 4 |
3 files changed, 4 insertions, 28 deletions
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 2b9883c..01786c3 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -2699,31 +2699,13 @@ mi_cmd_trace_frame_collected (const char *command, char **argv, int argc) } } -/* Whether to use the fixed output when printing information about a - multi-location breakpoint (see PR 9659). */ - -static bool fix_multi_location_breakpoint_output = false; - /* See mi/mi-main.h. */ void mi_cmd_fix_multi_location_breakpoint_output (const char *command, char **argv, int argc) { - fix_multi_location_breakpoint_output = true; -} - -/* See mi/mi-main.h. */ - -bool -mi_multi_location_breakpoint_output_fixed (ui_out *uiout) -{ - mi_ui_out *mi_uiout = dynamic_cast<mi_ui_out *> (uiout); - - if (mi_uiout == nullptr) - return false; - - return mi_uiout->version () >= 3 || fix_multi_location_breakpoint_output; + fix_multi_location_breakpoint_output_globally = true; } void diff --git a/gdb/mi/mi-main.h b/gdb/mi/mi-main.h index 72c4e59..1986228 100644 --- a/gdb/mi/mi-main.h +++ b/gdb/mi/mi-main.h @@ -59,12 +59,4 @@ extern struct mi_suppress_notification mi_suppress_notification; extern void mi_cmd_fix_multi_location_breakpoint_output (const char *command, char **argv, int argc); -/* Return whether -break-list, -break-insert, =breakpoint-created and - =breakpoint-modified should use the "fixed" output format (see PR - 9659). - - Return false if UIOUT is not an MI UI. */ - -extern bool mi_multi_location_breakpoint_output_fixed (ui_out *uiout); - #endif /* MI_MI_MAIN_H */ diff --git a/gdb/mi/mi-out.c b/gdb/mi/mi-out.c index e485bee..d8bee0f 100644 --- a/gdb/mi/mi-out.c +++ b/gdb/mi/mi-out.c @@ -280,7 +280,9 @@ mi_ui_out::version () /* Constructor for an `mi_out_data' object. */ mi_ui_out::mi_ui_out (int mi_version) -: m_suppress_field_separator (false), +: ui_out (mi_version >= 3 + ? fix_multi_location_breakpoint_output : (ui_out_flag) 0), + m_suppress_field_separator (false), m_suppress_output (false), m_mi_version (mi_version) { |