
A recent gcc added a new unaligned rodata section called '.rodata.str1.1' and that needs to be added the the linker script.
Rather than just add that one section, instead use '*(.rodata*)' to catch that section and any future rodata sections.
'*(.rodata*)' by itself will result in sub-optimal section ordering. The section will be sorted by object file, which causes extra padding between the unaligned rodata.str.1.1 of one object file and the aligned rotdata of the next object file. This is easy to fix by using the SORT_BY_ALIGNMENT command.
Signed-off-by: Trent Piepho tpiepho@freescale.com --- cpu/mpc85xx/u-boot.lds | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/cpu/mpc85xx/u-boot.lds b/cpu/mpc85xx/u-boot.lds index 404606a..f7aedc0 100644 --- a/cpu/mpc85xx/u-boot.lds +++ b/cpu/mpc85xx/u-boot.lds @@ -84,10 +84,8 @@ SECTIONS PROVIDE (etext = .); .rodata : { - *(.rodata) - *(.rodata1) - *(.rodata.str1.4) *(.eh_frame) + *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } :text .fini : { *(.fini) } =0 .ctors : { *(.ctors) }