From e189f98fcf778031299378f193c52447af6e752a Mon Sep 17 00:00:00 2001 From: Cupertino Miranda Date: Mon, 1 Aug 2016 10:44:42 +0300 Subject: arc: crt1: Fix to PIE 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 Signed-off-by: Alexey Brodkin Cc: Vlad Zakharov Cc: Vineet Gupta --- 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 178c5b44f..ae863e7ac 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 -- cgit v1.2.3