DWARF5 makes it possible to read loclists tables without consulting the debuginfo tree by introducing a table header. Adding location views breaks this (at least for binutils and elfutils). So don't enable variable-location-views by default if DWARF5 or higher is selected. --- gcc/doc/invoke.texi | 6 +++--- gcc/toplev.c | 1 + 2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 70dc1ab73a12..e5dddc236d7d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -9301,9 +9301,9 @@ can be consumed by debug information consumers that are not aware of these augmentations, but they won't derive any benefit from them either. This is enabled by default when outputting DWARF 2 debug information at -the normal level, as long as there is assembler support, -@option{-fvar-tracking-assignments} is enabled and -@option{-gstrict-dwarf} is not. When assembler support is not +the normal level for DWARF versions lower than 5, as long as there +is assembler support, @option{-fvar-tracking-assignments} is enabled +and @option{-gstrict-dwarf} is not. When assembler support is not available, this may still be enabled, but it will force GCC to output internal line number tables, and if @option{-ginternal-reset-location-views} is not enabled, that will most diff --git a/gcc/toplev.c b/gcc/toplev.c index 07457d08c3aa..34218c6b3349 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1672,6 +1672,7 @@ process_options (void) && (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG) && !dwarf_strict + && dwarf_version < 5 && dwarf2out_as_loc_support && dwarf2out_as_locview_support); } -- 2.18.4