diff --git a/.pc/aix-ibm-xlc/configure b/.pc/aix-ibm-xlc/configure
index 690be06..25eb3c0 100755
--- a/.pc/aix-ibm-xlc/configure
+++ b/.pc/aix-ibm-xlc/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1438,7 +1438,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2148,7 +2148,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14127,7 +14127,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14197,7 +14197,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/aix-ibm-xlc/configure.ac b/.pc/aix-ibm-xlc/configure.ac
index 22db75c..b60c08b 100644
--- a/.pc/aix-ibm-xlc/configure.ac
+++ b/.pc/aix-ibm-xlc/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/debug-build/configure b/.pc/debug-build/configure
index a0e151f..049e56a 100755
--- a/.pc/debug-build/configure
+++ b/.pc/debug-build/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1364,7 +1364,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1435,7 +1435,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1544,7 +1544,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2145,7 +2145,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3078,7 +3078,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14053,7 +14053,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14123,7 +14123,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/debug-build/configure.ac b/.pc/debug-build/configure.ac
index 1cf7dfe..59b109e 100644
--- a/.pc/debug-build/configure.ac
+++ b/.pc/debug-build/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/fix_maxopt/configure b/.pc/fix_maxopt/configure
index 6ea10ee..1abd38a 100755
--- a/.pc/fix_maxopt/configure
+++ b/.pc/fix_maxopt/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1438,7 +1438,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2148,7 +2148,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14129,7 +14129,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14199,7 +14199,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/interix/README b/.pc/interix/README
deleted file mode 100644
index 230afd3..0000000
--- a/.pc/interix/README
+++ /dev/null
@@ -1,338 +0,0 @@
-Status
-======
-
-libffi-3.0.10 was released on XXXXXXXXXX, 2011. Check the libffi web
-page for updates: <URL:http://sourceware.org/libffi/>.
-
-
-What is libffi?
-===============
-
-Compilers for high level languages generate code that follow certain
-conventions. These conventions are necessary, in part, for separate
-compilation to work. One such convention is the "calling
-convention". The "calling convention" is essentially a set of
-assumptions made by the compiler about where function arguments will
-be found on entry to a function. A "calling convention" also specifies
-where the return value for a function is found.
-
-Some programs may not know at the time of compilation what arguments
-are to be passed to a function. For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call
-a given function. Libffi can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-The libffi library provides a portable, high level programming
-interface to various calling conventions. This allows a programmer to
-call any function specified by a call interface description at run
-time.  
-
-FFI stands for Foreign Function Interface.  A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language. The
-libffi library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface. A layer must
-exist above libffi that handles type conversions for values passed
-between the two languages.
-
-
-Supported Platforms
-===================
-
-Libffi has been ported to many different platforms.
-For specific configuration details and testing status, please
-refer to the wiki page here:
-
- http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.10
-
-At the time of release, the following basic configurations have been
-tested:
-
-|--------------+------------------|
-| Architecture | Operating System |
-|--------------+------------------|
-| Alpha        | Linux            |
-| Alpha        | Tru64            |
-| ARM          | Linux            |
-| ARM          | iOS              |
-| AVR32        | Linux            |
-| HPPA         | HPUX             |
-| IA-64        | Linux            |
-| M68K         | RTEMS            |
-| MIPS         | IRIX             |
-| MIPS         | Linux            |
-| MIPS         | RTEMS            |
-| MIPS64       | Linux            |
-| PowerPC      | Linux            |
-| PowerPC      | Mac OSX          |
-| PowerPC      | FreeBSD          |
-| PowerPC64    | Linux            |
-| S390         | Linux            |
-| S390X        | Linux            |
-| SPARC        | Linux            |
-| SPARC        | Solaris          |
-| SPARC64      | Linux            |
-| SPARC64      | FreeBSD          |
-| X86          | FreeBSD          |
-| X86          | kFreeBSD         |
-| X86          | Linux            |
-| X86          | Mac OSX          |
-| X86          | OpenBSD          |
-| X86          | OS/2             |
-| X86          | Solaris          |
-| X86          | Windows/Cygwin   |
-| X86          | Windows/MingW    |
-| X86-64       | FreeBSD          |
-| X86-64       | Linux            |
-| X86-64       | OpenBSD          |
-| X86-64       | Windows/MingW    |
-|--------------+------------------|
-
-Please send additional platform test results to
-libffi-discuss@sourceware.org and feel free to update the wiki page
-above.
-
-Installing libffi
-=================
-
-First you must configure the distribution for your particular
-system. Go to the directory you wish to build libffi in and run the
-"configure" program found in the root directory of the libffi source
-distribution.
-
-You may want to tell configure where to install the libffi library and
-header files. To do that, use the --prefix configure switch.  Libffi
-will install under /usr/local by default. 
-
-If you want to enable extra run-time debugging checks use the the
---enable-debug configure switch. This is useful when your program dies
-mysteriously while using libffi. 
-
-Another useful configure switch is --enable-purify-safety. Using this
-will add some extra code which will suppress certain warnings when you
-are using Purify with libffi. Only use this switch when using 
-Purify, as it will slow down the library.
-
-It's also possible to build libffi on Windows platforms with
-Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
-wrapper script during configuration like so:
-
-path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
-
-For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64".
-You may also need to specify --build appropriately. When building with MSVC
-under a MingW environment, you may need to remove the line in configure
-that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not
-present in MingW, and is not required when using MingW-style paths.)
-
-For iOS builds, refer to the build-ios.sh script for guidance.
-
-Configure has many other options. Use "configure --help" to see them all.
-
-Once configure has finished, type "make". Note that you must be using
-GNU make.  You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
-
-To ensure that libffi is working as advertised, type "make check".
-This will require that you have DejaGNU installed.
-
-To install the library and header files, type "make install".
-
-
-History
-=======
-
-See the ChangeLog files for details.
-
-3.0.10 ???-??-??
-        Add support for Apple's iOS.
-	Add support for ARM VFP ABI.
-        Add RTEMS support for MIPS and M68K.
-	Fix the N64 build on mips-sgi-irix6.5.
-	Enable builds with Microsoft's compiler.
-	Enable x86 builds with Oracle's Solaris compiler.
-	Fix support for calling code compiled with Oracle's Sparc
-	  Solaris compiler.
-	Testsuite fixes for Tru64 Unix.
-
-3.0.9 Dec-31-09
-        Add AVR32 and win64 ports.  Add ARM softfp support.
-	Many fixes for AIX, Solaris, HP-UX, *BSD.
-	Several PowerPC and x86-64 bug fixes.
-	Build DLL for windows.
-
-3.0.8 Dec-19-08
-        Add *BSD, BeOS, and PA-Linux support.
-
-3.0.7 Nov-11-08
-        Fix for ppc FreeBSD.
-	(thanks to Andreas Tobler)
-
-3.0.6 Jul-17-08
-        Fix for closures on sh.
-	Mark the sh/sh64 stack as non-executable.
-	(both thanks to Kaz Kojima)
-
-3.0.5 Apr-3-08
-        Fix libffi.pc file.
-	Fix #define ARM for IcedTea users.
-	Fix x86 closure bug.
-
-3.0.4 Feb-24-08
-        Fix x86 OpenBSD configury.
-
-3.0.3 Feb-22-08
-        Enable x86 OpenBSD thanks to Thomas Heller, and
-	x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
-	Clean up test instruction in README.
-
-3.0.2 Feb-21-08
-        Improved x86 FreeBSD support.
-	Thanks to Björn König.
-
-3.0.1 Feb-15-08
-        Fix instruction cache flushing bug on MIPS.
-	Thanks to David Daney.
-
-3.0.0 Feb-15-08
-        Many changes, mostly thanks to the GCC project.
-	Cygnus Solutions is now Red Hat.
-
-  [10 years go by...]
-
-1.20 Oct-5-98
-	Raffaele Sena produces ARM port.
-
-1.19 Oct-5-98
-	Fixed x86 long double and long long return support.
-	m68k bug fixes from Andreas Schwab.
-	Patch for DU assembler compatibility for the Alpha from Richard
-	Henderson.
-
-1.18 Apr-17-98
-	Bug fixes and MIPS configuration changes.
-
-1.17 Feb-24-98
-	Bug fixes and m68k port from Andreas Schwab. PowerPC port from
-	Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
-
-1.16 Feb-11-98
-	Richard Henderson produces Alpha port.
-
-1.15 Dec-4-97
-	Fixed an n32 ABI bug. New libtool, auto* support.
-
-1.14 May-13-97
-	libtool is now used to generate shared and static libraries.
-	Fixed a minor portability problem reported by Russ McManus
-	<mcmanr@eq.gs.com>.
-
-1.13 Dec-2-96
-	Added --enable-purify-safety to keep Purify from complaining
-	about certain low level code.
-	Sparc fix for calling functions with < 6 args.
-	Linux x86 a.out fix.
-
-1.12 Nov-22-96
-	Added missing ffi_type_void, needed for supporting void return 
-	types. Fixed test case for non MIPS machines. Cygnus Support 
-	is now Cygnus Solutions. 
-
-1.11 Oct-30-96
-	Added notes about GNU make.
-
-1.10 Oct-29-96
-	Added configuration fix for non GNU compilers.
-
-1.09 Oct-29-96
-	Added --enable-debug configure switch. Clean-ups based on LCLint 
-	feedback. ffi_mips.h is always installed. Many configuration 
-	fixes. Fixed ffitest.c for sparc builds.
-
-1.08 Oct-15-96
-	Fixed n32 problem. Many clean-ups.
-
-1.07 Oct-14-96
-	Gordon Irlam rewrites v8.S again. Bug fixes.
-
-1.06 Oct-14-96
-	Gordon Irlam improved the sparc port. 
-
-1.05 Oct-14-96
-	Interface changes based on feedback.
-
-1.04 Oct-11-96
-	Sparc port complete (modulo struct passing bug).
-
-1.03 Oct-10-96
-	Passing struct args, and returning struct values works for
-	all architectures/calling conventions. Expanded tests.
-
-1.02 Oct-9-96
-	Added SGI n32 support. Fixed bugs in both o32 and Linux support.
-	Added "make test".
-
-1.01 Oct-8-96
-	Fixed float passing bug in mips version. Restructured some
-	of the code. Builds cleanly with SGI tools.
-
-1.00 Oct-7-96
-	First release. No public announcement.
-
-
-Authors & Credits
-=================
-
-libffi was originally written by Anthony Green <green@redhat.com>.
-
-The developers of the GNU Compiler Collection project have made
-innumerable valuable contributions.  See the ChangeLog file for
-details.
-
-Some of the ideas behind libffi were inspired by Gianni Mariani's free
-gencall library for Silicon Graphics machines.
-
-The closure mechanism was designed and implemented by Kresten Krab
-Thorup.
-
-Major processor architecture ports were contributed by the following
-developers:
-
-alpha		Richard Henderson
-arm		Raffaele Sena
-cris		Simon Posnjak, Hans-Peter Nilsson
-frv		Anthony Green
-ia64		Hans Boehm
-m32r		Kazuhiro Inaoka
-m68k		Andreas Schwab
-mips		Anthony Green, Casey Marshall
-mips64		David Daney
-pa		Randolph Chung, Dave Anglin, Andreas Tobler
-powerpc		Geoffrey Keating, Andreas Tobler, 
-			 David Edelsohn, John Hornkvist
-powerpc64	Jakub Jelinek
-s390		Gerhard Tonn, Ulrich Weigand
-sh		Kaz Kojima
-sh64		Kaz Kojima
-sparc		Anthony Green, Gordon Irlam
-x86		Anthony Green, Jon Beniston
-x86-64		Bo Thorsen
-
-Jesper Skov and Andrew Haley both did more than their fair share of
-stepping through the code and tracking down bugs.
-
-Thanks also to Tom Tromey for bug fixes, documentation and
-configuration help.
-
-Thanks to Jim Blandy, who provided some useful feedback on the libffi
-interface.
-
-Andreas Tobler has done a tremendous amount of work on the testsuite.
-
-Alex Oliva solved the executable page problem for SElinux.
-
-The list above is almost certainly incomplete and inaccurate.  I'm
-happy to make corrections or additions upon request.
-
-If you have a problem, or have found a bug, please send a note to the
-author at green@moxielogic.com, or the project mailing list at
-libffi-discuss@sourceware.org.
diff --git a/.pc/interix/configure b/.pc/interix/configure
index 77b265e..08ac434 100755
--- a/.pc/interix/configure
+++ b/.pc/interix/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1438,7 +1438,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2148,7 +2148,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14129,7 +14129,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14199,7 +14199,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/interix/configure.ac b/.pc/interix/configure.ac
index dc5b760..e7eb895 100644
--- a/.pc/interix/configure.ac
+++ b/.pc/interix/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/ios/README b/.pc/ios/README
deleted file mode 100644
index 59d3ddb..0000000
--- a/.pc/ios/README
+++ /dev/null
@@ -1,335 +0,0 @@
-Status
-======
-
-libffi-3.0.10 was released on XXXXXXXXXX, 2011. Check the libffi web
-page for updates: <URL:http://sourceware.org/libffi/>.
-
-
-What is libffi?
-===============
-
-Compilers for high level languages generate code that follow certain
-conventions. These conventions are necessary, in part, for separate
-compilation to work. One such convention is the "calling
-convention". The "calling convention" is essentially a set of
-assumptions made by the compiler about where function arguments will
-be found on entry to a function. A "calling convention" also specifies
-where the return value for a function is found.
-
-Some programs may not know at the time of compilation what arguments
-are to be passed to a function. For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call
-a given function. Libffi can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-The libffi library provides a portable, high level programming
-interface to various calling conventions. This allows a programmer to
-call any function specified by a call interface description at run
-time.  
-
-FFI stands for Foreign Function Interface.  A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language. The
-libffi library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface. A layer must
-exist above libffi that handles type conversions for values passed
-between the two languages.
-
-
-Supported Platforms
-===================
-
-Libffi has been ported to many different platforms.
-For specific configuration details and testing status, please
-refer to the wiki page here:
-
- http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.10
-
-At the time of release, the following basic configurations have been
-tested:
-
-|--------------+------------------|
-| Architecture | Operating System |
-|--------------+------------------|
-| Alpha        | Linux            |
-| Alpha        | Tru64            |
-| ARM          | Linux            |
-| AVR32        | Linux            |
-| HPPA         | HPUX             |
-| IA-64        | Linux            |
-| M68K         | RTEMS            |
-| MIPS         | IRIX             |
-| MIPS         | Linux            |
-| MIPS         | RTEMS            |
-| MIPS64       | Linux            |
-| PowerPC      | Linux            |
-| PowerPC      | Mac OSX          |
-| PowerPC      | FreeBSD          |
-| PowerPC64    | Linux            |
-| S390         | Linux            |
-| S390X        | Linux            |
-| SPARC        | Linux            |
-| SPARC        | Solaris          |
-| SPARC64      | Linux            |
-| SPARC64      | FreeBSD          |
-| X86          | FreeBSD          |
-| X86          | kFreeBSD         |
-| X86          | Linux            |
-| X86          | Mac OSX          |
-| X86          | OpenBSD          |
-| X86          | OS/2             |
-| X86          | Solaris          |
-| X86          | Windows/Cygwin   |
-| X86          | Windows/MingW    |
-| X86-64       | FreeBSD          |
-| X86-64       | Linux            |
-| X86-64       | OpenBSD          |
-| X86-64       | Windows/MingW    |
-|--------------+------------------|
-
-Please send additional platform test results to
-libffi-discuss@sourceware.org and feel free to update the wiki page
-above.
-
-Installing libffi
-=================
-
-First you must configure the distribution for your particular
-system. Go to the directory you wish to build libffi in and run the
-"configure" program found in the root directory of the libffi source
-distribution.
-
-You may want to tell configure where to install the libffi library and
-header files. To do that, use the --prefix configure switch.  Libffi
-will install under /usr/local by default. 
-
-If you want to enable extra run-time debugging checks use the the
---enable-debug configure switch. This is useful when your program dies
-mysteriously while using libffi. 
-
-Another useful configure switch is --enable-purify-safety. Using this
-will add some extra code which will suppress certain warnings when you
-are using Purify with libffi. Only use this switch when using 
-Purify, as it will slow down the library.
-
-It's also possible to build libffi on Windows platforms with
-Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
-wrapper script during configuration like so:
-
-path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
-
-For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64".
-You may also need to specify --build appropriately. When building with MSVC
-under a MingW environment, you may need to remove the line in configure
-that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not
-present in MingW, and is not required when using MingW-style paths.)
-
-Configure has many other options. Use "configure --help" to see them all.
-
-Once configure has finished, type "make". Note that you must be using
-GNU make.  You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
-
-To ensure that libffi is working as advertised, type "make check".
-This will require that you have DejaGNU installed.
-
-To install the library and header files, type "make install".
-
-
-History
-=======
-
-See the ChangeLog files for details.
-
-3.0.10 ???-??-??
-        Add support for Apple's iOS.
-	Add support for ARM VFP ABI.
-        Add RTEMS support for MIPS and M68K.
-	Fix the N64 build on mips-sgi-irix6.5.
-	Enable builds with Microsoft's compiler.
-	Enable x86 builds with Oracle's Solaris compiler.
-	Fix support for calling code compiled with Oracle's Sparc
-	  Solaris compiler.
-	Testsuite fixes for Tru64 Unix.
-
-3.0.9 Dec-31-09
-        Add AVR32 and win64 ports.  Add ARM softfp support.
-	Many fixes for AIX, Solaris, HP-UX, *BSD.
-	Several PowerPC and x86-64 bug fixes.
-	Build DLL for windows.
-
-3.0.8 Dec-19-08
-        Add *BSD, BeOS, and PA-Linux support.
-
-3.0.7 Nov-11-08
-        Fix for ppc FreeBSD.
-	(thanks to Andreas Tobler)
-
-3.0.6 Jul-17-08
-        Fix for closures on sh.
-	Mark the sh/sh64 stack as non-executable.
-	(both thanks to Kaz Kojima)
-
-3.0.5 Apr-3-08
-        Fix libffi.pc file.
-	Fix #define ARM for IcedTea users.
-	Fix x86 closure bug.
-
-3.0.4 Feb-24-08
-        Fix x86 OpenBSD configury.
-
-3.0.3 Feb-22-08
-        Enable x86 OpenBSD thanks to Thomas Heller, and
-	x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
-	Clean up test instruction in README.
-
-3.0.2 Feb-21-08
-        Improved x86 FreeBSD support.
-	Thanks to Björn König.
-
-3.0.1 Feb-15-08
-        Fix instruction cache flushing bug on MIPS.
-	Thanks to David Daney.
-
-3.0.0 Feb-15-08
-        Many changes, mostly thanks to the GCC project.
-	Cygnus Solutions is now Red Hat.
-
-  [10 years go by...]
-
-1.20 Oct-5-98
-	Raffaele Sena produces ARM port.
-
-1.19 Oct-5-98
-	Fixed x86 long double and long long return support.
-	m68k bug fixes from Andreas Schwab.
-	Patch for DU assembler compatibility for the Alpha from Richard
-	Henderson.
-
-1.18 Apr-17-98
-	Bug fixes and MIPS configuration changes.
-
-1.17 Feb-24-98
-	Bug fixes and m68k port from Andreas Schwab. PowerPC port from
-	Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
-
-1.16 Feb-11-98
-	Richard Henderson produces Alpha port.
-
-1.15 Dec-4-97
-	Fixed an n32 ABI bug. New libtool, auto* support.
-
-1.14 May-13-97
-	libtool is now used to generate shared and static libraries.
-	Fixed a minor portability problem reported by Russ McManus
-	<mcmanr@eq.gs.com>.
-
-1.13 Dec-2-96
-	Added --enable-purify-safety to keep Purify from complaining
-	about certain low level code.
-	Sparc fix for calling functions with < 6 args.
-	Linux x86 a.out fix.
-
-1.12 Nov-22-96
-	Added missing ffi_type_void, needed for supporting void return 
-	types. Fixed test case for non MIPS machines. Cygnus Support 
-	is now Cygnus Solutions. 
-
-1.11 Oct-30-96
-	Added notes about GNU make.
-
-1.10 Oct-29-96
-	Added configuration fix for non GNU compilers.
-
-1.09 Oct-29-96
-	Added --enable-debug configure switch. Clean-ups based on LCLint 
-	feedback. ffi_mips.h is always installed. Many configuration 
-	fixes. Fixed ffitest.c for sparc builds.
-
-1.08 Oct-15-96
-	Fixed n32 problem. Many clean-ups.
-
-1.07 Oct-14-96
-	Gordon Irlam rewrites v8.S again. Bug fixes.
-
-1.06 Oct-14-96
-	Gordon Irlam improved the sparc port. 
-
-1.05 Oct-14-96
-	Interface changes based on feedback.
-
-1.04 Oct-11-96
-	Sparc port complete (modulo struct passing bug).
-
-1.03 Oct-10-96
-	Passing struct args, and returning struct values works for
-	all architectures/calling conventions. Expanded tests.
-
-1.02 Oct-9-96
-	Added SGI n32 support. Fixed bugs in both o32 and Linux support.
-	Added "make test".
-
-1.01 Oct-8-96
-	Fixed float passing bug in mips version. Restructured some
-	of the code. Builds cleanly with SGI tools.
-
-1.00 Oct-7-96
-	First release. No public announcement.
-
-
-Authors & Credits
-=================
-
-libffi was originally written by Anthony Green <green@redhat.com>.
-
-The developers of the GNU Compiler Collection project have made
-innumerable valuable contributions.  See the ChangeLog file for
-details.
-
-Some of the ideas behind libffi were inspired by Gianni Mariani's free
-gencall library for Silicon Graphics machines.
-
-The closure mechanism was designed and implemented by Kresten Krab
-Thorup.
-
-Major processor architecture ports were contributed by the following
-developers:
-
-alpha		Richard Henderson
-arm		Raffaele Sena
-cris		Simon Posnjak, Hans-Peter Nilsson
-frv		Anthony Green
-ia64		Hans Boehm
-m32r		Kazuhiro Inaoka
-m68k		Andreas Schwab
-mips		Anthony Green, Casey Marshall
-mips64		David Daney
-pa		Randolph Chung, Dave Anglin, Andreas Tobler
-powerpc		Geoffrey Keating, Andreas Tobler, 
-			 David Edelsohn, John Hornkvist
-powerpc64	Jakub Jelinek
-s390		Gerhard Tonn, Ulrich Weigand
-sh		Kaz Kojima
-sh64		Kaz Kojima
-sparc		Anthony Green, Gordon Irlam
-x86		Anthony Green, Jon Beniston
-x86-64		Bo Thorsen
-
-Jesper Skov and Andrew Haley both did more than their fair share of
-stepping through the code and tracking down bugs.
-
-Thanks also to Tom Tromey for bug fixes, documentation and
-configuration help.
-
-Thanks to Jim Blandy, who provided some useful feedback on the libffi
-interface.
-
-Andreas Tobler has done a tremendous amount of work on the testsuite.
-
-Alex Oliva solved the executable page problem for SElinux.
-
-The list above is almost certainly incomplete and inaccurate.  I'm
-happy to make corrections or additions upon request.
-
-If you have a problem, or have found a bug, please send a note to the
-author at green@moxielogic.com, or the project mailing list at
-libffi-discuss@sourceware.org.
diff --git a/.pc/ios/configure.ac b/.pc/ios/configure.ac
index 54d5951..f147a65 100644
--- a/.pc/ios/configure.ac
+++ b/.pc/ios/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/more-openbsd-mips/configure.ac b/.pc/more-openbsd-mips/configure.ac
index 4d13f44..b10e1ae 100644
--- a/.pc/more-openbsd-mips/configure.ac
+++ b/.pc/more-openbsd-mips/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/more-openbsd/configure b/.pc/more-openbsd/configure
index e307fc9..9796d24 100755
--- a/.pc/more-openbsd/configure
+++ b/.pc/more-openbsd/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1375,7 +1375,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1446,7 +1446,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1562,7 +1562,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2163,7 +2163,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3197,7 +3197,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15151,7 +15151,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15221,7 +15221,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/more-openbsd/configure.ac b/.pc/more-openbsd/configure.ac
index bbc1d7f..7226937 100644
--- a/.pc/more-openbsd/configure.ac
+++ b/.pc/more-openbsd/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/msvcc-warning/README b/.pc/msvcc-warning/README
deleted file mode 100644
index 7edb49f..0000000
--- a/.pc/msvcc-warning/README
+++ /dev/null
@@ -1,331 +0,0 @@
-Status
-======
-
-libffi-3.0.10 was released on XXXXXXXXXX, 2011. Check the libffi web
-page for updates: <URL:http://sourceware.org/libffi/>.
-
-
-What is libffi?
-===============
-
-Compilers for high level languages generate code that follow certain
-conventions. These conventions are necessary, in part, for separate
-compilation to work. One such convention is the "calling
-convention". The "calling convention" is essentially a set of
-assumptions made by the compiler about where function arguments will
-be found on entry to a function. A "calling convention" also specifies
-where the return value for a function is found.
-
-Some programs may not know at the time of compilation what arguments
-are to be passed to a function. For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call
-a given function. Libffi can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-The libffi library provides a portable, high level programming
-interface to various calling conventions. This allows a programmer to
-call any function specified by a call interface description at run
-time.  
-
-FFI stands for Foreign Function Interface.  A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language. The
-libffi library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface. A layer must
-exist above libffi that handles type conversions for values passed
-between the two languages.
-
-
-Supported Platforms
-===================
-
-Libffi has been ported to many different platforms.
-For specific configuration details and testing status, please
-refer to the wiki page here:
-
- http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.10
-
-At the time of release, the following basic configurations have been
-tested:
-
-|--------------+------------------|
-| Architecture | Operating System |
-|--------------+------------------|
-| Alpha        | Linux            |
-| Alpha        | Tru64            |
-| ARM          | Linux            |
-| AVR32        | Linux            |
-| HPPA         | HPUX             |
-| IA-64        | Linux            |
-| M68K         | RTEMS            |
-| MIPS         | IRIX             |
-| MIPS         | Linux            |
-| MIPS         | RTEMS            |
-| MIPS64       | Linux            |
-| PowerPC      | Linux            |
-| PowerPC      | Mac OSX          |
-| PowerPC      | FreeBSD          |
-| PowerPC64    | Linux            |
-| S390         | Linux            |
-| S390X        | Linux            |
-| SPARC        | Linux            |
-| SPARC        | Solaris          |
-| SPARC64      | Linux            |
-| SPARC64      | FreeBSD          |
-| X86          | FreeBSD          |
-| X86          | kFreeBSD         |
-| X86          | Linux            |
-| X86          | Mac OSX          |
-| X86          | OpenBSD          |
-| X86          | OS/2             |
-| X86          | Solaris          |
-| X86          | Windows/Cygwin   |
-| X86          | Windows/MingW    |
-| X86-64       | FreeBSD          |
-| X86-64       | Linux            |
-| X86-64       | OpenBSD          |
-| X86-64       | Windows/MingW    |
-|--------------+------------------|
-
-Please send additional platform test results to
-libffi-discuss@sourceware.org and feel free to update the wiki page
-above.
-
-Installing libffi
-=================
-
-First you must configure the distribution for your particular
-system. Go to the directory you wish to build libffi in and run the
-"configure" program found in the root directory of the libffi source
-distribution.
-
-You may want to tell configure where to install the libffi library and
-header files. To do that, use the --prefix configure switch.  Libffi
-will install under /usr/local by default. 
-
-If you want to enable extra run-time debugging checks use the the
---enable-debug configure switch. This is useful when your program dies
-mysteriously while using libffi. 
-
-Another useful configure switch is --enable-purify-safety. Using this
-will add some extra code which will suppress certain warnings when you
-are using Purify with libffi. Only use this switch when using 
-Purify, as it will slow down the library.
-
-It's also possible to build libffi on Windows platforms with
-Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
-wrapper script during configuration like so:
-
-path/to/configure --enable-shared --enable-static \
-	CC=path/to/msvcc.sh LD=link \
-	CPP=\"cl -nologo -EP\"
-
-Configure has many other options. Use "configure --help" to see them all.
-
-Once configure has finished, type "make". Note that you must be using
-GNU make.  You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
-
-To ensure that libffi is working as advertised, type "make check".
-This will require that you have DejaGNU installed.
-
-To install the library and header files, type "make install".
-
-
-History
-=======
-
-See the ChangeLog files for details.
-
-3.0.10 ???-??-??
-        Add support for Apple's iOS.
-	Add support for ARM VFP ABI.
-        Add RTEMS support for MIPS and M68K.
-	Fix the N64 build on mips-sgi-irix6.5.
-	Enable builds with Microsoft's compiler.
-	Enable x86 builds with Oracle's Solaris compiler.
-	Fix support for calling code compiled with Oracle's Sparc
-	  Solaris compiler.
-	Testsuite fixes for Tru64 Unix.
-
-3.0.9 Dec-31-09
-        Add AVR32 and win64 ports.  Add ARM softfp support.
-	Many fixes for AIX, Solaris, HP-UX, *BSD.
-	Several PowerPC and x86-64 bug fixes.
-	Build DLL for windows.
-
-3.0.8 Dec-19-08
-        Add *BSD, BeOS, and PA-Linux support.
-
-3.0.7 Nov-11-08
-        Fix for ppc FreeBSD.
-	(thanks to Andreas Tobler)
-
-3.0.6 Jul-17-08
-        Fix for closures on sh.
-	Mark the sh/sh64 stack as non-executable.
-	(both thanks to Kaz Kojima)
-
-3.0.5 Apr-3-08
-        Fix libffi.pc file.
-	Fix #define ARM for IcedTea users.
-	Fix x86 closure bug.
-
-3.0.4 Feb-24-08
-        Fix x86 OpenBSD configury.
-
-3.0.3 Feb-22-08
-        Enable x86 OpenBSD thanks to Thomas Heller, and
-	x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
-	Clean up test instruction in README.
-
-3.0.2 Feb-21-08
-        Improved x86 FreeBSD support.
-	Thanks to Björn König.
-
-3.0.1 Feb-15-08
-        Fix instruction cache flushing bug on MIPS.
-	Thanks to David Daney.
-
-3.0.0 Feb-15-08
-        Many changes, mostly thanks to the GCC project.
-	Cygnus Solutions is now Red Hat.
-
-  [10 years go by...]
-
-1.20 Oct-5-98
-	Raffaele Sena produces ARM port.
-
-1.19 Oct-5-98
-	Fixed x86 long double and long long return support.
-	m68k bug fixes from Andreas Schwab.
-	Patch for DU assembler compatibility for the Alpha from Richard
-	Henderson.
-
-1.18 Apr-17-98
-	Bug fixes and MIPS configuration changes.
-
-1.17 Feb-24-98
-	Bug fixes and m68k port from Andreas Schwab. PowerPC port from
-	Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
-
-1.16 Feb-11-98
-	Richard Henderson produces Alpha port.
-
-1.15 Dec-4-97
-	Fixed an n32 ABI bug. New libtool, auto* support.
-
-1.14 May-13-97
-	libtool is now used to generate shared and static libraries.
-	Fixed a minor portability problem reported by Russ McManus
-	<mcmanr@eq.gs.com>.
-
-1.13 Dec-2-96
-	Added --enable-purify-safety to keep Purify from complaining
-	about certain low level code.
-	Sparc fix for calling functions with < 6 args.
-	Linux x86 a.out fix.
-
-1.12 Nov-22-96
-	Added missing ffi_type_void, needed for supporting void return 
-	types. Fixed test case for non MIPS machines. Cygnus Support 
-	is now Cygnus Solutions. 
-
-1.11 Oct-30-96
-	Added notes about GNU make.
-
-1.10 Oct-29-96
-	Added configuration fix for non GNU compilers.
-
-1.09 Oct-29-96
-	Added --enable-debug configure switch. Clean-ups based on LCLint 
-	feedback. ffi_mips.h is always installed. Many configuration 
-	fixes. Fixed ffitest.c for sparc builds.
-
-1.08 Oct-15-96
-	Fixed n32 problem. Many clean-ups.
-
-1.07 Oct-14-96
-	Gordon Irlam rewrites v8.S again. Bug fixes.
-
-1.06 Oct-14-96
-	Gordon Irlam improved the sparc port. 
-
-1.05 Oct-14-96
-	Interface changes based on feedback.
-
-1.04 Oct-11-96
-	Sparc port complete (modulo struct passing bug).
-
-1.03 Oct-10-96
-	Passing struct args, and returning struct values works for
-	all architectures/calling conventions. Expanded tests.
-
-1.02 Oct-9-96
-	Added SGI n32 support. Fixed bugs in both o32 and Linux support.
-	Added "make test".
-
-1.01 Oct-8-96
-	Fixed float passing bug in mips version. Restructured some
-	of the code. Builds cleanly with SGI tools.
-
-1.00 Oct-7-96
-	First release. No public announcement.
-
-
-Authors & Credits
-=================
-
-libffi was originally written by Anthony Green <green@redhat.com>.
-
-The developers of the GNU Compiler Collection project have made
-innumerable valuable contributions.  See the ChangeLog file for
-details.
-
-Some of the ideas behind libffi were inspired by Gianni Mariani's free
-gencall library for Silicon Graphics machines.
-
-The closure mechanism was designed and implemented by Kresten Krab
-Thorup.
-
-Major processor architecture ports were contributed by the following
-developers:
-
-alpha		Richard Henderson
-arm		Raffaele Sena
-cris		Simon Posnjak, Hans-Peter Nilsson
-frv		Anthony Green
-ia64		Hans Boehm
-m32r		Kazuhiro Inaoka
-m68k		Andreas Schwab
-mips		Anthony Green, Casey Marshall
-mips64		David Daney
-pa		Randolph Chung, Dave Anglin, Andreas Tobler
-powerpc		Geoffrey Keating, Andreas Tobler, 
-			 David Edelsohn, John Hornkvist
-powerpc64	Jakub Jelinek
-s390		Gerhard Tonn, Ulrich Weigand
-sh		Kaz Kojima
-sh64		Kaz Kojima
-sparc		Anthony Green, Gordon Irlam
-x86		Anthony Green, Jon Beniston
-x86-64		Bo Thorsen
-
-Jesper Skov and Andrew Haley both did more than their fair share of
-stepping through the code and tracking down bugs.
-
-Thanks also to Tom Tromey for bug fixes, documentation and
-configuration help.
-
-Thanks to Jim Blandy, who provided some useful feedback on the libffi
-interface.
-
-Andreas Tobler has done a tremendous amount of work on the testsuite.
-
-Alex Oliva solved the executable page problem for SElinux.
-
-The list above is almost certainly incomplete and inaccurate.  I'm
-happy to make corrections or additions upon request.
-
-If you have a problem, or have found a bug, please send a note to the
-author at green@moxielogic.com, or the project mailing list at
-libffi-discuss@sourceware.org.
diff --git a/.pc/ppc64-darwin/configure b/.pc/ppc64-darwin/configure
index 9e5e456..df0ed5d 100755
--- a/.pc/ppc64-darwin/configure
+++ b/.pc/ppc64-darwin/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1438,7 +1438,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2148,7 +2148,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14129,7 +14129,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14199,7 +14199,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/ppc64-darwin/configure.ac b/.pc/ppc64-darwin/configure.ac
index a72484a..92e2c0a 100644
--- a/.pc/ppc64-darwin/configure.ac
+++ b/.pc/ppc64-darwin/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/ungccify/configure.ac b/.pc/ungccify/configure.ac
index 299d78a..b858447 100644
--- a/.pc/ungccify/configure.ac
+++ b/.pc/ungccify/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/win64-underscore/configure b/.pc/win64-underscore/configure
index d99210e..92c848e 100755
--- a/.pc/win64-underscore/configure
+++ b/.pc/win64-underscore/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1366,7 +1366,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1437,7 +1437,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1546,7 +1546,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2147,7 +2147,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3080,7 +3080,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14071,7 +14071,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14141,7 +14141,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/win64-underscore/configure.ac b/.pc/win64-underscore/configure.ac
index 4015d0b..d0da6f1 100644
--- a/.pc/win64-underscore/configure.ac
+++ b/.pc/win64-underscore/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/.pc/x86_pcrel_test/configure b/.pc/x86_pcrel_test/configure
index b3ac190..05ebd21 100755
--- a/.pc/x86_pcrel_test/configure
+++ b/.pc/x86_pcrel_test/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1438,7 +1438,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2148,7 +2148,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14127,7 +14127,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14197,7 +14197,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/.pc/x86_pcrel_test/configure.ac b/.pc/x86_pcrel_test/configure.ac
index 6664c52..8af30a1 100644
--- a/.pc/x86_pcrel_test/configure.ac
+++ b/.pc/x86_pcrel_test/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/Makefile.in b/Makefile.in
index eeb0632..cbe1589 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -73,7 +73,17 @@
 	compile config.guess config.sub depcomp install-sh ltmain.sh \
 	mdate-sh missing texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+	$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
