mend
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
diff --git a/ChangeLog b/ChangeLog
index 64d5b20..7e2b4d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
+2012-01-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
+ mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
+
2012-01-23 Alan Hourihane <alanh@fairlite.co.uk>
* src/m68k/ffi.c (ffi_prep_closure_loc): Fix ABI check.
- * src/m68k/sysv.S: Support 68881.
* testsuite/libffi.call/return_sc.c (main): Fix test check.
2012-01-19 Jakub Jelinek <jakub@redhat.com>
diff --git a/configure.ac b/configure.ac
index b4a60c8..f56c7f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -339,7 +339,7 @@ case "$target" in
[Cannot use PROT_EXEC on this target, so, we revert to
alternative means])
;;
- *-apple-darwin1[[10]]* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
+ *-apple-darwin1* | *-*-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/patches/m68k-patches b/patches/m68k-patches
index f756261..07642e2 100644
--- a/patches/m68k-patches
+++ b/patches/m68k-patches
@@ -16,6 +16,23 @@ Index: libffi/src/m68k/sysv.S
===================================================================
--- libffi.orig/src/m68k/sysv.S
+++ libffi/src/m68k/sysv.S
+@@ -1,6 +1,6 @@
+ /* -----------------------------------------------------------------------
+
+- sysv.S - Copyright (c) 1998 Andreas Schwab
++ sysv.S - Copyright (c) 1998, 2012 Andreas Schwab
+ Copyright (c) 2008 Red Hat, Inc.
+
+ m68k Foreign Function Interface
+@@ -87,7 +87,7 @@ ffi_call_SYSV:
+
+ | If the return value pointer is NULL, assume no return value.
+ | NOTE: On the mc68000, tst on an address register is not supported.
+-#if defined(__mc68000__) && !defined(__mcoldfire__)
++#if !defined(__mc68020__) && !defined(__mc68030__) && !defined(__mc68040__) && !defined(__mc68060__) && !defined(__mcoldfire__)
+ cmp.w #0, %a1
+ #else
+ tst.l %a1
@@ -109,7 +109,7 @@ retlongint:
retfloat:
btst #2,%d2
diff --git a/src/m68k/sysv.S b/src/m68k/sysv.S
index 6f17801..dfdd864 100644
--- a/src/m68k/sysv.S
+++ b/src/m68k/sysv.S
@@ -1,6 +1,6 @@
/* -----------------------------------------------------------------------
- sysv.S - Copyright (c) 1998 Andreas Schwab
+ sysv.S - Copyright (c) 1998, 2012 Andreas Schwab
Copyright (c) 2008 Red Hat, Inc.
m68k Foreign Function Interface
@@ -87,7 +87,7 @@ ffi_call_SYSV:
| If the return value pointer is NULL, assume no return value.
| NOTE: On the mc68000, tst on an address register is not supported.
-#if defined(__mc68000__) && !defined(__mcoldfire__)
+#if !defined(__mc68020__) && !defined(__mc68030__) && !defined(__mc68040__) && !defined(__mc68060__) && !defined(__mcoldfire__)
cmp.w #0, %a1
#else
tst.l %a1