[rtems commit] bsps: Support DWARF 5 sections

Sebastian Huber sebh at rtems.org
Tue Jan 26 06:18:31 UTC 2021


Module:    rtems
Branch:    master
Commit:    33c12d5f92babce3fa3e2e6c3852762e1f2abebf
Changeset: http://git.rtems.org/rtems/commit/?id=33c12d5f92babce3fa3e2e6c3852762e1f2abebf

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Jan 25 11:19:21 2021 +0100

bsps: Support DWARF 5 sections

GCC 11 uses DWARF 5 by default.

---

 bsps/aarch64/shared/start/linkcmds.base          | 21 ++++++----
 bsps/arm/shared/start/linkcmds.base              | 21 ++++++----
 bsps/m68k/shared/start/linkcmds.base             | 21 ++++++----
 bsps/powerpc/gen5200/start/linkcmds.gen5200_base | 21 ++++++----
 bsps/powerpc/shared/start/linkcmds.base          | 21 ++++++----
 bsps/riscv/shared/start/linkcmds.base.in         | 50 ++++++++++++++----------
 spec/build/bsps/riscv/linkcmdsbase.yml           | 20 ++++++----
 7 files changed, 107 insertions(+), 68 deletions(-)

diff --git a/bsps/aarch64/shared/start/linkcmds.base b/bsps/aarch64/shared/start/linkcmds.base
index 4bf5b10..45550b0 100644
--- a/bsps/aarch64/shared/start/linkcmds.base
+++ b/bsps/aarch64/shared/start/linkcmds.base
@@ -384,33 +384,38 @@ SECTIONS {
 	/* DWARF debug sections.
 	   Symbols in the DWARF debugging sections are relative to the beginning
 	   of the section so we begin them at 0.  */
-	/* DWARF 1 */
+	/* DWARF 1.  */
 	.debug          0 : { *(.debug) }
 	.line           0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
+	/* GNU DWARF 1 extensions.  */
 	.debug_srcinfo  0 : { *(.debug_srcinfo) }
 	.debug_sfnames  0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
+	/* DWARF 1.1 and DWARF 2.  */
 	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
+	/* DWARF 2.  */
 	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 	.debug_abbrev   0 : { *(.debug_abbrev) }
-	.debug_line     0 : { *(.debug_line) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
 	.debug_frame    0 : { *(.debug_frame) }
 	.debug_str      0 : { *(.debug_str) }
 	.debug_loc      0 : { *(.debug_loc) }
 	.debug_macinfo  0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
 	.debug_varnames  0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 	.debug_ranges   0 : { *(.debug_ranges) }
-	/* DWARF extension */
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
 	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
 	.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
 	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
diff --git a/bsps/arm/shared/start/linkcmds.base b/bsps/arm/shared/start/linkcmds.base
index 88a7488..1b92771 100644
--- a/bsps/arm/shared/start/linkcmds.base
+++ b/bsps/arm/shared/start/linkcmds.base
@@ -399,33 +399,38 @@ SECTIONS {
 	/* DWARF debug sections.
 	   Symbols in the DWARF debugging sections are relative to the beginning
 	   of the section so we begin them at 0.  */
-	/* DWARF 1 */
+	/* DWARF 1.  */
 	.debug          0 : { *(.debug) }
 	.line           0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
+	/* GNU DWARF 1 extensions.  */
 	.debug_srcinfo  0 : { *(.debug_srcinfo) }
 	.debug_sfnames  0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
+	/* DWARF 1.1 and DWARF 2.  */
 	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
+	/* DWARF 2.  */
 	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 	.debug_abbrev   0 : { *(.debug_abbrev) }
-	.debug_line     0 : { *(.debug_line) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
 	.debug_frame    0 : { *(.debug_frame) }
 	.debug_str      0 : { *(.debug_str) }
 	.debug_loc      0 : { *(.debug_loc) }
 	.debug_macinfo  0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
 	.debug_varnames  0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 	.debug_ranges   0 : { *(.debug_ranges) }
-	/* DWARF extension */
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
 	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
 	.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
 	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
diff --git a/bsps/m68k/shared/start/linkcmds.base b/bsps/m68k/shared/start/linkcmds.base
index 1b6e0ec..1943574 100644
--- a/bsps/m68k/shared/start/linkcmds.base
+++ b/bsps/m68k/shared/start/linkcmds.base
@@ -282,33 +282,38 @@ SECTIONS {
 	/* DWARF debug sections.
 	   Symbols in the DWARF debugging sections are relative to the beginning
 	   of the section so we begin them at 0.  */
-	/* DWARF 1 */
+	/* DWARF 1.  */
 	.debug          0 : { *(.debug) }
 	.line           0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
+	/* GNU DWARF 1 extensions.  */
 	.debug_srcinfo  0 : { *(.debug_srcinfo) }
 	.debug_sfnames  0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
+	/* DWARF 1.1 and DWARF 2.  */
 	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
+	/* DWARF 2.  */
 	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 	.debug_abbrev   0 : { *(.debug_abbrev) }
-	.debug_line     0 : { *(.debug_line) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
 	.debug_frame    0 : { *(.debug_frame) }
 	.debug_str      0 : { *(.debug_str) }
 	.debug_loc      0 : { *(.debug_loc) }
 	.debug_macinfo  0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
 	.debug_varnames  0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 	.debug_ranges   0 : { *(.debug_ranges) }
-	/* DWARF extension */
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
 	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
 
 	/*
diff --git a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
index 31fccb7..b17dfd7 100644
--- a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
+++ b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
@@ -316,33 +316,38 @@ SECTIONS {
 	/* DWARF debug sections.
 	   Symbols in the DWARF debugging sections are relative to the beginning
 	   of the section so we begin them at 0.  */
-	/* DWARF 1 */
+	/* DWARF 1.  */
 	.debug          0 : { *(.debug) }
 	.line           0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
+	/* GNU DWARF 1 extensions.  */
 	.debug_srcinfo  0 : { *(.debug_srcinfo) }
 	.debug_sfnames  0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
+	/* DWARF 1.1 and DWARF 2.  */
 	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
+	/* DWARF 2.  */
 	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 	.debug_abbrev   0 : { *(.debug_abbrev) }
-	.debug_line     0 : { *(.debug_line) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
 	.debug_frame    0 : { *(.debug_frame) }
 	.debug_str      0 : { *(.debug_str) }
 	.debug_loc      0 : { *(.debug_loc) }
 	.debug_macinfo  0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
 	.debug_varnames  0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 	.debug_ranges   0 : { *(.debug_ranges) }
-	/* DWARF extension */
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
 	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
 
 	/DISCARD/ : {
diff --git a/bsps/powerpc/shared/start/linkcmds.base b/bsps/powerpc/shared/start/linkcmds.base
index f522081..f9c30d1 100644
--- a/bsps/powerpc/shared/start/linkcmds.base
+++ b/bsps/powerpc/shared/start/linkcmds.base
@@ -411,33 +411,38 @@ SECTIONS {
 	/* DWARF debug sections.
 	   Symbols in the DWARF debugging sections are relative to the beginning
 	   of the section so we begin them at 0.  */
-	/* DWARF 1 */
+	/* DWARF 1.  */
 	.debug          0 : { *(.debug) }
 	.line           0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
+	/* GNU DWARF 1 extensions.  */
 	.debug_srcinfo  0 : { *(.debug_srcinfo) }
 	.debug_sfnames  0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
+	/* DWARF 1.1 and DWARF 2.  */
 	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
+	/* DWARF 2.  */
 	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 	.debug_abbrev   0 : { *(.debug_abbrev) }
-	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
 	.debug_frame    0 : { *(.debug_frame) }
 	.debug_str      0 : { *(.debug_str) }
 	.debug_loc      0 : { *(.debug_loc) }
 	.debug_macinfo  0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
 	.debug_varnames  0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 	.debug_ranges   0 : { *(.debug_ranges) }
-	/* DWARF Extension.  */
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
 	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
 	.PPC.EMB.apuinfo 0 : { *(.PPC.EMB.apuinfo) }
 	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
diff --git a/bsps/riscv/shared/start/linkcmds.base.in b/bsps/riscv/shared/start/linkcmds.base.in
index b446033..e28ed0a 100644
--- a/bsps/riscv/shared/start/linkcmds.base.in
+++ b/bsps/riscv/shared/start/linkcmds.base.in
@@ -346,31 +346,41 @@ SECTIONS {
 	/* DWARF 1 */
 	.debug					0 : { *(.debug) }
 	.line					 0 : { *(.line) }
-	/* GNU DWARF 1 extensions */
-	.debug_srcinfo	0 : { *(.debug_srcinfo) }
-	.debug_sfnames	0 : { *(.debug_sfnames) }
-	/* DWARF 1.1 and DWARF 2 */
-	.debug_aranges	0 : { *(.debug_aranges) }
+	/* DWARF debug sections.
+	   Symbols in the DWARF debugging sections are relative to the beginning
+	   of the section so we begin them at 0.  */
+	/* DWARF 1.  */
+	.debug          0 : { *(.debug) }
+	.line           0 : { *(.line) }
+	/* GNU DWARF 1 extensions.  */
+	.debug_srcinfo  0 : { *(.debug_srcinfo) }
+	.debug_sfnames  0 : { *(.debug_sfnames) }
+	/* DWARF 1.1 and DWARF 2.  */
+	.debug_aranges  0 : { *(.debug_aranges) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
-	/* DWARF 2 */
-	.debug_info		 0 : { *(.debug_info .gnu.linkonce.wi.*) }
-	.debug_abbrev	 0 : { *(.debug_abbrev) }
-	.debug_line		 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
-	.debug_frame		0 : { *(.debug_frame) }
-	.debug_str			0 : { *(.debug_str) }
-	.debug_loc			0 : { *(.debug_loc) }
-	.debug_macinfo	0 : { *(.debug_macinfo) }
-	/* SGI/MIPS DWARF 2 extensions */
+	/* DWARF 2.  */
+	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+	.debug_abbrev   0 : { *(.debug_abbrev) }
+	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
+	.debug_frame    0 : { *(.debug_frame) }
+	.debug_str      0 : { *(.debug_str) }
+	.debug_loc      0 : { *(.debug_loc) }
+	.debug_macinfo  0 : { *(.debug_macinfo) }
+	/* SGI/MIPS DWARF 2 extensions.  */
 	.debug_weaknames 0 : { *(.debug_weaknames) }
 	.debug_funcnames 0 : { *(.debug_funcnames) }
 	.debug_typenames 0 : { *(.debug_typenames) }
-	.debug_varnames	0 : { *(.debug_varnames) }
-	/* DWARF 3 */
+	.debug_varnames  0 : { *(.debug_varnames) }
+	/* DWARF 3.  */
 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
-	.debug_ranges	 0 : { *(.debug_ranges) }
-	/* DWARF Extension.	*/
-	.debug_macro		0 : { *(.debug_macro) }
-	.debug_addr		 0 : { *(.debug_addr) }
+	.debug_ranges   0 : { *(.debug_ranges) }
+	/* DWARF 5.  */
+	.debug_loclists 0 : { *(.debug_loclists) }
+	.debug_rnglists 0 : { *(.debug_rnglists) }
+	.debug_line_str 0 : { *(.debug_line_str) }
+	.debug_str_offsets 0 : { *(.debug_str_offsets) }
+	.debug_macro    0 : { *(.debug_macro) }
+	.debug_addr     0 : { *(.debug_addr) }
 	.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
 	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
 	.shstrtab		 0 : { *(.shstrtab) }
diff --git a/spec/build/bsps/riscv/linkcmdsbase.yml b/spec/build/bsps/riscv/linkcmdsbase.yml
index cbc7695..dde54a2 100644
--- a/spec/build/bsps/riscv/linkcmdsbase.yml
+++ b/spec/build/bsps/riscv/linkcmdsbase.yml
@@ -346,32 +346,36 @@ content: |
     /* DWARF debug sections.
        Symbols in the DWARF debugging sections are relative to the beginning
        of the section so we begin them at 0.  */
-    /* DWARF 1 */
+    /* DWARF 1.  */
     .debug          0 : { *(.debug) }
     .line           0 : { *(.line) }
-    /* GNU DWARF 1 extensions */
+    /* GNU DWARF 1 extensions.  */
     .debug_srcinfo  0 : { *(.debug_srcinfo) }
     .debug_sfnames  0 : { *(.debug_sfnames) }
-    /* DWARF 1.1 and DWARF 2 */
+    /* DWARF 1.1 and DWARF 2.  */
     .debug_aranges  0 : { *(.debug_aranges) }
     .debug_pubnames 0 : { *(.debug_pubnames) }
-    /* DWARF 2 */
+    /* DWARF 2.  */
     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
     .debug_abbrev   0 : { *(.debug_abbrev) }
-    .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
+    .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
     .debug_frame    0 : { *(.debug_frame) }
     .debug_str      0 : { *(.debug_str) }
     .debug_loc      0 : { *(.debug_loc) }
     .debug_macinfo  0 : { *(.debug_macinfo) }
-    /* SGI/MIPS DWARF 2 extensions */
+    /* SGI/MIPS DWARF 2 extensions.  */
     .debug_weaknames 0 : { *(.debug_weaknames) }
     .debug_funcnames 0 : { *(.debug_funcnames) }
     .debug_typenames 0 : { *(.debug_typenames) }
     .debug_varnames  0 : { *(.debug_varnames) }
-    /* DWARF 3 */
+    /* DWARF 3.  */
     .debug_pubtypes 0 : { *(.debug_pubtypes) }
     .debug_ranges   0 : { *(.debug_ranges) }
-    /* DWARF Extension.  */
+    /* DWARF 5.  */
+    .debug_loclists 0 : { *(.debug_loclists) }
+    .debug_rnglists 0 : { *(.debug_rnglists) }
+    .debug_line_str 0 : { *(.debug_line_str) }
+    .debug_str_offsets 0 : { *(.debug_str_offsets) }
     .debug_macro    0 : { *(.debug_macro) }
     .debug_addr     0 : { *(.debug_addr) }
     .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }



More information about the vc mailing list