[uclibc-ng-devel] [PATCH] ARC: support shared crt1
Waldemar Brodkorb
wbx at uclibc-ng.org
Thu Jun 16 19:49:10 UTC 2016
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 <vgupta at 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 at pcl
> >> + add r3, pcl, @_init at pcl
> >> + add r4, pcl, @_fini at 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.
> Do u want me to respin with beefed up changelog.
Yes, please.
> > Sorry, had to resend with correct sender address.
>
> My address was wrong ?
No, I use mutt and I am to lazy to configure send-hooks, so I
manually change my mail address before sending e-Mails :/
best regards
Waldemar
More information about the uClibc
mailing list