From 21a36ed19b68bc0b5338eb661028c706cdbbb6ee Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 12 Aug 2022 09:44:07 +0200 Subject: 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(-) (limited to 'bsps') 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) -- cgit v1.2.3