+	$(top_srcdir)/m4/ax_compiler_vendor.m4 \
+	$(top_srcdir)/m4/ax_configure_args.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
+	$(top_srcdir)/m4/ax_gcc_archflag.m4 \
+	$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -330,6 +340,7 @@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRTDIAG = @PRTDIAG@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -350,6 +361,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_enable_builddir_sed = @ax_enable_builddir_sed@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/README b/README
index 168c7f1..297c044 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 Status
 ======
 
-libffi-3.0.10 was released on XXXXXXXXXX, 2011. Check the libffi web
+libffi-3.0.10 was released on August 23, 2011. Check the libffi web
 page for updates: <URL:http://sourceware.org/libffi/>.
 
 
@@ -144,16 +144,19 @@
 
 See the ChangeLog files for details.
 
-3.0.10 ???-??-??
+3.0.10 Aug-23-11
         Add support for Apple's iOS.
 	Add support for ARM VFP ABI.
         Add RTEMS support for MIPS and M68K.
+	Fix instruction cache clearing problems on
+	  ARM and SPARC.
 	Fix the N64 build on mips-sgi-irix6.5.
 	Enable builds with Microsoft's compiler.
 	Enable x86 builds with Oracle's Solaris compiler.
 	Fix support for calling code compiled with Oracle's Sparc
 	  Solaris compiler.
 	Testsuite fixes for Tru64 Unix.
