aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-08-20 08:58:44 -0400
committerAndreas Schwab <schwab@redhat.com>2011-09-07 11:42:48 +0200
commit9ddfa2b9adc84fd8318a3303f66e19f66e9d3084 (patch)
tree7e3eb11989778f567790d859bc9aa8d2e25e4974
parent7be2249733d3fff0d6c7c84937360b3268313223 (diff)
downloadglibc-9ddfa2b9adc84fd8318a3303f66e19f66e9d3084.zip
glibc-9ddfa2b9adc84fd8318a3303f66e19f66e9d3084.tar.gz
glibc-9ddfa2b9adc84fd8318a3303f66e19f66e9d3084.tar.bz2
Fix minor CFI problem in regular x86-64 trampoline
(cherry picked from commit 0276a718c0fa58916a6e7c54bad22b4e58bb39b4)
-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 7250f06..264d725 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2011-08-20 Ulrich Drepper <drepper@gmail.com>
+ * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Fix CFI for
+ the very first instruction.
+
+2011-08-20 Ulrich Drepper <drepper@gmail.com>
+
* 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)