H.J. Lu
ac187dc4ab
Always indirect branch to __libc_start_main via GOT
...
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-06-09 04:43:31 -07:00
H.J. Lu
21683b5a7d
Replace @PLT with @GOTPCREL(%rip) in call
...
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-03-04 16:15:41 -08:00
Joseph Myers
f7a9f785e5
Update copyright dates with scripts/update-copyrights.
2016-01-04 16:05:18 +00:00
Joseph Myers
b168057aaa
Update copyright dates with scripts/update-copyrights.
2015-01-02 16:29:47 +00:00
Brooks Moses
467fec0bb4
sysdeps/x86_64/start.S doesn't have a .size elf directive for _start.
...
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-11-24 16:26:58 -08:00
Allan McRae
d4697bc93d
Update copyright notices with scripts/update-copyrights
2014-01-01 22:00:23 +10:00
Joseph Myers
2969121014
Remove bounded-pointers handling from x86_64 assembly sources.
2013-02-17 21:57:26 +00:00
Joseph Myers
568035b787
Update copyright notices with scripts/update-copyrights.
2013-01-02 19:05:09 +00:00
H.J. Lu
6cdef1ab36
Update sysdeps/x86_64/start.S for x32
2012-05-14 17:50:41 -07:00
Andreas Jaeger
9d639b9918
Move x86_64/elf files to x86_64
2012-03-19 20:55:26 +01:00