On Mon, Aug 24, 2020 at 02:56:54PM +0200, Mark Wielaard wrote: > 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.
This should be discussed with Alex, CCed. I'd say elfutils/binutils should just show .debug_loclists independent of .debug_info if there are no loc views and use .debug_info otherwise. > 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 Jakub