
Daniel Schwierzeck <daniel.schwierzeck <at> gmail.com> writes:
Hi,
2013/2/26 Juhyun (Justin) Oh <Juhyun_Oh <at> sigmadesigns.com>:
HI Daniel,
I'm using CodeSourcery 4.5.2. I've configured and have built the code
for "incaip" board and "dbau1000".
The results are the same. (i.e. gp has been set with wrong value)
Could you tell me the CodeSourcery toolchain versions known to be
working? I'd like to try out the same version.
Which CodeSourcery release do you use?
I have tried following toolchains and all of them have _gp initialized correctly.
Sourcery CodeBench Lite 2011.09-75 gcc version 4.5.2 (Sourcery CodeBench Lite 2011.09-75) GNU ld (Sourcery CodeBench Lite 2011.09-75) 2.21.53.20110905
Sourcery CodeBench Lite 2012.03-63: gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-63) GNU ld (Sourcery CodeBench Lite 2012.03-63) 2.21.53.20110905
ELDK-5.2.1: gcc version 4.6.4 20120303 (prerelease) (GCC) GNU ld (GNU Binutils) 2.22
ELDK-5.3: gcc version 4.7.2 (GCC) GNU ld (GNU Binutils) 2.22
mips-u24kc-linux-gnu-ld --version GNU ld (GNU Binutils) 2.18
--help ....
-pie, --pic-executable Create a position independent executable
I've observed:
with -pie:
800004c0 04110002: bgezal r0, 0x2L (=2) -> 0x00000000800004cc 800004c4 00000000: nop 800004c8 00000000: nop 800004cc 8ffc0000: lw r28, 0x0L (=0) (r31)
wrong: _gp = 0
with --pic-executable:
800004c0 04110002: bgezal r0, 0x2L (=2) -> 0x00000000800004cc 800004c4 00000000: nop 800004c8 800372c0: lb r3, 0x72c0L (=29376) (r0) 800004cc 8ffc0000: lw r28, 0x0L (=0) (r31)
correct: _gp = 800372c0
Looks like something is wrong with option processing on ld.