.gpword works only with local symbols on certain binutils versions

Signed-off-by: Vlad Lungu <[EMAIL PROTECTED]>
---
 cpu/mips/start.S |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/cpu/mips/start.S b/cpu/mips/start.S
index 6e1a78c..947128d 100644
--- a/cpu/mips/start.S
+++ b/cpu/mips/start.S
@@ -345,7 +345,8 @@ relocate_code:
        jr      t0
        nop
 
-       .gpword _GLOBAL_OFFSET_TABLE_   /* _GLOBAL_OFFSET_TABLE_ - _gp  */
+       .word   _gp
+       .word   _GLOBAL_OFFSET_TABLE_
        .word   uboot_end_data
        .word   uboot_end
        .word   num_got_entries
@@ -358,8 +359,10 @@ in_ram:
         * generated by GNU ld. Skip these reserved entries from relocation.
         */
        lw      t3, -4(t0)      /* t3 <-- num_got_entries       */
-       lw      t4, -16(t0)     /* t4 <-- (_GLOBAL_OFFSET_TABLE_ - _gp) */
-       add     t4, t4, gp      /* t4 now holds _GLOBAL_OFFSET_TABLE_   */
+       lw      t4, -16(t0)     /* t4 <-- _GLOBAL_OFFSET_TABLE_ */
+       lw      t5, -20(t0)     /* t5 <-- _gp   */
+       sub     t4, t5          /* compute offset*/
+       add     t4, t4, gp      /* t4 now holds relocated _GLOBAL_OFFSET_TABLE_ 
*/
        addi    t4, t4, 8       /* Skipping first two entries.  */
        li      t2, 2
 1:
-- 
1.5.4




-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to