On 6/2/06, Nigel Stephens <nigel@xxxxxxxx> wrote:
Nigel Stephens wrote: > >> >> 8 .rodata 00000190 000000f0 000000f0 000000f0 2**4 >> CONTENTS, ALLOC, LOAD, READONLY, DATA >> 9 .rodata.str1.4 000005fe 00000280 00000280 00000280 2**2 >> CONTENTS, ALLOC, LOAD, READONLY, DATA > > OK. I think that the final .rodata.str1.4 section is causing your > problem because the offset between its load address and the other > section is huge, causing "objcopy -O binary" to generate a huge file. > This is a new section generated by gcc 3.x and above to hold mergeable > constant data. Try changing the line in your linker script which (I'm > guessing here) probably looks like this: > > *(.rodata) > > to: > > *(.rodata) *(.rodata.*) > I failed to spot that .rodata also has a "bad" load address. So it looks like .rodata also isn't correctly handled in your linker script.
you are right, i do not handle it correctly, and now i fixed it and the objcopy run with out warning.
Nigel
thanks for all above Best Regards zhuzhenhua