summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorjoerg <joerg>2014-05-21 01:36:22 +0000
committerjoerg <joerg>2014-05-21 01:36:22 +0000
commit531ff27410d7de73678f2ef12e1caf8eb0332d64 (patch)
treef117f7c416e71196e1b1b3bf4f500435bd6332e8 /devel
parent3c2185e7c691b98de789a0a3f097b7d673b76acf (diff)
downloadpkgsrc-531ff27410d7de73678f2ef12e1caf8eb0332d64.tar.gz
Add .cfi_startprroc / .cfi_endproc annotation. XXX Note marking up the
frame yet. Hide ARM instructions when using DWARF EH.
Diffstat (limited to 'devel')
-rw-r--r--devel/libffi/distinfo3
-rw-r--r--devel/libffi/patches/patch-src_arm_sysv.S87
2 files changed, 89 insertions, 1 deletions
diff --git a/devel/libffi/distinfo b/devel/libffi/distinfo
index 94ff9ff23d8..4a88c169231 100644
--- a/devel/libffi/distinfo
+++ b/devel/libffi/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.31 2014/02/11 07:21:28 dholland Exp $
+$NetBSD: distinfo,v 1.32 2014/05/21 01:36:22 joerg Exp $
SHA1 (libffi-3.0.13.tar.gz) = f5230890dc0be42fb5c58fbf793da253155de106
RMD160 (libffi-3.0.13.tar.gz) = 03f0627c0fcc800d38636258a2fab2d6bb8b6625
@@ -15,6 +15,7 @@ SHA1 (patch-ai) = f85a6cb64d4a9d7c3e56b47b7092fce10a744b5b
SHA1 (patch-aj) = d130b2b20b94ca26c70dcc46614e36c6d0ac9153
SHA1 (patch-configure.ac) = 080d79b5ada93c5073df7dd09c5131fcfe72ce86
SHA1 (patch-fficonfig.h.in) = fd85fa767bc057c843ff71cc61bedfcff84def43
+SHA1 (patch-src_arm_sysv.S) = faf53358dbc48d1cf8f6a20030b365c8df346547
SHA1 (patch-src_m88k_elfbsd.S) = fae3e425dcff3e924ef195eab165f9bbc6ec4077
SHA1 (patch-src_m88k_ffi.c) = e4b7382c3d6e253b8c1c6054150c530c21d018de
SHA1 (patch-src_m88k_ffitarget.h) = e8479bc3aa876f5e6d52a4d578c5da88291c6646
diff --git a/devel/libffi/patches/patch-src_arm_sysv.S b/devel/libffi/patches/patch-src_arm_sysv.S
new file mode 100644
index 00000000000..595e2e35e94
--- /dev/null
+++ b/devel/libffi/patches/patch-src_arm_sysv.S
@@ -0,0 +1,87 @@
+$NetBSD: patch-src_arm_sysv.S,v 1.3 2014/05/21 01:36:23 joerg Exp $
+
+--- src/arm/sysv.S.orig 2013-03-16 11:19:39.000000000 +0000
++++ src/arm/sysv.S
+@@ -103,7 +103,7 @@
+ #endif
+
+ /* Conditionally compile unwinder directives. */
+-#ifdef __ARM_EABI__
++#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+ #define UNWIND
+ #else
+ #define UNWIND @
+@@ -125,6 +125,7 @@
+ nop
+ .arm
+ UNWIND .fnstart
++ .cfi_startproc
+ /* A hook to tell gdb that we've switched to ARM mode. Also used to call
+ directly from other local arm routines. */
+ #ifdef __APPLE__
+@@ -144,6 +145,7 @@ _L__\name:
+ ENTRY(\name)
+ #endif
+ UNWIND .fnstart
++ .cfi_startproc
+ .endm
+ #endif
+
+@@ -175,6 +177,7 @@ ARM_FUNC_START ffi_call_SYSV
+ @ Save registers
+ stmfd sp!, {r0-r3, fp, lr}
+ UNWIND .save {r0-r3, fp, lr}
++
+ mov fp, sp
+
+ UNWIND .setfp fp, sp
+@@ -228,7 +231,7 @@ ARM_FUNC_START ffi_call_SYSV
+ #if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ cmpne r3, #FFI_TYPE_DOUBLE
+ #endif
+- stmeqia r2, {r0, r1}
++ stmiaeq r2, {r0, r1}
+
+ #if !defined(__SOFTFP__) && !defined(__ARM_EABI__)
+ beq LSYM(Lepilogue)
+@@ -253,6 +256,7 @@ LSYM(Lepilogue):
+
+ .ffi_call_SYSV_end:
+ UNWIND .fnend
++ .cfi_endproc
+ #ifdef __ELF__
+ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
+ #endif
+@@ -328,6 +332,7 @@ ARM_FUNC_START ffi_closure_SYSV
+
+ .ffi_closure_SYSV_end:
+ UNWIND .fnend
++ .cfi_endproc
+ #ifdef __ELF__
+ .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
+ #endif
+@@ -410,7 +415,7 @@ LSYM(Lbase_args):
+ beq LSYM(Lepilogue_vfp)
+
+ cmp r3, #FFI_TYPE_SINT64
+- stmeqia r2, {r0, r1}
++ stmiaeq r2, {r0, r1}
+ beq LSYM(Lepilogue_vfp)
+
+ cmp r3, #FFI_TYPE_FLOAT
+@@ -430,6 +435,7 @@ LSYM(Lepilogue_vfp):
+
+ .ffi_call_VFP_end:
+ UNWIND .fnend
++ .cfi_endproc
+ .size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP)
+
+
+@@ -492,6 +498,7 @@ ARM_FUNC_START ffi_closure_VFP
+
+ .ffi_closure_VFP_end:
+ UNWIND .fnend
++ .cfi_endproc
+ .size CNAME(ffi_closure_VFP),.ffi_closure_VFP_end-CNAME(ffi_closure_VFP)
+ #endif
+