+	Additional platform support.
 
 3.0.9 Dec-31-09
         Add AVR32 and win64 ports.  Add ARM softfp support.
diff --git a/configure b/configure
index 7fb3d10..231c83a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
+# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
 #
 # Report bugs to <http://sourceware.org/libffi.html>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.10rc10'
-PACKAGE_STRING='libffi 3.0.10rc10'
+PACKAGE_VERSION='3.0.10'
+PACKAGE_STRING='libffi 3.0.10'
 PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
 PACKAGE_URL=''
 
@@ -1375,7 +1375,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1446,7 +1446,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
+     short | recursive ) echo "Configuration of libffi 3.0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1562,7 +1562,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.10rc10
+libffi configure 3.0.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2163,7 +2163,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.0.10rc10, which was
+It was created by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3197,7 +3197,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.10rc10'
+ VERSION='3.0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15151,7 +15151,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.0.10rc10, which was
+This file was extended by libffi $as_me 3.0.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15221,7 +15221,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libffi config.status 3.0.10rc10
+libffi config.status 3.0.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 8fe9a01..2d92d33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
+AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 66a59b1..5377bb8 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 22 August 2011
+@set UPDATED 23 August 2011
 @set UPDATED-MONTH August 2011
-@set EDITION 3.0.10rc10
-@set VERSION 3.0.10rc10
+@set EDITION 3.0.10
+@set VERSION 3.0.10
diff --git a/doc/version.texi b/doc/version.texi
index 66a59b1..5377bb8 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 22 August 2011
+@set UPDATED 23 August 2011
 @set UPDATED-MONTH August 2011
