summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-29 08:50:03 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-29 08:50:03 -0700
commit649bf1332071954cbae3e9159708aea1b7c9ae31 (patch)
tree9bbcc65483680119bb8d10a7d6088a5692e0b272
parent09e0389eb12491d3e9ef74b299b66efdd67adb1c (diff)
downloadglibc-649bf1332071954cbae3e9159708aea1b7c9ae31.tar.gz
glibc-649bf1332071954cbae3e9159708aea1b7c9ae31.tar.xz
glibc-649bf1332071954cbae3e9159708aea1b7c9ae31.zip
Improve CFI in x86-64 ld.so trampoline code.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/dl-trampoline.S3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 856689f1c0..081d59b28d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-29  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Improve CFI
+	information.
+
 2009-07-28  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/dl-trampoline.S: Properly restore AVX registers.
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 5a4c6ddecd..20da6956f1 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -61,6 +61,7 @@ _dl_runtime_resolve:
 	cfi_startproc
 
 _dl_runtime_profile:
+	cfi_adjust_cfa_offset(16) # Incorporate PLT
 	/* The La_x86_64_regs data structure pointed to by the
 	   fourth paramater must be 16-byte aligned.  This must
 	   be explicitly enforced.  We have the set up a dynamically
@@ -68,7 +69,7 @@ _dl_runtime_profile:
 	   has a fixed size and preserves the original stack pointer.  */
 
 	subq $32, %rsp		# Allocate the local storage.
-	cfi_adjust_cfa_offset(48) # Incorporate PLT
+	cfi_adjust_cfa_offset(32)
 	movq %rbx, (%rsp)
 	cfi_rel_offset(%rbx, 0)