summaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
Diffstat (limited to 'libffi')
-rw-r--r--libffi/ChangeLog5
-rw-r--r--libffi/src/x86/win64.S2
2 files changed, 6 insertions, 1 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 57cf3567213..23a6a7800a4 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-22 Kai Tietz <ktietz@redhat.com>
+
+ * src/x86/win64.S: Make use of ffi_closure_win64_inner
+ symbol pc-relative.
+
2013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
* src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
diff --git a/libffi/src/x86/win64.S b/libffi/src/x86/win64.S
index fcdb270faf5..1394cf177b6 100644
--- a/libffi/src/x86/win64.S
+++ b/libffi/src/x86/win64.S
@@ -295,7 +295,7 @@ SYMBOL_NAME(ffi_closure_win64):
mov %rax, %rcx # context is first parameter
mov %rsp, %rdx # stack is second parameter
add $48, %rdx # point to start of arguments
- mov $SYMBOL_NAME(ffi_closure_win64_inner), %rax
+ leaq SYMBOL_NAME(ffi_closure_win64_inner)(%rip), %rax
callq *%rax # call the real closure function
add $40, %rsp
movq %rax, %xmm0 # If the closure returned a float,