Cygwin: loader script: add DWARF 5 sections

Modern gcc's generate additional DWARF 5 debug sections, which were
still missing in our Cygwin loader script.  With ld from binutils 2.37,
this results in diagnostic output when linking the Cygwin DLL...

  ld: cygwin0.dll:/4: section below image base
  ld: cygwin0.dll:/20: section below image base
  ld: cygwin0.dll:/36: section below image base

...and the section addresses given to these sections (.debug_loclists,
.debug_rnglists, debug_line_str) will be wrong.

Fix this by adding the missing DWARF 5 sections to our linker script
template cygwin.sc.in.  Add a comment in terms of the deprecated
DWARF 4 section .debug_types.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
This commit is contained in:
Corinna Vinschen 2021-08-27 14:26:42 +02:00
parent 88c0276358
commit 801120c1f4
1 changed files with 7 additions and 2 deletions

View File

@ -178,8 +178,13 @@ SECTIONS
.debug_typenames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_typenames) }
.debug_varnames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_varnames) }
.debug_macro ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macro) }
/* DWARF 3. */
/* DWARF 3 */
.debug_ranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_ranges) }
/* DWARF 4. */
/* DWARF 4, merged back into .debug_info with DWARF 5 */
.debug_types ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) }
/* DWARF 5 */
.debug_loclists ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_loclists) }
.debug_rnglists ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) }
.debug_line_str ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_line_str) }
}