Fix GDB build when using --disable-gdbmi
authorSimon Marchi <simon.marchi@efficios.com>
Fri, 10 May 2019 21:22:09 +0000 (17:22 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Fri, 10 May 2019 21:22:09 +0000 (17:22 -0400)
commit1367480341749b1498a6c5e7a7b79c7a4ab4ed34
tree9ab9cbcfabab084d71008197cdb25ff945fe140b
parenta9eac7f9b45e92b83db476d167e5ff26607a8b47
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.
gdb/ChangeLog
gdb/breakpoint.c
gdb/breakpoint.h
gdb/mi/mi-main.c
gdb/mi/mi-main.h
gdb/mi/mi-out.c
gdb/ui-out.h