[U-Boot] [PATCH] ARMv7: Fix linker errors across toolchain versions

Albert ARIBAUD albert.aribaud at free.fr
Wed Dec 1 22:39:38 CET 2010


This one is a conundrum.

Using 2010q1, building omap3_evm causes a linker warning 
"arm-none-linux-gnueabi-ld: u-boot: section .bss vma 0x8003e8f0 overlaps 
previous sections" while building omap3_beagle does not cause any linker 
warning.

Both boards use the same armv7 u-boot.lds and have a .bss which is way 
bigger than the .rel.dyn plus .dynsym sections that it does overlay. 
IOW, they have a similar layout for .rel.dyn, .dynsym and .bss, but one 
gets the warning and one does not.

The one difference a readelf shows is that for beagle, there is only one 
segment:

00  .text .rodata .hash .data .got.plt .u_boot_cmd .rel.dyn .dynsym

While for evm there is

00  .text .rodata .hash .data .got.plt .u_boot_cmd .rel.dyn .bss
01  .dynsym

Note that .bss has appeared in segment 00 for evm, whereas it was absent 
for beagle, and that .dynsym was rejected to a second segment -- why? I 
don't know.

Note: I've tried with putting input sections .rel.dyn and .dynsym into a 
single output section .rel.dyn: this makes the second segment disappear, 
but for evm the warning remains and .bss remains in the segment.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list