On Thu, Jun 16, 2016 at 09:49:10PM +0200, Waldemar Brodkorb wrote: > Hi Vineet, > Vineet Gupta wrote, > > > On Wednesday 15 June 2016 08:34 PM, Waldemar Brodkorb wrote: > > > Hi Vineet, > > > Vineet Gupta wrote, > > > > > >> Signed-off-by: Vineet Gupta <vgu...@synopsys.com> > > >> --- > > >> libc/sysdeps/linux/arc/crt1.S | 8 ++++++-- > > >> 1 file changed, 6 insertions(+), 2 deletions(-) > > >> > > >> diff --git a/libc/sysdeps/linux/arc/crt1.S > > >> b/libc/sysdeps/linux/arc/crt1.S > > >> index 95c41f888850..e38c8e81b2c0 100644 > > >> --- a/libc/sysdeps/linux/arc/crt1.S > > >> +++ b/libc/sysdeps/linux/arc/crt1.S > > >> @@ -41,11 +41,15 @@ __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 > > >> +#else > > >> mov_s r0, main > > >> mov_s r3, _init > > >> mov r4, _fini > > >> - > > >> +#endif > > >> and sp, sp, -8 > > >> mov r6, sp > > > Can you please be a little more descriptive why this patch is > > > useful? Will ARC support static PIE or is Scrt1.o used in other > > > code? > > > > This is for a dynamically linked PIE - can we have static linked PIE ? > > Current > > approach of taking addresses of functions, in not position independent but > > still > > works for the normal dynamically linked executables (non PIE) since the > > zero based > > addresses are rightly resolved in final link. This is not true for PIE > > hence we > > need a really position independent way (PC relative addr) to pass those > > function > > addresses. > > You can try static PIE with binutils 2.26 and up with > -Wl,--no-dynamic-linker, but my tests with ARM/MIPS failed. > So I am not sure if crt1.S is the problem or something else.
Static PIE requires an rcrt1.o that's responsible for performing self-relocation equivalent to what the dynamic linker does to itself. Scrt1.o is for dynamic-linker PIE (and it's compatible with linking in non-PIE code whether it's static or dynamic linked, but not necessary in those cases). Rich _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc