[Bug] DWARF-5 section names in PE/PEP and weak symbols

Achim Gratz Stromeko@nexgo.de
Sat Jan 29 07:57:39 GMT 2022


Nick Clifton via Binutils writes:
> Quick question - if instead of deleting the references to the .debug_loclists
> section you move them into the /DISCARD/ section earlier in the pe.se file,
> does this also solve the problem.  (The point being that if the script
> explitcitly discards this information we also have room to add a comment
> explaining why.  Plus it will prevent future changes to the pe.sc file
> from adding the section back in).  (Also the change would be needed in
> the pep.sc file as well, obviously.  Plus the .zdebug_loclists section
> would need similar treatment).

Just moving *(.debug_loclists) to the DISCARD section still results in
the erroneous resolution of the fputs symbol.  Also moving
*(.zdebug_loclists) recovers the correct behaviour.  I have no idea what
that means in terms of actual attempt at debugging, though.

--8<---------------cut here---------------start------------->8---
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index e9d1f78cb32..bbe3f341906 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -203,6 +203,8 @@ SECTIONS
     *(.debug\$S)
     *(.debug\$T)
     *(.debug\$F)
+    *(.debug_loclists)
+    *(.zdebug_loclists)
     *(.drectve)
     ${RELOCATING+ *(.note.GNU-stack)}
     ${RELOCATING+ *(.gnu.lto_*)}
@@ -447,6 +449,7 @@ SECTIONS
   {
     *(.zdebug_line_str)
   }
+/* ===
   .debug_loclists ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
   {
     *(.debug_loclists)
@@ -455,6 +458,7 @@ SECTIONS
   {
     *(.zdebug_loclists)
   }
+=== */
   .debug_macro ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
   {
     *(.debug_macro)
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index afa2d23871c..cd8a2defe4e 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -208,6 +208,8 @@ SECTIONS
     *(.debug\$S)
     *(.debug\$T)
     *(.debug\$F)
+    *(.debug_loclists)
+    *(.zdebug_loclists)
     *(.drectve)
     ${RELOCATING+ *(.note.GNU-stack)}
     ${RELOCATING+ *(.gnu.lto_*)}
@@ -452,6 +454,7 @@ SECTIONS
   {
     *(.zdebug_line_str)
   }
+/* ===
   .debug_loclists ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
   {
     *(.debug_loclists)
@@ -460,6 +463,7 @@ SECTIONS
   {
     *(.zdebug_loclists)
   }
+=== */
   .debug_macro ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
   {
     *(.debug_macro)
--8<---------------cut here---------------end--------------->8---


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada


More information about the Binutils mailing list