
Thanks for your advise, I compile with -mrelocatable. If I remove this flag, Error is shown:
ERROR: Your compiler doesn't generate .fixup sections!
My host gcc is gcc 4.1.2 20080704 (Red Hat 4.1.2-44), I try different toolchain: powerpc-unknown-linux-gnu-gcc gcc version 4.4.3 (crosstool-NG-1.6.0) ppc_82xx-gcc gcc version 4.2.2 from ELDK powerpc-603-linux-gnu-gcc gcc version 4.1.0 from crosstool 0.43
The problem is still there : ( ---------------------------------------------------- --JRJR
Subject: Re: [U-Boot] Instructions in TEXT section can not load data from other section To: jason622@hotmail.com CC: u-boot@lists.denx.de From: joakim.tjernlund@transmode.se Date: Tue, 16 Mar 2010 09:50:42 +0100
Hi, everyone.
I have got a problem when I porting U-BOOT to my board
with MPC8247. My configuration file is based on the MPC8260ADS_config.
The problem is : The instruction in TEXT section can not load data in
other (DATA) sections. It seems there is a relocation to the data section .
For example: If I use
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr) () != 0) { hang (); } }
I can't jump to functions in init_sequence[] ;
If I called functions such as get_clocks() in board_init_f , it works fine.
So the code in board_init_f can not load address in init_sequence[] , because
init_sequence[] is out of TEXT section.
The same thing happens with iop_conf_tab[][], and strings used by "puts".
Anyone there has the same problem? Or know the point? Pls help!
Yes, that is a relocation problem. Do you compile with -mrelocatable? If so, you might have a broken toolchain that don't produce .fixups
jocke
_________________________________________________________________ SkyDrive电子画册,带你领略精彩照片,分享“美”时“美”刻! http://www.windowslive.cn/campaigns/e-magazine/ngmchina/?a=c