Merge pull request #253 from iains/darwin-build Some Darwin build fixes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
diff --git a/configure.ac b/configure.ac
index 9483b28..e49a788 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,7 +197,7 @@ case "$target" in
[Cannot use PROT_EXEC on this target, so, we revert to
alternative means])
;;
- *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
+ *-apple-darwin* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
[Cannot use malloc on this target, so, we revert to
alternative means])
diff --git a/src/powerpc/darwin_closure.S b/src/powerpc/darwin_closure.S
index c7734d4..3121e6a 100644
--- a/src/powerpc/darwin_closure.S
+++ b/src/powerpc/darwin_closure.S
@@ -353,7 +353,7 @@ Lret_type13:
bgt Lstructend ; not a special small case
b Lsmallstruct ; see if we need more.
#else
- cmpi 0,r0,4
+ cmpwi 0,r0,4
bgt Lfinish ; not by value
lg r3,0(r5)
b Lfinish
@@ -494,8 +494,8 @@ LSFDE1:
LASFDE1:
.long LASFDE1-EH_frame1 ; FDE CIE offset
.g_long Lstartcode-. ; FDE initial location
- .set L$set$3,LFE1-Lstartcode
- .g_long L$set$3 ; FDE address range
+ .set L$set$2,LFE1-Lstartcode
+ .g_long L$set$2 ; FDE address range
.byte 0x0 ; uleb128 0x0; Augmentation size
.byte 0x4 ; DW_CFA_advance_loc4
.set L$set$3,LCFI1-LCFI0
diff --git a/src/x86/win64.S b/src/x86/win64.S
index 1f82a3e..d11051d 100644
--- a/src/x86/win64.S
+++ b/src/x86/win64.S
@@ -41,10 +41,10 @@
deallocate some of the stack that has been alloca'd. */
.align 8
- .globl ffi_call_win64
+ .globl C(ffi_call_win64)
SEH(.seh_proc ffi_call_win64)
-ffi_call_win64:
+C(ffi_call_win64):
cfi_startproc
/* Set up the local stack frame and install it in rbp/rsp. */
movq (%rsp), %rax
@@ -155,7 +155,7 @@ E(0b, FFI_TYPE_SMALL_STRUCT_4B)
.align 8
99: call PLT(C(abort))
-.purgem epilogue
+ epilogue
cfi_endproc
SEH(.seh_endproc)
@@ -168,10 +168,10 @@ E(0b, FFI_TYPE_SMALL_STRUCT_4B)
#define ffi_clo_OFF_X (32+8+16)
.align 8
- .globl ffi_go_closure_win64
+ .globl C(ffi_go_closure_win64)
SEH(.seh_proc ffi_go_closure_win64)
-ffi_go_closure_win64:
+C(ffi_go_closure_win64):
cfi_startproc
/* Save all integer arguments into the incoming reg stack space. */
movq %rcx, 8(%rsp)
@@ -187,10 +187,10 @@ ffi_go_closure_win64:
SEH(.seh_endproc)
.align 8
- .globl ffi_closure_win64
+ .globl C(ffi_closure_win64)
SEH(.seh_proc ffi_closure_win64)
-ffi_closure_win64:
+C(ffi_closure_win64):
cfi_startproc
/* Save all integer arguments into the incoming reg stack space. */
movq %rcx, 8(%rsp)
@@ -214,7 +214,7 @@ ffi_closure_win64:
movsd %xmm3, ffi_clo_OFF_X+24(%rsp)
leaq ffi_clo_OFF_R(%rsp), %r9
- call ffi_closure_win64_inner
+ call C(ffi_closure_win64_inner)
/* Load the result into both possible result registers. */
movq ffi_clo_OFF_R(%rsp), %rax