summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2012-03-16 20:49:23 +0100
committerAndreas Jaeger <aj@suse.de>2012-03-16 20:49:23 +0100
commit6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4 (patch)
tree422f8cf4c7c40f525cbe484eb0b334c249bed2ca
parent10a803e0a2ed04ba1f5e7931121acbb0f8383e9b (diff)
downloadglibc-6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4.tar.gz
glibc-6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4.tar.xz
glibc-6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4.zip
* sysdeps/x86_64/elf/start.S: Include <sysdep.h>.
	(_start): Add cfi_startproc, cfi_undefined for rip and cfi_endproc.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/elf/start.S7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 76a04fed01..05c3bfee9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* sysdeps/x86_64/elf/start.S: Include <sysdep.h>.
+	(_start): Add cfi_startproc, cfi_undefined for rip and cfi_endproc.
+
 2012-03-16  Roland McGrath  <roland@hack.frob.com>
 
 	* aclocal.m4 (LIBC_PRECONFIGURE): New macro.
diff --git a/sysdeps/x86_64/elf/start.S b/sysdeps/x86_64/elf/start.S
index 68d61e234a..5e01d21179 100644
--- a/sysdeps/x86_64/elf/start.S
+++ b/sysdeps/x86_64/elf/start.S
@@ -1,5 +1,5 @@
 /* Startup code compliant to the ELF x86-64 ABI.
-   Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2001.
 
@@ -53,12 +53,16 @@
 					NULL
 */
 
+#include <sysdep.h>
 #include "bp-sym.h"
 
 	.text
 	.globl _start
 	.type _start,@function
 _start:
+	cfi_startproc
+	/* Clearing frame pointer is insufficient, use CFI.  */
+	cfi_undefined (rip)
 	/* Clear the frame pointer.  The ABI suggests this be done, to mark
 	   the outermost frame obviously.  */
 	xorl %ebp, %ebp
@@ -113,6 +117,7 @@ _start:
 #endif
 
 	hlt			/* Crash if somehow `exit' does return.	 */
+	cfi_endproc
 
 /* Define a symbol for the first piece of initialized data.  */
 	.data