From 185e62e71e5db52e76f3c7e57e4de15d5688cb2e Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 9 Jun 2017 23:15:52 -0700 Subject: Don't use .section\nALIGN, reorder sdata and srodata I'm hoping this will make everything more likely to align. We can't use the other mechanism because our loader is lazy and assumes all the sections are contiguous. --- bsp/env/coreplexip-e31-arty/link.lds | 16 +++++++--------- bsp/env/freedom-e300-hifive1/link.lds | 16 +++++++--------- 2 files changed, 14 insertions(+), 18 deletions(-) (limited to 'bsp') diff --git a/bsp/env/coreplexip-e31-arty/link.lds b/bsp/env/coreplexip-e31-arty/link.lds index 4e41577..739bc48 100644 --- a/bsp/env/coreplexip-e31-arty/link.lds +++ b/bsp/env/coreplexip-e31-arty/link.lds @@ -122,10 +122,15 @@ SECTIONS *(.gnu.linkonce.d.*) } >ram AT>flash :ram_init - .srodata : - ALIGN(8) + .sdata : { PROVIDE( _gp = . + 0x800 ); + *(.sdata .sdata.*) + *(.gnu.linkonce.s.*) + } >ram AT>flash :ram_init + + .srodata : + { *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) @@ -133,13 +138,6 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : - ALIGN(8) - { - *(.sdata .sdata.*) - *(.gnu.linkonce.s.*) - } >ram AT>flash :ram_init - . = ALIGN(4); PROVIDE( _edata = . ); PROVIDE( edata = . ); diff --git a/bsp/env/freedom-e300-hifive1/link.lds b/bsp/env/freedom-e300-hifive1/link.lds index 08b196f..bc4488d 100644 --- a/bsp/env/freedom-e300-hifive1/link.lds +++ b/bsp/env/freedom-e300-hifive1/link.lds @@ -122,10 +122,15 @@ SECTIONS *(.gnu.linkonce.d.*) } >ram AT>flash :ram_init - .srodata : - ALIGN(8) + .sdata : { PROVIDE( _gp = . + 0x800 ); + *(.sdata .sdata.*) + *(.gnu.linkonce.s.*) + } >ram AT>flash :ram_init + + .srodata : + { *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) @@ -133,13 +138,6 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : - ALIGN(8) - { - *(.sdata .sdata.*) - *(.gnu.linkonce.s.*) - } >ram AT>flash :ram_init - . = ALIGN(4); PROVIDE( _edata = . ); PROVIDE( edata = . ); -- cgit v1.2.3