summaryrefslogtreecommitdiff
path: root/librt/dso_handle.c
diff options
context:
space:
mode:
authorVineet Gupta <Vineet.Gupta1@synopsys.com>2016-06-23 17:21:15 +0530
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-23 20:48:25 +0200
commit2c3be84e73fa4013608e9b348386ddff91ae0c8c (patch)
treec828ba4f11ef6f97e7b67d326c4f79f8558f1588 /librt/dso_handle.c
parente58bacb7ec462912e843fc616288995db88b7275 (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 'librt/dso_handle.c')
0 files changed, 0 insertions, 0 deletions