diff options
| author | Vineet Gupta <Vineet.Gupta1@synopsys.com> | 2016-06-23 17:21:15 +0530 | 
|---|---|---|
| committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-06-23 20:48:25 +0200 | 
| commit | 2c3be84e73fa4013608e9b348386ddff91ae0c8c (patch) | |
| tree | c828ba4f11ef6f97e7b67d326c4f79f8558f1588 /libc/stdlib/_stdlib_strto_l.c | |
| parent | e58bacb7ec462912e843fc616288995db88b7275 (diff) | |
ARC: Enable shared crt1
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: uclibc@uclibc.org <uclibc@uclibc.org>
Cc: devel@uclibc-ng.org <devel@uclibc-ng.org>
Cc: Cupertino Miranda <cmiranda@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'libc/stdlib/_stdlib_strto_l.c')
0 files changed, 0 insertions, 0 deletions