-@set EDITION 3.0.10rc10
-@set VERSION 3.0.10rc10
+@set EDITION 3.0.10
+@set VERSION 3.0.10
diff --git a/include/Makefile.in b/include/Makefile.in
index 9067cd6..f3d3ef2 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -39,7 +39,17 @@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/ffi.h.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+	$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
+	$(top_srcdir)/m4/ax_compiler_vendor.m4 \
+	$(top_srcdir)/m4/ax_configure_args.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
+	$(top_srcdir)/m4/ax_gcc_archflag.m4 \
+	$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -139,6 +149,7 @@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRTDIAG = @PRTDIAG@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -159,6 +170,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_enable_builddir_sed = @ax_enable_builddir_sed@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/man/Makefile.in b/man/Makefile.in
index 7464509..2cb5ea8 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -37,7 +37,17 @@
 subdir = man
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+	$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
+	$(top_srcdir)/m4/ax_compiler_vendor.m4 \
+	$(top_srcdir)/m4/ax_configure_args.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
+	$(top_srcdir)/m4/ax_gcc_archflag.m4 \
+	$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -137,6 +147,7 @@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRTDIAG = @PRTDIAG@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -157,6 +168,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_enable_builddir_sed = @ax_enable_builddir_sed@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/patches/interix b/patches/interix
index ccf9bfa..4e270d2 100644
--- a/patches/interix
+++ b/patches/interix
@@ -82,15 +82,3 @@
  	* testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
  	* testsuite/libffi.call/err_bad_abi.c: Remove xfail.
  	* src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
