aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-19 08:50:07 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-19 08:50:28 -0700
commit37f4c94e1f0ae24b03d49839cd39c03076bd5c5b (patch)
tree7dfe138516c776a450125e9f25a77c298cca9703
parent79c6f51428a9ec977e611e609a8be6aebcb00006 (diff)
downloadglibc-37f4c94e1f0ae24b03d49839cd39c03076bd5c5b.tar
glibc-37f4c94e1f0ae24b03d49839cd39c03076bd5c5b.tar.gz
glibc-37f4c94e1f0ae24b03d49839cd39c03076bd5c5b.tar.bz2
glibc-37f4c94e1f0ae24b03d49839cd39c03076bd5c5b.zip
X86-64: Correct CFA in _dl_runtime_resolve
When stack is re-aligned in _dl_runtime_resolve, there is no need to adjust CFA when allocating register save area on stack. * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Don't adjust CFA when allocating register save area on re-aligned stack. (cherry picked from commit 0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5)
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/x86_64/dl-trampoline.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 79e3eb2e53..e61f956ef6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Don't
+ adjust CFA when allocating register save area on re-aligned
+ stack.
+
2016-12-21 Joseph Myers <joseph@codesourcery.com>
[BZ #20978]
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index 32ad3af202..d21c5a987a 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -169,7 +169,9 @@ _dl_runtime_resolve:
and $-VEC_SIZE, %RSP_LP
#endif
sub $REGISTER_SAVE_AREA, %RSP_LP
+#if !DL_RUNTIME_RESOLVE_REALIGN_STACK
cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
+#endif
# Preserve registers otherwise clobbered.
movq %rax, REGISTER_SAVE_RAX(%rsp)
movq %rcx, REGISTER_SAVE_RCX(%rsp)