[newlib-cygwin] Cygwin: loader script: add DWARF 5 sections

Corinna Vinschen corinna@sourceware.org
Fri Aug 27 12:34:06 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=801120c1f402f9b0f72b5a231bf9e1cf82614cac

commit 801120c1f402f9b0f72b5a231bf9e1cf82614cac
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Fri Aug 27 14:26:42 2021 +0200

    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>

Diff:
---
 winsup/cygwin/cygwin.sc.in | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/winsup/cygwin/cygwin.sc.in b/winsup/cygwin/cygwin.sc.in
index 134ae3f76..293d2ab25 100644
--- a/winsup/cygwin/cygwin.sc.in
+++ b/winsup/cygwin/cygwin.sc.in
@@ -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) }
+
 }


More information about the Cygwin-cvs mailing list