Fixes Solaris/64bit, tested on NetBSD/amd64.
This commit is contained in:
jperkin 2012-05-30 09:13:16 +00:00
parent 44b90627d2
commit 2008e2abc4
4 changed files with 69 additions and 3 deletions

View file

@ -1,9 +1,9 @@
$NetBSD: distinfo,v 1.20 2011/12/31 09:58:22 tsutsui Exp $
$NetBSD: distinfo,v 1.21 2012/05/30 09:13:16 jperkin Exp $
SHA1 (libffi-3.0.9.tar.gz) = 56e41f87780e09d06d279690e53d4ea2c371ea88
RMD160 (libffi-3.0.9.tar.gz) = 11ff9aeb62f4fbe1fecf09e6f9814a72bfedb37a
Size (libffi-3.0.9.tar.gz) = 731719 bytes
SHA1 (patch-aa) = 9339c1051f5300ad8a145f1fcdfe73981cb746c0
SHA1 (patch-aa) = b8b056489723a0df18785ba61aeb1ff76d5d50a4
SHA1 (patch-ab) = a63e2fa11c16410f280de19c1ef47e6c7884c2b8
SHA1 (patch-ac) = f3c6324f4334d23e684b4eca25173a13be5d37eb
SHA1 (patch-ad) = 8901a00abe25422e3e35f321a5fb89311185fc0b
@ -13,4 +13,6 @@ SHA1 (patch-ag) = 6333317170f6e92f89db966315276dcd8e3484f2
SHA1 (patch-ah) = e9580069ede90cd616da7bc230b28acbf5d204a6
SHA1 (patch-ai) = f85a6cb64d4a9d7c3e56b47b7092fce10a744b5b
SHA1 (patch-aj) = cd8369bef0149ed044ef16c0eae7b537b4090f1f
SHA1 (patch-fficonfig.h.in) = fd85fa767bc057c843ff71cc61bedfcff84def43
SHA1 (patch-src_arm_sysv.S) = b4a4a1641e116df8dd9bd3896e6bfaa759489cb3
SHA1 (patch-src_x86_unix64.S) = 7d5229c59ff29d77cf2cc3aa3238affb09208c44

View file

@ -1,4 +1,4 @@
$NetBSD: patch-aa,v 1.11 2011/01/21 09:21:58 tnn Exp $
$NetBSD: patch-aa,v 1.12 2012/05/30 09:13:16 jperkin Exp $
Extend which ports we accept to deal with.
@ -40,3 +40,35 @@ Extend which ports we accept to deal with.
TARGET=SH; TARGETDIR=sh
;;
sh64-*-* | sh5*-*-*)
@@ -14510,6 +14510,31 @@
;;
esac
+if test x$TARGET = xX86_64; then
+ { $as_echo "$as_me:$LINENO: checking assembler supports unwind section type" >&5
+$as_echo_n "checking assembler supports unwind section type... " >&6; }
+if test "${libffi_cv_as_x86_64_unwind_section_type+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+
+ libffi_cv_as_x86_64_unwind_section_type=yes
+ echo '.section .eh_frame,"a",@unwind' > conftest.s
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
+ libffi_cv_as_x86_64_unwind_section_type=no
+ fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $libffi_cv_as_x86_64_unwind_section_type" >&5
+$as_echo "$libffi_cv_as_x86_64_unwind_section_type" >&6; }
+ if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1
+_ACEOF
+
+ fi
+fi
+
{ $as_echo "$as_me:$LINENO: checking whether .eh_frame section should be read-only" >&5
$as_echo_n "checking whether .eh_frame section should be read-only... " >&6; }
if test "${libffi_cv_ro_eh_frame+set}" = set; then

View file

@ -0,0 +1,14 @@
$NetBSD: patch-fficonfig.h.in,v 1.1 2012/05/30 09:13:16 jperkin Exp $
--- fficonfig.h.in.orig Wed May 30 08:53:33 2012
+++ fficonfig.h.in Wed May 30 08:54:03 2012
@@ -46,6 +46,9 @@
/* Define if your assembler supports PC relative relocs. */
#undef HAVE_AS_X86_PCREL
+/* Define if your assembler supports unwind section type. */
+#undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

View file

@ -0,0 +1,18 @@
$NetBSD: patch-src_x86_unix64.S,v 1.1 2012/05/30 09:13:16 jperkin Exp $
Apply fix from http://gcc.gnu.org/ml/java-patches/2010-q1/msg00058.html
--- src/x86/unix64.S.orig Wed May 30 08:50:05 2012
+++ src/x86/unix64.S Wed May 30 08:50:41 2012
@@ -324,7 +324,11 @@
.LUW9:
.size ffi_closure_unix64,.-ffi_closure_unix64
+#ifdef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
+ .section .eh_frame,"a",@unwind
+#else
.section .eh_frame,"a",@progbits
+#endif
.Lframe1:
.long .LECIE1-.LSCIE1 /* CIE Length */
.LSCIE1: