Updating calls to ffi_closure_unix64_inner and ffi_closure_win64_inner to use PLT. Without this fix, statically linking libffi causes the linker error i.e. 'requires dynamic R_X86_64_PC32 reloc against ffi_closure_unix64_inner which may overflow at runtime; recompile with -fPIC)'

This commit is contained in:
jon
2017-12-01 00:34:30 -08:00
parent 716bfd8317
commit d15581c696
2 changed files with 2 additions and 2 deletions

View File

@@ -274,7 +274,7 @@ L(do_closure):
leaq ffi_closure_OFS_RVALUE(%rsp), %rcx /* Load rvalue */
movq %rsp, %r8 /* Load reg_args */
leaq ffi_closure_FS+8(%rsp), %r9 /* Load argp */
call C(ffi_closure_unix64_inner)
call PLT(C(ffi_closure_unix64_inner))
/* Deallocate stack frame early; return value is now in redzone. */
addq $ffi_closure_FS, %rsp

View File

@@ -214,7 +214,7 @@ C(ffi_closure_win64):
movsd %xmm3, ffi_clo_OFF_X+24(%rsp)
leaq ffi_clo_OFF_R(%rsp), %r9
call C(ffi_closure_win64_inner)
call PLT(C(ffi_closure_win64_inner))
/* Load the result into both possible result registers. */
movq ffi_clo_OFF_R(%rsp), %rax