summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arc/crt1.S
AgeCommit message (Collapse)Author
2016-10-19ARC: update .note.ABI-tag for ABIv4Vineet Gupta
Cc: Anton Kolesov <akolesov@synopsys.com> Cc: linux-snps-arc@lists.infradead.org Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-08-01arc: crt1: Fix to PIECupertino Miranda
crt1.S needed to use a got relative reference. Libraries like pthreads define a _init and unless it is GOT, the linker will fail because it will try to create a dynamic reloc on .text section, more precisely on __start. Signed-off-by: Cupertino Miranda <cmiranda@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Vlad Zakharov <vzakhar@synopsys.com> Cc: Vineet Gupta <vgupta@synopsys.com>
2016-06-23ARC: Enable shared crt1Vineet Gupta
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>
2016-06-23ARC: Implement .note.ABI-tag section in crt1.SAnton Kolesov
Linux Standard Base specifies section .note.ABI-tag that can be considered as a marker for ELF files targeted to Linux systems. See https://refspecs.linuxfoundation.org/LSB_1.2.0/gLSB/noteabitag.html This section, for example, is used by the GDB to identify Linux ELFs as compared to baremetal ELFs that do not have this section. Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com> Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
2014-01-08ARC: opencode ENTRY/END macros in crt1Vineet Gupta
crt1.S -> include sysdep.h -> include sysnum.h In multistage gcc build, Buildroot happens to build crt1.S before sysnum.h is generated. So break the above include chain and opencode the ENTRY/END macros. Reported-by: Anton Kolesov <akolesov@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-12-20ARC port to uClibcVineet Gupta
For this port, I would like to give due credit to: - Folks from Codito technologies (Sameer, Amit, Kanika, Ramana,...) who did the very first port - ARC UK from 2007-2009 (Joern, Irfan, Khurram, Phil... - Late Brendan Kehoe (may he RIP) Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>