[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