summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/start.S
AgeCommit message (Collapse)Author
2018-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2017-08-02x86-64: Check PIC instead of SHARED in start.SH.J. Lu
Since start.o may be compiled as PIC, we should check PIC instead of SHARED. * sysdeps/x86_64/start.S (_start): Check PIC instead of SHARED.
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
2016-06-09Always indirect branch to __libc_start_main via GOTH.J. Lu
Since __libc_start_main in libc.so is called very early, lazy binding isn't relevant. Always call __libc_start_main with indirect branch via GOT to avoid extra branch to PLT slot. In case of static executable, ld in binutils 2.26 or above can convert indirect branch into direct branch: 0000000000400a80 <_start>: 400a80: 31 ed xor %ebp,%ebp 400a82: 49 89 d1 mov %rdx,%r9 400a85: 5e pop %rsi 400a86: 48 89 e2 mov %rsp,%rdx 400a89: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp 400a8d: 50 push %rax 400a8e: 54 push %rsp 400a8f: 49 c7 c0 20 1b 40 00 mov $0x401b20,%r8 400a96: 48 c7 c1 90 1a 40 00 mov $0x401a90,%rcx 400a9d: 48 c7 c7 c0 03 40 00 mov $0x4003c0,%rdi 400aa4: 67 e8 96 09 00 00 addr32 callq 401440 <__libc_start_main> 400aaa: f4 hlt * sysdeps/x86_64/start.S (_start): Always indirect branch to __libc_start_main via GOT.
2016-03-04Replace @PLT with @GOTPCREL(%rip) in callH.J. Lu
Since __libc_start_main is called very early, lazy binding isn't relevant here. Use indirect branch via GOT to avoid extra branch to PLT slot. [BZ #19745] * sysdeps/x86_64/start.S (_start): __libc_start_main@PLT with *__libc_start_main@GOTPCREL(%rip) in call.
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-11-24sysdeps/x86_64/start.S doesn't have a .size elf directive for _start.Brooks Moses
This tripped up some analysis I was doing. This patch is the straightforward fix. I see no regressions on a "make check" using ENTRY and END.
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-02-17Remove bounded-pointers handling from x86_64 assembly sources.Joseph Myers
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-05-14Update sysdeps/x86_64/start.S for x32H.J. Lu
2012-03-19Move x86_64/elf files to x86_64Andreas Jaeger