Skip to content

Commit 93345d0

Browse files
committed
Update linker scripts for GCC11 or later.
1 parent 94e1ac0 commit 93345d0

10 files changed

+85
-52
lines changed

Linker/STM32F7xx.ld

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,21 +79,23 @@ SECTIONS
7979
. = ALIGN(4);
8080
} >FLASH
8181

82-
.ARM.extab : {
82+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
83+
{
8384
. = ALIGN(4);
8485
*(.ARM.extab* .gnu.linkonce.armextab.*)
8586
. = ALIGN(4);
8687
} >FLASH
8788

88-
.ARM : {
89+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
90+
{
8991
. = ALIGN(4);
9092
__exidx_start = .;
9193
*(.ARM.exidx*)
9294
__exidx_end = .;
9395
. = ALIGN(4);
9496
} >FLASH
9597

96-
.preinit_array :
98+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
9799
{
98100
. = ALIGN(4);
99101
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -102,7 +104,7 @@ SECTIONS
102104
. = ALIGN(4);
103105
} >FLASH
104106

105-
.init_array :
107+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
106108
{
107109
. = ALIGN(4);
108110
PROVIDE_HIDDEN (__init_array_start = .);
@@ -112,7 +114,7 @@ SECTIONS
112114
. = ALIGN(4);
113115
} >FLASH
114116

115-
.fini_array :
117+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
116118
{
117119
. = ALIGN(4);
118120
PROVIDE_HIDDEN (__fini_array_start = .);

Linker/STM32F7xx_RAM.ld

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,23 @@ SECTIONS
8181
. = ALIGN(4);
8282
} >RAM2
8383

84-
.ARM.extab : {
84+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
85+
{
8586
. = ALIGN(4);
8687
*(.ARM.extab* .gnu.linkonce.armextab.*)
8788
. = ALIGN(4);
8889
} >RAM2
8990

90-
.ARM : {
91+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
92+
{
9193
. = ALIGN(4);
9294
__exidx_start = .;
9395
*(.ARM.exidx*)
9496
__exidx_end = .;
9597
. = ALIGN(4);
9698
} >RAM2
9799

98-
.preinit_array :
100+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
99101
{
100102
. = ALIGN(4);
101103
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -104,7 +106,7 @@ SECTIONS
104106
. = ALIGN(4);
105107
} >RAM2
106108

107-
.init_array :
109+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
108110
{
109111
. = ALIGN(4);
110112
PROVIDE_HIDDEN (__init_array_start = .);
@@ -114,7 +116,7 @@ SECTIONS
114116
. = ALIGN(4);
115117
} >RAM2
116118

117-
.fini_array :
119+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
118120
{
119121
. = ALIGN(4);
120122
PROVIDE_HIDDEN (__fini_array_start = .);

Linker/STM32F7xx_RAM_SIGNATURE.ld

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,23 @@ SECTIONS
8787
. = ALIGN(4);
8888
} >RAM2
8989

90-
.ARM.extab : {
90+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
91+
{
9192
. = ALIGN(4);
9293
*(.ARM.extab* .gnu.linkonce.armextab.*)
9394
. = ALIGN(4);
9495
} >RAM2
9596

96-
.ARM : {
97+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
98+
{
9799
. = ALIGN(4);
98100
__exidx_start = .;
99101
*(.ARM.exidx*)
100102
__exidx_end = .;
101103
. = ALIGN(4);
102104
} >RAM2
103105

104-
.preinit_array :
106+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
105107
{
106108
. = ALIGN(4);
107109
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -110,7 +112,7 @@ SECTIONS
110112
. = ALIGN(4);
111113
} >RAM2
112114

113-
.init_array :
115+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
114116
{
115117
. = ALIGN(4);
116118
PROVIDE_HIDDEN (__init_array_start = .);
@@ -120,7 +122,7 @@ SECTIONS
120122
. = ALIGN(4);
121123
} >RAM2
122124

123-
.fini_array :
125+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
124126
{
125127
. = ALIGN(4);
126128
PROVIDE_HIDDEN (__fini_array_start = .);

Linker/STM32F7xx_SIGNATURE.ld

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,23 @@ SECTIONS
8585
. = ALIGN(4);
8686
} >FLASH
8787

88-
.ARM.extab : {
88+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
89+
{
8990
. = ALIGN(4);
9091
*(.ARM.extab* .gnu.linkonce.armextab.*)
9192
. = ALIGN(4);
9293
} >FLASH
9394

94-
.ARM : {
95+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
96+
{
9597
. = ALIGN(4);
9698
__exidx_start = .;
9799
*(.ARM.exidx*)
98100
__exidx_end = .;
99101
. = ALIGN(4);
100102
} >FLASH
101103

102-
.preinit_array :
104+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
103105
{
104106
. = ALIGN(4);
105107
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -108,7 +110,7 @@ SECTIONS
108110
. = ALIGN(4);
109111
} >FLASH
110112

111-
.init_array :
113+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
112114
{
113115
. = ALIGN(4);
114116
PROVIDE_HIDDEN (__init_array_start = .);
@@ -118,7 +120,7 @@ SECTIONS
118120
. = ALIGN(4);
119121
} >FLASH
120122

121-
.fini_array :
123+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
122124
{
123125
. = ALIGN(4);
124126
PROVIDE_HIDDEN (__fini_array_start = .);

Linker/STM32H7xx.ld

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,32 @@ SECTIONS
107107
. = ALIGN(4);
108108
} >FLASH
109109

110-
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
111-
.ARM : {
110+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
111+
{
112+
*(.ARM.extab* .gnu.linkonce.armextab.*)
113+
} >FLASH
114+
115+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
116+
{
112117
__exidx_start = .;
113118
*(.ARM.exidx*)
114119
__exidx_end = .;
115120
} >FLASH
116121

117-
.preinit_array :
122+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
118123
{
119124
PROVIDE_HIDDEN (__preinit_array_start = .);
120125
KEEP (*(.preinit_array*))
121126
PROVIDE_HIDDEN (__preinit_array_end = .);
122127
} >FLASH
123-
.init_array :
128+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
124129
{
125130
PROVIDE_HIDDEN (__init_array_start = .);
126131
KEEP (*(SORT(.init_array.*)))
127132
KEEP (*(.init_array*))
128133
PROVIDE_HIDDEN (__init_array_end = .);
129134
} >FLASH
130-
.fini_array :
135+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
131136
{
132137
PROVIDE_HIDDEN (__fini_array_start = .);
133138
KEEP (*(SORT(.fini_array.*)))

Linker/STM32H7xx_RAM.ld

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,32 @@ SECTIONS
107107
. = ALIGN(4);
108108
} >RAM_D1
109109

110-
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM_D1
111-
.ARM : {
110+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
111+
{
112+
*(.ARM.extab* .gnu.linkonce.armextab.*)
113+
} >RAM_D1
114+
115+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
116+
{
112117
__exidx_start = .;
113118
*(.ARM.exidx*)
114119
__exidx_end = .;
115120
} >RAM_D1
116121

117-
.preinit_array :
122+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
118123
{
119124
PROVIDE_HIDDEN (__preinit_array_start = .);
120125
KEEP (*(.preinit_array*))
121126
PROVIDE_HIDDEN (__preinit_array_end = .);
122127
} >RAM_D1
123-
.init_array :
128+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
124129
{
125130
PROVIDE_HIDDEN (__init_array_start = .);
126131
KEEP (*(SORT(.init_array.*)))
127132
KEEP (*(.init_array*))
128133
PROVIDE_HIDDEN (__init_array_end = .);
129134
} >RAM_D1
130-
.fini_array :
135+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
131136
{
132137
PROVIDE_HIDDEN (__fini_array_start = .);
133138
KEEP (*(SORT(.fini_array.*)))

Linker/STM32H7xx_RAM_SIGNATURE.ld

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,32 @@ SECTIONS
112112
. = ALIGN(4);
113113
} >RAM_D1
114114

115-
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM_D1
116-
.ARM : {
115+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
116+
{
117+
*(.ARM.extab* .gnu.linkonce.armextab.*)
118+
} >RAM_D1
119+
120+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
121+
{
117122
__exidx_start = .;
118123
*(.ARM.exidx*)
119124
__exidx_end = .;
120125
} >RAM_D1
121126

122-
.preinit_array :
127+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
123128
{
124129
PROVIDE_HIDDEN (__preinit_array_start = .);
125130
KEEP (*(.preinit_array*))
126131
PROVIDE_HIDDEN (__preinit_array_end = .);
127132
} >RAM_D1
128-
.init_array :
133+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
129134
{
130135
PROVIDE_HIDDEN (__init_array_start = .);
131136
KEEP (*(SORT(.init_array.*)))
132137
KEEP (*(.init_array*))
133138
PROVIDE_HIDDEN (__init_array_end = .);
134139
} >RAM_D1
135-
.fini_array :
140+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
136141
{
137142
PROVIDE_HIDDEN (__fini_array_start = .);
138143
KEEP (*(SORT(.fini_array.*)))

Linker/STM32H7xx_SIGNATURE.ld

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,32 @@ SECTIONS
112112
. = ALIGN(4);
113113
} >FLASH
114114

115-
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
116-
.ARM : {
115+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
116+
{
117+
*(.ARM.extab* .gnu.linkonce.armextab.*)
118+
} >FLASH
119+
120+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
121+
{
117122
__exidx_start = .;
118123
*(.ARM.exidx*)
119124
__exidx_end = .;
120125
} >FLASH
121126

122-
.preinit_array :
127+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
123128
{
124129
PROVIDE_HIDDEN (__preinit_array_start = .);
125130
KEEP (*(.preinit_array*))
126131
PROVIDE_HIDDEN (__preinit_array_end = .);
127132
} >FLASH
128-
.init_array :
133+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
129134
{
130135
PROVIDE_HIDDEN (__init_array_start = .);
131136
KEEP (*(SORT(.init_array.*)))
132137
KEEP (*(.init_array*))
133138
PROVIDE_HIDDEN (__init_array_end = .);
134139
} >FLASH
135-
.fini_array :
140+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
136141
{
137142
PROVIDE_HIDDEN (__fini_array_start = .);
138143
KEEP (*(SORT(.fini_array.*)))

Linker/STM32L4xx.ld

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,21 +102,23 @@ SECTIONS
102102
. = ALIGN(8);
103103
} >FLASH
104104

105-
.ARM.extab :
105+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
106106
{
107107
. = ALIGN(8);
108108
*(.ARM.extab* .gnu.linkonce.armextab.*)
109109
. = ALIGN(8);
110110
} >FLASH
111-
.ARM : {
112-
. = ALIGN(8);
111+
112+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
113+
{
114+
. = ALIGN(8);
113115
__exidx_start = .;
114116
*(.ARM.exidx*)
115117
__exidx_end = .;
116118
. = ALIGN(8);
117119
} >FLASH
118120

119-
.preinit_array :
121+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
120122
{
121123
. = ALIGN(8);
122124
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -125,7 +127,7 @@ SECTIONS
125127
. = ALIGN(8);
126128
} >FLASH
127129

128-
.init_array :
130+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
129131
{
130132
. = ALIGN(8);
131133
PROVIDE_HIDDEN (__init_array_start = .);
@@ -134,7 +136,7 @@ SECTIONS
134136
PROVIDE_HIDDEN (__init_array_end = .);
135137
. = ALIGN(8);
136138
} >FLASH
137-
.fini_array :
139+
.fini_array (READONLY) :
138140
{
139141
. = ALIGN(8);
140142
PROVIDE_HIDDEN (__fini_array_start = .);

0 commit comments

Comments
 (0)