[U-Boot-Users] 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 shinya.kuribayashi@necel.com 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

Wolfgang Denk wrote:
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.
Jean-Christophe Plagniol-Villard reports that he sees no problems (no errors nor warnings) with binutils 2.18
Yes, it seems.
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,
in message 481EA165.4070209@ruby.dti.ne.jp you wrote:
Confirmed both error and warning. I'll look into them.
Thanks a lot. May I ask which toolchain you have been using?
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

Shinya Kuribayashi wrote:
Wolfgang Denk wrote:
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.
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.
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.
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/MProA...
Patch to follow.
Regards, Vlad
participants (3)
-
Shinya Kuribayashi
-
Vlad Lungu
-
Wolfgang Denk