commit 22069215 - [MIPS] Fix $gp usage
Dear Shinya,
I think we need your help with the current MIPS code; it seems that this commit is causing problems:
commit 22069215eb7adf5a3888bf7c7784ea9d70a72cd0 Author: Shinya Kuribayashi <[email protected]> Date: Sun Oct 21 10:55:36 2007 +0900 [MIPS] Fix $gp usage
The issue is with "cpu/mips/start.S"; with older toolchains (like ELDK 3.1.1 which uses binutils 2.14, we get:
start.S: Assembler messages:
start.S:348: Error: relocation out of range make[1]: *** [start.o] Error 1
With ELDK 4.0 and 4.1 (binutils 2.16.1) we get no erros, but these warnigns:
cache.S: Assembler messages:
cache.S:243: Warning: Pretending global symbol used as branch target is local. cache.S:250: Warning: Pretending global symbol used as branch target is local.
Jean-Christophe Plagniol-Villard reports that he sees no problems (no errors nor warnings) with binutils 2.18
I wonder if it was possible to come up with a version of the code that builds with somewhat older versions of the toolchains, too?
Thanks in advance.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The price of curiosity is a terminal experience.
- Terry Pratchett, _The Dark Side of the Sun_Quoted 7 lines · Wolfgang Denk
start.S: Assembler messages:
start.S:348: Error: relocation out of range make[1]: *** [start.o] Error 1
cache.S: Assembler messages:
cache.S:243: Warning: Pretending global symbol used as branch target is local. cache.S:250: Warning: Pretending global symbol used as branch target is local.
Confirmed both error and warning. I'll look into them.
Quoted 2 lines
Jean-Christophe Plagniol-Villard reports that he sees no problems (no errors nor warnings) with binutils 2.18
Yes, it seems.
Quoted 2 lines
I wonder if it was possible to come up with a version of the code that builds with somewhat older versions of the toolchains, too?
I have no idea at the moment.
Shinya
Dear Shinya,
Quoted 2 lines · in message <[email protected]> you wrote:
Confirmed both error and warning. I'll look into them.
Thanks a lot. May I ask which toolchain you have been using?
Quoted 4 lines
Quoted 2 lines
I wonder if it was possible to come up with a version of the code that builds with somewhat older versions of the toolchains, too?
I have no idea at the moment.
I ggogled a bit, and found a couple of related entries, but nothing that looked like an immediate solution. But then I'm no MIPS expert...
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Only in our dreams we are free. The rest of the time we need wages.
- Terry Pratchett, _Wyrd Sisters_Quoted 8 lines · Shinya Kuribayashi
Quoted 4 lines · Wolfgang Denk
start.S: Assembler messages:
start.S:348: Error: relocation out of range make[1]: *** [start.o] Error 1
Quoted 7 lines
Quoted 4 lines
cache.S: Assembler messages:
cache.S:243: Warning: Pretending global symbol used as branch target is local. cache.S:250: Warning: Pretending global symbol used as branch target is local.Confirmed both error and warning. I'll look into them.
GNU assembler version 2.14 (mips-linux) using BFD version 2.14 20030612 That is from ELDK 3.1.1 (binutils 2.14-6), I definitely get the error.
GNU assembler version 2.14.90.0.6 (mips-linux) using BFD version 2.14.90.0.6 20030820 uClibc
This works, but the warning is present. There's a 3 months difference here.
Quoted 8 lines
Quoted 4 lines
Jean-Christophe Plagniol-Villard reports that he sees no problems (no errors nor warnings) with binutils 2.18
Yes, it seems.
The warning seems harmless.
Quoted 7 lines
Quoted 3 lines
I wonder if it was possible to come up with a version of the code that builds with somewhat older versions of the toolchains, too?
I have no idea at the moment.
We can somewhat revert the changes made, that's the only way it would work with that particular version.
Apparently, .gpword was supposed to work only on local symbols (this comes from the MIPSpro tools), but this
was relaxed in later versions of gas. See
http://wwweic.eri.u-tokyo.ac.jp/computer/manual/lx/SGI_Developer/books/MProAsLg_PG/sgi_html/ch08.html
Patch to follow.
Regards,
Vlad