[rtems commit] bsps: Fix .data.rel.ro placement

Sebastian Huber sebh at rtems.org
Fri Aug 12 08:02:05 UTC 2022


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug 12 09:44:07 2022 +0200

bsps: Fix .data.rel.ro placement

The .data.rel.ro* linker input section pattern accidentally matches with
writeable data those symbol name starts with "ro".

Close #4701.

---

 bsps/aarch64/shared/start/linkcmds.base          | 2 +-
 bsps/arm/shared/start/linkcmds.base              | 2 +-
 bsps/i386/pc386/start/linkcmds                   | 2 +-
 bsps/m68k/shared/start/linkcmds.base             | 2 +-
 bsps/or1k/shared/start/linkcmds.base             | 2 +-
 bsps/powerpc/gen5200/start/linkcmds.gen5200_base | 2 +-
 bsps/powerpc/shared/start/linkcmds.base          | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/bsps/aarch64/shared/start/linkcmds.base b/bsps/aarch64/shared/start/linkcmds.base
index f4639bd990..d442dbea28 100644
--- a/bsps/aarch64/shared/start/linkcmds.base
+++ b/bsps/aarch64/shared/start/linkcmds.base
@@ -151,7 +151,7 @@ SECTIONS {
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.data.rel.ro : ALIGN_WITH_INPUT {
 		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
-		*(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+		*(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.jcr : ALIGN_WITH_INPUT {
 		KEEP (*(.jcr))
diff --git a/bsps/arm/shared/start/linkcmds.base b/bsps/arm/shared/start/linkcmds.base
index c9cf360ee7..8c4d87dfdc 100644
--- a/bsps/arm/shared/start/linkcmds.base
+++ b/bsps/arm/shared/start/linkcmds.base
@@ -152,7 +152,7 @@ SECTIONS {
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.data.rel.ro : ALIGN_WITH_INPUT {
 		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
-		*(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+		*(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.jcr : ALIGN_WITH_INPUT {
 		KEEP (*(.jcr))
diff --git a/bsps/i386/pc386/start/linkcmds b/bsps/i386/pc386/start/linkcmds
index f11f94cecd..3fe98edb6c 100644
--- a/bsps/i386/pc386/start/linkcmds
+++ b/bsps/i386/pc386/start/linkcmds
@@ -176,7 +176,7 @@ SECTIONS
     KEEP (*(.dtors))
   }
   .jcr            : { KEEP (*(.jcr)) }
-  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
   .dynamic        : { *(.dynamic) }
   .got            : { *(.got) }
   . = DATA_SEGMENT_RELRO_END (12, .);
diff --git a/bsps/m68k/shared/start/linkcmds.base b/bsps/m68k/shared/start/linkcmds.base
index 66987c0b19..98a53e205a 100644
--- a/bsps/m68k/shared/start/linkcmds.base
+++ b/bsps/m68k/shared/start/linkcmds.base
@@ -130,7 +130,7 @@ SECTIONS {
 	} > REGION_TEXT AT > REGION_TEXT_LOAD
 	.data.rel.ro : ALIGN_WITH_INPUT {
 		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
-		*(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+		*(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
 	} > REGION_TEXT AT > REGION_TEXT_LOAD
 	.jcr : ALIGN_WITH_INPUT {
 		KEEP (*(.jcr))
diff --git a/bsps/or1k/shared/start/linkcmds.base b/bsps/or1k/shared/start/linkcmds.base
index dbb9cee0e5..d5b87debb6 100644
--- a/bsps/or1k/shared/start/linkcmds.base
+++ b/bsps/or1k/shared/start/linkcmds.base
@@ -152,7 +152,7 @@ SECTIONS {
        } > REGION_RODATA AT > REGION_RODATA_LOAD
        .data.rel.ro : ALIGN_WITH_INPUT {
                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
-               *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+               *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
        } > REGION_RODATA AT > REGION_RODATA_LOAD
        .jcr : ALIGN_WITH_INPUT {
                KEEP (*(.jcr))
diff --git a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
index ecf33f3fe2..3e6e4b84f0 100644
--- a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
+++ b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base
@@ -204,7 +204,7 @@ SECTIONS {
 		KEEP (*(.eh_frame))
 		*(.gcc_except_table .gcc_except_table.*)
 		KEEP (*(.jcr))
-		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
 		*(.fixup)
 		*(.got1)
 		*(.got2)
diff --git a/bsps/powerpc/shared/start/linkcmds.base b/bsps/powerpc/shared/start/linkcmds.base
index 21fa729e38..9cbe338cb0 100644
--- a/bsps/powerpc/shared/start/linkcmds.base
+++ b/bsps/powerpc/shared/start/linkcmds.base
@@ -180,7 +180,7 @@ SECTIONS {
 		KEEP (*(.jcr))
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.data.rel.ro : ALIGN_WITH_INPUT {
-		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
 	} > REGION_RODATA AT > REGION_RODATA_LOAD
 	.fixup : ALIGN_WITH_INPUT {
 		*(.fixup)



More information about the vc mailing list