From: Cupertino Miranda <[email protected]>

crt1.S needed to use a got relative reference.

Libraries like pthreads define a _init and unless it is GOT, the
linker will fail because it will try to create a dynamic reloc on
.text section, more precisely on __start.

Signed-off-by: Cupertino Miranda <[email protected]>
Signed-off-by: Alexey Brodkin <[email protected]>
Cc: Vlad Zakharov <[email protected]>
Cc: Vineet Gupta <[email protected]>
---
 libc/sysdeps/linux/arc/crt1.S | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libc/sysdeps/linux/arc/crt1.S b/libc/sysdeps/linux/arc/crt1.S
index 178c5b4..ae863e7 100644
--- a/libc/sysdeps/linux/arc/crt1.S
+++ b/libc/sysdeps/linux/arc/crt1.S
@@ -42,9 +42,9 @@ __start:
        mov_s   r5, r0          ; rltd_fini
        add_s   r2, sp, 4       ; argv
 #ifdef L_Scrt1
-       add     r0, pcl, @main@pcl
-       add     r3, pcl, @_init@pcl
-       add     r4, pcl, @_fini@pcl
+       ld      r0, [pcl, @main@gotpc]
+       ld      r3, [pcl, @_init@gotpc]
+       ld      r4, [pcl, @_fini@gotpc]
 #else
        mov_s   r0, main
        mov_s   r3, _init
-- 
2.7.4

_______________________________________________
devel mailing list
[email protected]
http://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to