2013/2/25 Juhyun (Justin) Oh <[email protected]>: > Hi, > > I got a problem while I was trying out v2013.01.01 on the u-boot-mips fork > repo. It looks like my u-boot binary built with "-pie" linker option doesn't > work due to wrong "gp" initialization. > > In the "start.S" file, the gp is supposed to be initialized with "_gp" > because ra will hold the address of ".word _gp" line. The below is part of > "start.S". > > ---------------------------- > ... > /* Initialize $gp */ > bal 1f > nop > .word _gp > 1: > lw gp, 0(ra) > ... > ---------------------------- > > Without the -pie option, linker puts the start address of the .got section. > However, with -pie option, the ".word _gp" is translated to "nop". The below > is disassembled code. > > ---------------------------------------------------------------------------- > 84001490 <reset>: > ... > 840014b8: 40804800 mtc0 zero,c0_count > 840014bc: 40805800 mtc0 zero,c0_compare > 840014c0: 04110002 bal 840014cc <reset+0x3c> > 840014c4: 00000000 nop > 840014c8: 00000000 nop <--------------- > 840014cc: 8ffc0000 lw gp,0(ra) > 840014d0: 3c1d8440 lui sp,0x8440 > 840014d4: 8f9982c0 lw t9,-32064(gp) > 840014d8: 03200008 jr t9 > 840014dc: 00000000 nop > ---------------------------------------------------------------------------- > > Could anyone tell me what is going on here? Am I missing anything? > > Thanks, > Justin
which board and toolchain do you use? PIE support has been tested with various toolchains from ELDK, CodeSourcery and OpenWRT. -- Best regards, Daniel _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

