From: Roland McGrath Date: Fri, 26 Apr 2013 21:23:58 +0000 (-0700) Subject: BZ#15407: Complete CFI annotations in x86_64 _start code. X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Froland%2Fx86_64-crt1-cfi;p=thirdparty%2Fglibc.git BZ#15407: Complete CFI annotations in x86_64 _start code. --- diff --git a/ChangeLog b/ChangeLog index 225236c6d87..ab3ad2990f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-04-26 Roland McGrath + + [BZ #15407] + * sysdeps/x86_64/start.S (_start): Use cfi_adjust_cfa_offset for + change to the stack pointer. + 2013-04-26 Joseph Myers [BZ #15406] diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S index 7cbc157662b..e50b33cfd98 100644 --- a/sysdeps/x86_64/start.S +++ b/sysdeps/x86_64/start.S @@ -88,6 +88,7 @@ _start: #else popq %rsi /* Pop the argument count. */ #endif + cfi_adjust_cfa_offset (LP_SIZE) /* argv starts just at the current stack top. */ mov %RSP_LP, %RDX_LP /* Align the stack to a 16 byte boundary to follow the ABI. */ @@ -95,10 +96,12 @@ _start: /* Push garbage because we push 8 more bytes. */ pushq %rax + cfi_adjust_cfa_offset (-8) /* Provide the highest stack address to the user code (for stacks which grow downwards). */ pushq %rsp + cfi_adjust_cfa_offset (-8) #ifdef SHARED /* Pass address of our own entry points to .fini and .init. */