Alpha fix

This commit is contained in:
Anthony Green
2012-01-23 14:24:01 -05:00
parent 78d9c638ba
commit 211060eb8f
10 changed files with 5058 additions and 11 deletions

37
patches/alpha Normal file
View File

@@ -0,0 +1,37 @@
Index: libffi/ChangeLog
===================================================================
--- libffi.orig/ChangeLog
+++ libffi/ChangeLog
@@ -1,5 +1,8 @@
-2012-01-23 Anthony Green <green@moxielogic.com>
- Chris Young <cdyoung@ntlworld.com>
+2012-01-23 Uros Bizjak <ubizjak@gmail.com>
+
+ * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
+
+2012-01-23 Chris Young <cdyoung@ntlworld.com>
* configure.ac: Add Amiga support.
* configure: Rebuilt.
Index: libffi/src/alpha/ffi.c
===================================================================
--- libffi.orig/src/alpha/ffi.c
+++ libffi/src/alpha/ffi.c
@@ -1,5 +1,6 @@
/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998, 2001, 2007, 2008 Red Hat, Inc.
+ ffi.c - Copyright (c) 2012 Anthony Green
+ Copyright (c) 1998, 2001, 2007, 2008 Red Hat, Inc.
Alpha Foreign Function Interface
@@ -178,6 +179,9 @@ ffi_prep_closure_loc (ffi_closure* closu
{
unsigned int *tramp;
+ if (cif->abi != FFI_OSF)
+ return FFI_BAD_ABI;
+
tramp = (unsigned int *) &closure->tramp[0];
tramp[0] = 0x47fb0401; /* mov $27,$1 */
tramp[1] = 0xa77b0010; /* ldq $27,16($27) */