[U-Boot-Users] Coldfire: Problem with linking / CFG_MONITOR_BASE

w.wegner at astro-kom.de w.wegner at astro-kom.de
Wed Aug 8 16:47:41 CEST 2007


Hi,

sorry for answering (or following up to) my own message.

The problem is related to the linker script and code size.

I can link U-Boot successfully when commenting out the special treatment for the 
environment in the linker script:

/*    . = DEFINED(env_offset) ? env_offset : .;*/
/*    common/environment.o      (.text)*/

The resulting image is, however, more than 2 times as big as the image configured for 
starting from RAM, I did not yet figure out why.
(regular: around 100k, now: 238k)

Best regards,
Wolfgang

On 8 Aug 2007 at 15:33, w.wegner at astro-kom.de wrote:

> Dear List,
> 
> I was trying to clean up my "new" mcf532x tree to prepare for sending patches, and switched 
> back to CONFIG_MONITOR_IS_IN_RAM being undefined.
> 
> Now, I get the following error during final linking:
> 
> cpu/mcf532x/start.o(.text+0x452):start.S:163: relocation truncated to fit: R_68K_PC16 
> against symbol `board_init_f' defined in .text section in lib_m68k/libm68k.a(board.o)
> cpu/mcf532x/start.o(.text+0x504):start.S:266: relocation truncated to fit: R_68K_PC16 
> against symbol `int_handler' defined in .text section in lib_m68k/libm68k.a(interrupts.o)
> make: *** [u-boot] Error 1
> 
> I could track it down that this is triggered by the setting of 
> #ifdef  CONFIG_MONITOR_IS_IN_RAM
> #define CFG_MONITOR_BASE        0x40020000
> #else
> #define CFG_MONITOR_BASE        (CFG_FLASH_BASE + 0x400)
> #endif
> in my config.h, i.e. if I swap these two values, compilation fails in the other case.
> 
> Can anybody give a hint what might be going wrong here?
> 
> Thank you,
> Wolfgang





More information about the U-Boot mailing list