-Index: libffi/README
-===================================================================
---- libffi.orig/README
-+++ libffi/README
-@@ -74,6 +74,7 @@ tested:
- | SPARC64      | Linux            |
- | SPARC64      | FreeBSD          |
- | X86          | FreeBSD          |
-+| X86          | Interix          |
- | X86          | kFreeBSD         |
- | X86          | Linux            |
- | X86          | Mac OSX          |
diff --git a/patches/ios b/patches/ios
index 1f6d1a5..b60917f 100644
--- a/patches/ios
+++ b/patches/ios
@@ -797,24 +797,3 @@
  
  #define USE_LOCKS 1
  #define USE_DL_PREFIX 1
-Index: libffi/README
-===================================================================
---- libffi.orig/README
-+++ libffi/README
-@@ -54,6 +54,7 @@ tested:
- | Alpha        | Linux            |
- | Alpha        | Tru64            |
- | ARM          | Linux            |
-+| ARM          | iOS              |
- | AVR32        | Linux            |
- | HPPA         | HPUX             |
- | IA-64        | Linux            |
-@@ -124,6 +125,8 @@ under a MingW environment, you may need 
- that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not
- present in MingW, and is not required when using MingW-style paths.)
- 
-+For iOS builds, refer to the build-ios.sh script for guidance.
-+
- Configure has many other options. Use "configure --help" to see them all.
- 
- Once configure has finished, type "make". Note that you must be using
diff --git a/patches/msvcc-warning b/patches/msvcc-warning
index 667c123..549fd30 100644
--- a/patches/msvcc-warning
+++ b/patches/msvcc-warning
@@ -1,24 +1,3 @@
-Index: libffi/README
-===================================================================
---- libffi.orig/README
-+++ libffi/README
-@@ -116,9 +116,13 @@ It's also possible to build libffi on Wi
- Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
- wrapper script during configuration like so:
- 
--path/to/configure --enable-shared --enable-static \
--	CC=path/to/msvcc.sh LD=link \
--	CPP=\"cl -nologo -EP\"
-+path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
-+
-+For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64".
-+You may also need to specify --build appropriately. When building with MSVC
-+under a MingW environment, you may need to remove the line in configure
-+that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not
-+present in MingW, and is not required when using MingW-style paths.)
- 
- Configure has many other options. Use "configure --help" to see them all.
- 
 Index: libffi/msvcc.sh
 ===================================================================
 --- libffi.orig/msvcc.sh
