
Just to follow up. I was able to get the toolchain I built, gcc-3.3.3 and binutil 2.14.90.0.6, to compile u-boot.bin by modifying linker script, board/a3000/u-boot.lds.
--- u-boot.lds 2003-06-27 17:31:56.000000000 -0400 +++ u-boot.lds.bak 2004-12-15 10:39:49.000000000 -0500 @@ -70,6 +70,7 @@ . = ALIGN(16); *(.rodata) *(.rodata1) + *(.rodata.str1.4) } .fini : { *(.fini) } =0 .ctors : { *(.ctors) }
Apparently, the toolchain I built wasn't handling the .rodata.str1.4 section correctly, it wasn't being subsumed into the .text section. Instead it was at some low address. This caused the objcopy command to try and pad a large number of bytes. I'm still curious as to why the toolchain in ELDK-3.1 was able to build the u-boot.bin file without this change in the linker script. Whose responsibility is it to properly handle the reallocation of the ".rodata.str1.4" section? Is that a proper question?
regards, Andrew