2 parents cdd7175 + 8e64add commit 4e7297dCopy full SHA for 4e7297d
1 file changed
aarch64/zynqmp/common.ld
@@ -143,11 +143,6 @@ SECTIONS
143
144
__region_data_start = .;
145
146
- .got :
147
- {
148
- *(.got)
149
- } > REGION_DATA
150
-
151
.mmu_ram_table_2 : ALIGN(0x1000)
152
{
153
__mmu_ram_table_2_start = .;
@@ -167,6 +162,12 @@ SECTIONS
167
162
168
163
__data = .;
169
164
__data_start = .;
165
+ /* The GOT must be part of the memory map because some code models reach
166
+ data globals through it (-fsanitize=hwaddress enables tagged-globals,
+ which does exactly that), and an orphan .got ends up past _end, on
+ top of the heap. Keeping it inside .data also makes it covered by
+ __data_start .. __data_end, which some boards copy from ROM. */
170
+ *(.got.plt) *(.igot.plt) *(.got) *(.igot)
171
*(.data .data.* .gnu.linkonce.d*)
172
*(.mmu_tbl0)
173
*(.mmu_tbl1)
0 commit comments