diff --git a/patches/stand-alone b/patches/stand-alone
index 6f32652..c375477 100644
--- a/patches/stand-alone
+++ b/patches/stand-alone
@@ -696,7 +696,7 @@
  #! /bin/sh
  # Guess values for system-dependent variables and create Makefiles.
 -# Generated by GNU Autoconf 2.68 for libffi 3.0.9.
-+# Generated by GNU Autoconf 2.68 for libffi 3.0.10rc10.
++# Generated by GNU Autoconf 2.68 for libffi 3.0.10.
  #
 -# Report bugs to <http://gcc.gnu.org/bugs.html>.
 +# Report bugs to <http://sourceware.org/libffi.html>.
@@ -719,8 +719,8 @@
 -PACKAGE_VERSION='3.0.9'
 -PACKAGE_STRING='libffi 3.0.9'
 -PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
-+PACKAGE_VERSION='3.0.10rc10'
-+PACKAGE_STRING='libffi 3.0.10rc10'
++PACKAGE_VERSION='3.0.10'
++PACKAGE_STRING='libffi 3.0.10'
 +PACKAGE_BUGREPORT='http://sourceware.org/libffi.html'
  PACKAGE_URL=''
  
@@ -755,7 +755,7 @@
    # This message is too long to be a string in the A/UX 3.1 sh.
    cat <<_ACEOF
 -\`configure' configures libffi 3.0.9 to adapt to many kinds of systems.
-+\`configure' configures libffi 3.0.10rc10 to adapt to many kinds of systems.
++\`configure' configures libffi 3.0.10 to adapt to many kinds of systems.
  
  Usage: $0 [OPTION]... [VAR=VALUE]...
  
@@ -764,7 +764,7 @@
  if test -n "$ac_init_help"; then
    case $ac_init_help in
 -     short | recursive ) echo "Configuration of libffi 3.0.9:";;
-+     short | recursive ) echo "Configuration of libffi 3.0.10rc10:";;
++     short | recursive ) echo "Configuration of libffi 3.0.10:";;
     esac
    cat <<\_ACEOF
  
@@ -790,7 +790,7 @@
  if $ac_init_version; then
    cat <<\_ACEOF
 -libffi configure 3.0.9
-+libffi configure 3.0.10rc10
++libffi configure 3.0.10
  generated by GNU Autoconf 2.68
  
  Copyright (C) 2010 Free Software Foundation, Inc.
@@ -812,7 +812,7 @@
  running configure, to aid debugging if configure makes a mistake.
  
 -It was created by libffi $as_me 3.0.9, which was
-+It was created by libffi $as_me 3.0.10rc10, which was
++It was created by libffi $as_me 3.0.10, which was
  generated by GNU Autoconf 2.68.  Invocation command line was
  
    $ $0 $@
@@ -866,7 +866,7 @@
  # Define the identity of the package.
   PACKAGE='libffi'
 - VERSION='3.0.9'
-+ VERSION='3.0.10rc10'
++ VERSION='3.0.10'
  
  
  cat >>confdefs.h <<_ACEOF
@@ -1003,7 +1003,7 @@
  # values after options handling.
  ac_log="
 -This file was extended by libffi $as_me 3.0.9, which was
-+This file was extended by libffi $as_me 3.0.10rc10, which was
++This file was extended by libffi $as_me 3.0.10, which was
  generated by GNU Autoconf 2.68.  Invocation command line was
  
    CONFIG_FILES    = $CONFIG_FILES
@@ -1019,7 +1019,7 @@
  ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
  ac_cs_version="\\
 -libffi config.status 3.0.9
-+libffi config.status 3.0.10rc10
++libffi config.status 3.0.10
  configured by $0, generated by GNU Autoconf 2.68,
    with options \\"\$ac_cs_config\\"
  
@@ -1083,7 +1083,7 @@
 +AC_PREREQ(2.63)
  
 -AC_INIT([libffi], [3.0.9], [http://gcc.gnu.org/bugs.html])
-+AC_INIT([libffi], [3.0.10rc10], [http://sourceware.org/libffi.html])
++AC_INIT([libffi], [3.0.10], [http://sourceware.org/libffi.html])
  AC_CONFIG_HEADERS([fficonfig.h])
  
 -AM_ENABLE_MULTILIB(, ..)
@@ -8990,7 +8990,7 @@
  ======
  
 -libffi-3.0.9 was released on December 31, 2009. Check the libffi web
-+libffi-3.0.10 was released on XXXXXXXXXX, 2011. Check the libffi web
++libffi-3.0.10 was released on August 23, 2011. Check the libffi web
  page for updates: <URL:http://sourceware.org/libffi/>.
  
  
@@ -9003,12 +9003,13 @@
  
  At the time of release, the following basic configurations have been
  tested:
-@@ -55,12 +52,15 @@ tested:
+@@ -55,12 +52,16 @@ tested:
  | Architecture | Operating System |
  |--------------+------------------|
  | Alpha        | Linux            |
 +| Alpha        | Tru64            |
  | ARM          | Linux            |
++| ARM          | iOS              |
  | AVR32        | Linux            |
  | HPPA         | HPUX             |
  | IA-64        | Linux            |
@@ -9019,7 +9020,15 @@
  | MIPS64       | Linux            |
  | PowerPC      | Linux            |
  | PowerPC      | Mac OSX          |
-@@ -84,6 +84,7 @@ tested:
+@@ -73,6 +74,7 @@ tested:
+ | SPARC64      | Linux            |
+ | SPARC64      | FreeBSD          |
+ | X86          | FreeBSD          |
++| X86          | Interix          |
+ | X86          | kFreeBSD         |
+ | X86          | Linux            |
+ | X86          | Mac OSX          |
+@@ -84,6 +86,7 @@ tested:
  | X86-64       | FreeBSD          |
  | X86-64       | Linux            |
  | X86-64       | OpenBSD          |
@@ -9027,13 +9036,36 @@
  |--------------+------------------|
  
  Please send additional platform test results to
-@@ -136,10 +137,15 @@ History
+@@ -115,9 +118,15 @@ It's also possible to build libffi on Wi
+ Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
+ wrapper script during configuration like so:
+ 
+-path/to/configure --enable-shared --enable-static \
+-	CC=path/to/msvcc.sh LD=link \
+-	CPP=\"cl -nologo -EP\"
++path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
++
++For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64".
++You may also need to specify --build appropriately. When building with MSVC
++under a MingW environment, you may need to remove the line in configure
++that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not
++present in MingW, and is not required when using MingW-style paths.)
++
++For iOS builds, refer to the build-ios.sh script for guidance.
+ 
+ Configure has many other options. Use "configure --help" to see them all.
+ 
+@@ -135,11 +144,19 @@ History
+ 
  See the ChangeLog files for details.
  
- 3.0.10 ???-??-??
+-3.0.10 ???-??-??
++3.0.10 Aug-23-11
 +        Add support for Apple's iOS.
 +	Add support for ARM VFP ABI.
 +        Add RTEMS support for MIPS and M68K.
++	Fix instruction cache clearing problems on
++	  ARM and SPARC.
  	Fix the N64 build on mips-sgi-irix6.5.
 -	Testsuite fixes for Tru64 Unix.
  	Enable builds with Microsoft's compiler.
@@ -9042,10 +9074,11 @@
 +	Fix support for calling code compiled with Oracle's Sparc
 +	  Solaris compiler.
 +	Testsuite fixes for Tru64 Unix.
++	Additional platform support.
  
  3.0.9 Dec-31-09
          Add AVR32 and win64 ports.  Add ARM softfp support.
-@@ -320,5 +326,6 @@ Alex Oliva solved the executable page pr
+@@ -320,5 +337,6 @@ Alex Oliva solved the executable page pr
  The list above is almost certainly incomplete and inaccurate.  I'm
  happy to make corrections or additions upon request.
  
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
index 3a3bfcb..53de9c0 100644
--- a/testsuite/Makefile.in
+++ b/testsuite/Makefile.in
@@ -37,7 +37,17 @@
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+	$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
+	$(top_srcdir)/m4/ax_compiler_vendor.m4 \
+	$(top_srcdir)/m4/ax_configure_args.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
+	$(top_srcdir)/m4/ax_gcc_archflag.m4 \
+	$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -114,6 +124,7 @@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRTDIAG = @PRTDIAG@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
@@ -134,6 +145,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_enable_builddir_sed = @ax_enable_builddir_sed@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
