The DWARF v5 Spec describes a (slightly) new format for V5 .dwp files. This patch updates GDB to allow it to read/process .dwp files in the new DWARF v5 format, while continuing to be able to read/process .dwp files in the older V1 & V2 formats. The one thing I felt a little odd about in this patch: I couldn't re-use the enum dwarf_sect definitions, because in version 5 several of the sections have the same name as in the previous versions, but have a different ordering, with different numbers attached. So I had to create a new enum, dwarf_sect_v5 for this purpose. Is this patch ok to commit? -- Caroline cmtice@google.com gdb/ChangeLog 2020-07-20 Caroline Tice * dwarf2/read.c (struct dwo_file): Update comment on 'sections' field. (struct dwp_sections): Update field comments. Add loclists and rnglists fields. (struct virtual_v2_dwo_sections): Rename struct to 'virtual_v2_or_v5_dwo_sections'; update comments at top of struct; add size & offset fields for loclists and rnglists. (struct dwp_hash_table): Add a 'v5' struct field to the union section. (create_dwp_hash_table): Update the large comment above the function to discuss Version 5 DWP files as well. Update all the version checks in the function to check for version 5 as well. Add new section at the end to create dwp hash table for version 5. (create_dwp_v2_section): Rename function to 'create_dwp_v2_or_v5_section'. Update function comment appropriately. Add V5 to error message text. (create_dwo_unit_in_dwp_v2): Change calls to create_cwp_v2_section into calls to create_dwp_v2_or_v5_section. (create_dwo_unit_in_dwp_v5): New function. (lookup_dwo_unit_in_dwp): Update conditional statement to explicitly check for version2; add else clause to handle version 5. (dwarf2_locate_v2_dwp_sections): Update function comment to mention version 5. (dwarf2_locate_v5_dwp_sections): New function. (open_and_init_dwp_file): Add else-if clause for version 5 to call bfd_map_over_sections with dwarf2_locate_v5_dwp_sections. include/ChangeLog 2020-07-20 Caroline Tice * dwarf2.h (enum dwarf_sect_v5): A new enum section for the sections in a DWARF 5 DWP file (DWP version 5).