Hi Vineet,
Vineet Gupta wrote,

> Currently crt1 takes address of functions (main,_init,_fini) directly
> which doesn't generate truely position independent code, but zero based
> values instead. e.g.
> 
> |  __start:
> |        ...
> |     add_s   r2,sp,0x4
> |     mov_s   r0, main
> 
> generates to
> 
> |  000156ec <__start>:
> |  ...
> |     156f4:  add_s   r2,sp,0x4
> |     156f6:  mov_s   r0,0x15f7c
> |  ...
> |  00015f7c <main>:
> |     15f7c:  push_s  blink
> 
> This works just fine for the normal (non PIE) dynamic executables since
> they are loaded at address 0. However this is not true for PIE
> executables. So for Scrt1 we use a true position independent way when
> taking function addresses.
> 
> Cc: ucl...@uclibc.org <ucl...@uclibc.org>
> Cc: devel@uclibc-ng.org <devel@uclibc-ng.org>
> Cc: Cupertino Miranda <cmira...@synopsys.com>
> Signed-off-by: Vineet Gupta <vgu...@synopsys.com>
> ---
>  libc/sysdeps/linux/arc/crt1.S | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)

Applied and pushed,
 thx
  Waldemar
_______________________________________________
devel mailing list
devel@uclibc-ng.org
http://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to