summaryrefslogtreecommitdiff
path: root/patches/bad-abi-fix
diff options
context:
space:
mode:
Diffstat (limited to 'patches/bad-abi-fix')
-rw-r--r--patches/bad-abi-fix285
1 files changed, 0 insertions, 285 deletions
diff --git a/patches/bad-abi-fix b/patches/bad-abi-fix
deleted file mode 100644
index 5d6e1eb..0000000
--- a/patches/bad-abi-fix
+++ /dev/null
@@ -1,285 +0,0 @@
-Index: libffi/ChangeLog
-===================================================================
---- libffi.orig/ChangeLog
-+++ libffi/ChangeLog
-@@ -111,6 +111,23 @@
-
- * configure: Regenerate.
-
-+2011-02-13 Anthony Green <green@moxielogic.com>
-+
-+ * include/ffi_common.h (UNLIKELY, LIKELY): Define.
-+ * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
-+ * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
-+
-+ * src/prep_cif.c (initialize_aggregate): Convert assertion into
-+ FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
-+
-+ * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
-+ just return FFI_BAD_ABI when things are wrong.
-+ * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
-+ * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
-+ * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
-+ * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
-+ * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
-+
- 2011-02-11 Anthony Green <green@moxielogic.com>
-
- * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
-Index: libffi/include/ffi_common.h
-===================================================================
---- libffi.orig/include/ffi_common.h
-+++ libffi/include/ffi_common.h
-@@ -1,7 +1,8 @@
- /* -----------------------------------------------------------------------
-- ffi_common.h - Copyright (c) 1996 Red Hat, Inc.
-- Copyright (C) 2007 Free Software Foundation, Inc
--
-+ ffi_common.h - Copyright (C) 2011 Anthony Green
-+ Copyright (C) 2007 Free Software Foundation, Inc
-+ Copyright (c) 1996 Red Hat, Inc.
-+
- Common internal definitions and macros. Only necessary for building
- libffi.
- ----------------------------------------------------------------------- */
-@@ -112,11 +113,14 @@ typedef signed int SINT64 __attribute_
-
- typedef float FLOAT32;
-
-+#ifndef __GNUC__
-+#define __builtin_expect(x, expected_value) (x)
-+#endif
-+#define LIKELY(x) __builtin_expect((x),1)
-+#define UNLIKELY(x) __builtin_expect((x),1)
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
--
--
-Index: libffi/src/arm/ffi.c
-===================================================================
---- libffi.orig/src/arm/ffi.c
-+++ libffi/src/arm/ffi.c
-@@ -1,7 +1,9 @@
- /* -----------------------------------------------------------------------
-- ffi.c - Copyright (c) 1998, 2008, 2011 Red Hat, Inc.
-- Copyright (c) 2011 Plausible Labs Cooperative, Inc.
--
-+ ffi.c - Copyright (c) 2011 Plausible Labs Cooperative, Inc.
-+ Copyright (c) 2011 Anthony Green
-+ Copyright (c) 2011 Free Software Foundation
-+ Copyright (c) 1998, 2008, 2011 Red Hat, Inc.
-+
- ARM Foreign Function Interface
-
- Permission is hereby granted, free of charge, to any person obtaining
-@@ -586,7 +588,7 @@ ffi_prep_closure_loc (ffi_closure* closu
- else if (cif->abi == FFI_VFP)
- closure_func = &ffi_closure_VFP;
- else
-- FFI_ASSERT (0);
-+ return FFI_BAD_ABI;
-
- #if FFI_EXEC_TRAMPOLINE_TABLE
- void **config = FFI_TRAMPOLINE_CODELOC_CONFIG(codeloc);
-Index: libffi/src/avr32/ffi.c
-===================================================================
---- libffi.orig/src/avr32/ffi.c
-+++ libffi/src/avr32/ffi.c
-@@ -1,5 +1,6 @@
- /* -----------------------------------------------------------------------
-- ffi.c - Copyright (c) 2009 Bradley Smith <brad@brad-smith.co.uk>
-+ ffi.c - Copyright (c) 2011 Anthony Green
-+ Copyright (c) 2009 Bradley Smith <brad@brad-smith.co.uk>
-
- AVR32 Foreign Function Interface
-
-@@ -394,7 +395,8 @@ ffi_status ffi_prep_closure_loc(ffi_clos
- void (*fun)(ffi_cif*, void*, void**, void*), void *user_data,
- void *codeloc)
- {
-- FFI_ASSERT(cif->abi == FFI_SYSV);
-+ if (cif->abi != FFI_SYSV)
-+ return FFI_BAD_ABI;
-
- unsigned char *__tramp = (unsigned char*)(&closure->tramp[0]);
- unsigned int __fun = (unsigned int)(&ffi_closure_SYSV);
-Index: libffi/src/ia64/ffi.c
-===================================================================
---- libffi.orig/src/ia64/ffi.c
-+++ libffi/src/ia64/ffi.c
-@@ -1,6 +1,7 @@
- /* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998, 2007, 2008, 2012 Red Hat, Inc.
- Copyright (c) 2000 Hewlett Packard Company
-+ Copyright (c) 2011 Anthony Green
-
- IA64 Foreign Function Interface
-
-@@ -429,7 +430,8 @@ ffi_prep_closure_loc (ffi_closure* closu
- struct ffi_ia64_trampoline_struct *tramp;
- struct ia64_fd *fd;
-
-- FFI_ASSERT (cif->abi == FFI_UNIX);
-+ if (cif->abi != FFI_UNIX)
-+ return FFI_BAD_ABI;
-
- tramp = (struct ffi_ia64_trampoline_struct *)closure->tramp;
- fd = (struct ia64_fd *)(void *)ffi_closure_unix;
-Index: libffi/src/mips/ffi.c
-===================================================================
---- libffi.orig/src/mips/ffi.c
-+++ libffi/src/mips/ffi.c
-@@ -1,6 +1,7 @@
- /* -----------------------------------------------------------------------
-- ffi.c - Copyright (c) 1996, 2007, 2008 Red Hat, Inc.
-- Copyright (c) 2008 David Daney
-+ ffi.c - Copyright (c) 2011 Anthony Green
-+ Copyright (c) 2008 David Daney
-+ Copyright (c) 1996, 2007, 2008, 2011 Red Hat, Inc.
-
- MIPS Foreign Function Interface
-
-@@ -662,10 +663,12 @@ ffi_prep_closure_loc (ffi_closure *closu
- char *clear_location = (char *) codeloc;
-
- #if defined(FFI_MIPS_O32)
-- FFI_ASSERT(cif->abi == FFI_O32 || cif->abi == FFI_O32_SOFT_FLOAT);
-+ if (cif->abi != FFI_O32 && cif->abi != FFI_O32_SOFT_FLOAT)
-+ return FFI_BAD_ABI;
- fn = ffi_closure_O32;
- #else /* FFI_MIPS_N32 */
-- FFI_ASSERT(cif->abi == FFI_N32 || cif->abi == FFI_N64);
-+ if (cif->abi != FFI_N32 && cif->abi != FFI_N64)
-+ return FFI_BAD_ABI;
- fn = ffi_closure_N32;
- #endif /* FFI_MIPS_O32 */
-
-Index: libffi/src/pa/ffi.c
-===================================================================
---- libffi.orig/src/pa/ffi.c
-+++ libffi/src/pa/ffi.c
-@@ -1,9 +1,11 @@
- /* -----------------------------------------------------------------------
-- ffi.c - (c) 2003-2004 Randolph Chung <tausq@debian.org>
-+ ffi.c - (c) 2011 Anthony Green
- (c) 2008 Red Hat, Inc.
--
-+ (c) 2006 Free Software Foundation, Inc.
-+ (c) 2003-2004 Randolph Chung <tausq@debian.org>
-+
- HPPA Foreign Function Interface
-- HP-UX PA ABI support (c) 2006 Free Software Foundation, Inc.
-+ HP-UX PA ABI support
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
-@@ -633,7 +635,8 @@ ffi_prep_closure_loc (ffi_closure* closu
- UINT32 *tmp;
- #endif
-
-- FFI_ASSERT (cif->abi == FFI_PA32);
-+ if (cif->abi != FFI_PA32)
-+ return FFI_BAD_ABI;
-
- /* Make a small trampoline that will branch to our
- handler function. Use PC-relative addressing. */
-Index: libffi/src/powerpc/ffi.c
-===================================================================
---- libffi.orig/src/powerpc/ffi.c
-+++ libffi/src/powerpc/ffi.c
-@@ -1,7 +1,8 @@
- /* -----------------------------------------------------------------------
-- ffi.c - Copyright (c) 1998 Geoffrey Keating
-- Copyright (C) 2007, 2008 Free Software Foundation, Inc
-- Copyright (C) 2008 Red Hat, Inc
-+ ffi.c - Copyright (C) 2011 Anthony Green
-+ Copyright (C) 2008 Red Hat, Inc
-+ Copyright (C) 2007, 2008 Free Software Foundation, Inc
-+ Copyright (c) 1998 Geoffrey Keating
-
- PowerPC Foreign Function Interface
-
-@@ -949,14 +950,16 @@ ffi_prep_closure_loc (ffi_closure *closu
- #ifdef POWERPC64
- void **tramp = (void **) &closure->tramp[0];
-
-- FFI_ASSERT (cif->abi == FFI_LINUX64);
-+ if (cif->abi != FFI_LINUX64)
-+ return FFI_BAD_ABI;
- /* Copy function address and TOC from ffi_closure_LINUX64. */
- memcpy (tramp, (char *) ffi_closure_LINUX64, 16);
- tramp[2] = codeloc;
- #else
- unsigned int *tramp;
-
-- FFI_ASSERT (cif->abi == FFI_GCC_SYSV || cif->abi == FFI_SYSV);
-+ if (! (cif->abi == FFI_GCC_SYSV || cif->abi == FFI_SYSV))
-+ return FFI_BAD_ABI;
-
- tramp = (unsigned int *) &closure->tramp[0];
- tramp[0] = 0x7c0802a6; /* mflr r0 */
-Index: libffi/src/prep_cif.c
-===================================================================
---- libffi.orig/src/prep_cif.c
-+++ libffi/src/prep_cif.c
-@@ -27,12 +27,6 @@
- #include <ffi_common.h>
- #include <stdlib.h>
-
--#ifndef __GNUC__
--#define __builtin_expect(x, expected_value) (x)
--#endif
--#define LIKELY(x) __builtin_expect((x),1)
--#define UNLIKELY(x) __builtin_expect((x),1)
--
- /* Round up to FFI_SIZEOF_ARG. */
-
- #define STACK_ARG_SIZE(x) ALIGN(x, FFI_SIZEOF_ARG)
-@@ -44,11 +38,11 @@ static ffi_status initialize_aggregate(f
- {
- ffi_type **ptr;
-
-- FFI_ASSERT(arg != NULL);
-+ if (UNLIKELY(arg == NULL || arg->elements == NULL))
-+ return FFI_BAD_TYPEDEF;
-
-- FFI_ASSERT(arg->elements != NULL);
-- FFI_ASSERT(arg->size == 0);
-- FFI_ASSERT(arg->alignment == 0);
-+ arg->size = 0;
-+ arg->alignment = 0;
-
- ptr = &(arg->elements[0]);
-
-Index: libffi/src/x86/ffi64.c
-===================================================================
---- libffi.orig/src/x86/ffi64.c
-+++ libffi/src/x86/ffi64.c
-@@ -1,7 +1,8 @@
- /* -----------------------------------------------------------------------
-- ffi64.c - Copyright (c) 2002, 2007 Bo Thorsen <bo@suse.de>
-+ ffi64.c - Copyright (c) 20011 Anthony Green
- Copyright (c) 2008, 2010 Red Hat, Inc.
--
-+ Copyright (c) 2002, 2007 Bo Thorsen <bo@suse.de>
-+
- x86-64 Foreign Function Interface
-
- Permission is hereby granted, free of charge, to any person obtaining
-@@ -28,12 +29,6 @@
- #include <ffi.h>
- #include <ffi_common.h>
-
--#ifndef __GNUC__
--#define __builtin_expect(x, expected_value) (x)
--#endif
--#define LIKELY(x) __builtin_expect((x),1)
--#define UNLIKELY(x) __builtin_expect((x),1)
--
- #include <stdlib.h>
- #include <stdarg.h>
-