aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-08-20 08:58:44 -0400
committerUlrich Drepper <drepper@gmail.com>2011-08-20 08:58:44 -0400
commit0276a718c0fa58916a6e7c54bad22b4e58bb39b4 (patch)
tree3cc59961ff8544b1bc215547d5458b11a876676e
parentc88f17668b67d22fe470933ab81119de587ee175 (diff)
downloadglibc-0276a718c0fa58916a6e7c54bad22b4e58bb39b4.zip
glibc-0276a718c0fa58916a6e7c54bad22b4e58bb39b4.tar.gz
glibc-0276a718c0fa58916a6e7c54bad22b4e58bb39b4.tar.bz2
Fix minor CFI problem in regular x86-64 trampoline
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/x86_64/dl-trampoline.S3
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fc2bb87..b1c0946 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2011-08-20 Ulrich Drepper <drepper@gmail.com>
+ * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Fix CFI for
+ the very first instruction.
+
* sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore
the CFI state in the end.
* sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 317610c..258c609 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -27,8 +27,9 @@
.align 16
cfi_startproc
_dl_runtime_resolve:
+ cfi_adjust_cfa_offset(16) # Incorporate PLT
subq $56,%rsp
- cfi_adjust_cfa_offset(72) # Incorporate PLT
+ cfi_adjust_cfa_offset(56)
movq %rax,(%rsp) # Preserve registers otherwise clobbered.
movq %rcx, 8(%rsp)
movq %rdx, 16(%rsp)