
On Sun, 16 Aug 2009, Wolfgang Denk wrote:
...
I change this to:
*(.text) . = ALIGN(16); *(.eh_frame) *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
Unfortunately it turns out that this breaks some older tool chains. For example, using ELDK 3.1 (binutils 2.14-5) we get:
arm-linux-ld:/home/wd/git/u-boot/work/cpu/s3c44b0/u-boot.lds:39: parse error
It seems this old version of ld does not understand the
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
line yet.
Do you see any want to make this backward compatible with older versions of ld?
I don't have an ld old enough to not like that line so I'm not sure what the problem is exactly.
There wouldn't be any significant downside to changing it to:
*(SORT_BY_ALIGNMENT(.rodata*))
If that would work with your ld. Using *(.rodata*) will result in extra padding and a larger data segment. It may not be all that much extra though...