HPUX support and avr32 test fixes.
authorAnthony Green <green@gmachine.(none)>
Sat, 26 Dec 2009 17:57:23 +0000 (12:57 -0500)
committerAnthony Green <green@gmachine.(none)>
Sat, 26 Dec 2009 17:57:23 +0000 (12:57 -0500)
35 files changed:
.pc/amd64-openbsd/configure
.pc/amd64-openbsd/configure.ac
.pc/applied-patches
.pc/avr32-test/.timestamp [new file with mode: 0644]
.pc/avr32-test/ChangeLog.libffi [new file with mode: 0644]
.pc/avr32-test/testsuite/libffi.call/cls_double_va.c [new file with mode: 0644]
.pc/avr32-test/testsuite/libffi.call/cls_longdouble_va.c [new file with mode: 0644]
.pc/avr32-test/testsuite/libffi.call/huge_struct.c [new file with mode: 0644]
.pc/hpux/.timestamp [new file with mode: 0644]
.pc/hpux/ChangeLog.libffi [new file with mode: 0644]
.pc/hpux/testsuite/libffi.call/ffitest.h [new file with mode: 0644]
.pc/hpux/testsuite/libffi.call/huge_struct.c [new file with mode: 0644]
.pc/hpux/testsuite/libffi.special/unwindtest.cc [new file with mode: 0644]
.pc/snow-leopard/configure
.pc/snow-leopard/configure.ac
.pc/undefine_AC_ARG_VAR_PRECIOUS/configure
.pc/undefine_AC_ARG_VAR_PRECIOUS/configure.ac
.pc/windows/configure
.pc/windows/configure.ac
ChangeLog.libffi
config.guess [changed mode: 0644->0755]
config.sub [changed mode: 0644->0755]
configure
configure.ac
doc/stamp-vti
doc/version.texi
patches/avr32-test [new file with mode: 0644]
patches/hpux [new file with mode: 0644]
patches/series
patches/stand-alone
testsuite/libffi.call/cls_double_va.c
testsuite/libffi.call/cls_longdouble_va.c
testsuite/libffi.call/ffitest.h
testsuite/libffi.call/huge_struct.c
testsuite/libffi.special/unwindtest.cc

index 1ebf44a..8441c37 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
 #
 # Report bugs to <http://gcc.gnu.org/bugs.html>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.9rc9'
-PACKAGE_STRING='libffi 3.0.9rc9'
+PACKAGE_VERSION='3.0.9rc10'
+PACKAGE_STRING='libffi 3.0.9rc10'
 PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 
 # Factoring default headers for most tests.
@@ -1542,7 +1542,7 @@ if test "$ac_init_help" = "long"; then
   # 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.9rc9 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1613,7 +1613,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
+     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,7 +1720,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.9rc9
+libffi configure 3.0.9rc10
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF
 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.9rc9, which was
+It was created by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2716,7 +2716,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.9rc9'
+ VERSION='3.0.9rc10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15317,7 +15317,7 @@ exec 6>&1
 # 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.9rc9, which was
+This file was extended by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15384,7 +15384,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libffi config.status 3.0.9rc9
+libffi config.status 3.0.9rc10
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 5a5ac0f..3dee568 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
+AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
index 33f5dd6..ced1339 100644 (file)
@@ -7,3 +7,5 @@ powerpc-fixes
 fix-huge_struct-on-solaris
 xpass
 amd64-openbsd
+hpux
+avr32-test
diff --git a/.pc/avr32-test/.timestamp b/.pc/avr32-test/.timestamp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/.pc/avr32-test/ChangeLog.libffi b/.pc/avr32-test/ChangeLog.libffi
new file mode 100644 (file)
index 0000000..a5d3c9f
--- /dev/null
@@ -0,0 +1,656 @@
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
+       and inttypes.h.
+       * testsuite/libffi.special/unwindtest.cc: Ditto.
+       * testsuite/libffi.call/huge_struct.c: Don't include stdint.h
+       directly.
+
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * configure.ac: Add amd64-*-openbsd*.
+       * configure: Rebuilt.
+       * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
+       openbsd programs with -lpthread.
+
+2009-12-26  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
+       mips*-*-* and arm*-*-*.
+       * testsuite/libffi.call/cls_align_longdouble_split.c,
+       testsuite/libffi.call/cls_align_longdouble_split2.c,
+       testsuite/libffi.call/stret_medium2.c,
+       testsuite/libffi.call/stret_medium.c,
+       testsuite/libffi.call/stret_large.c,
+       testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
+
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+           Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/huge_struct.c (test_large_fn): Replace
+       format code %p with %#lx because %p does not add a leading 0x on
+       Solaris.  Also change relevant arguments to unsigned long.
+
+2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
+       when a float argument is passed in memory.
+       (ffi_closure_helper_SYSV): Mark general registers as used up when
+       a 64bit or soft-float long double argument is passed in memory.
+
+2009-12-25  Samuli Suominen  <ssuominen@gentoo.org>
+
+       * configure.ac: Undefine _AC_ARG_VAR_PRECIOUS for autoconf 2.64.
+       * configure: Rebuilt.
+       * fficonfig.h.in: Rebuilt.
+
+2009-12-25  Carlo Bramini  <carlo.bramix@libero.it>
+
+       * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
+       * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
+       * configure: Rebuilt.
+       * Makefile.in: Rebuilt.
+
+2009-12-24  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/huge_struct.c: Fix printf format, and
+       don't xfail x86 Linux.
+       * testsuite/libffi.call/huge_struct.c: Don't xfail mips.
+       * testsuite/libffi.call/cls_pointer.c: Ditto.
+       * testsuite/libffi.call/cls_pointer_stack.c: Ditto.
+       * testsuite/libffi.call/cls_longdouble_va.c: Ditto.
+       * testsuite/libffi.call/cls_longdouble.c: Ditto.
+       * testsuite/libffi.call/cls_double_va.c: Ditto.
+
+2009-12-25  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * fficonfig.h.in: Rebuilt again.
+       * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
+       Solaris/x86.
+
+2009-10-27  Abdulaziz Ghuloum <aghuloum@gmail.com>
+
+       * configure.ac (FFI_MMAP_EXEC_WRIT): Define for snow
+       leopard (i?86-apple-darwin10*).
+       * configure: Rebuilt.
+       * fficonfig.h.in: Rebuilt.
+       * src/closures.c (dlmmap): Define version for snow leopard.
+
+2009-06-16  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_medium2.c: Fix printf format
+       specifiers.
+       * testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
+       * testsuite/libffi.call/float2.c: Fix dg-excess-errors.
+       * testsuite/libffi.call/ffitest.h,
+       testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
+
+2009-06-12  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_medium2.c: Fix printf format
+       specifiers.
+       testsuite/libffi.special/unwindtest.cc: include stdint.h.
+
+2009-06-11  Timothy Wall  <twall@users.sf.net>
+
+       * Makefile.am,
+        configure.ac,
+        include/ffi.h.in,
+        include/ffi_common.h,
+        src/closures.c,
+        src/dlmalloc.c,
+        src/x86/ffi.c,
+        src/x86/ffitarget.h,
+        src/x86/win64.S (new),
+       README: Added win64 support (mingw or MSVC)
+        * Makefile.in,
+        include/Makefile.in,
+        man/Makefile.in,
+        testsuite/Makefile.in,
+        configure,
+        aclocal.m4: Regenerated
+        * ltcf-c.sh: properly escape cygwin/w32 path
+        * man/ffi_call.3: Clarify size requirements for return value.
+        * src/x86/ffi64.c: Fix filename in comment.
+        * src/x86/win32.S: Remove unused extern.
+
+        * testsuite/libffi.call/closure_fn0.c,
+        testsuite/libffi.call/closure_fn1.c,
+        testsuite/libffi.call/closure_fn2.c,
+        testsuite/libffi.call/closure_fn3.c,
+        testsuite/libffi.call/closure_fn4.c,
+        testsuite/libffi.call/closure_fn5.c,
+        testsuite/libffi.call/closure_fn6.c,
+       testsuite/libffi.call/closure_stdcall.c,
+       testsuite/libffi.call/cls_12byte.c,
+       testsuite/libffi.call/cls_16byte.c,
+       testsuite/libffi.call/cls_18byte.c,
+       testsuite/libffi.call/cls_19byte.c,
+       testsuite/libffi.call/cls_1_1byte.c,
+       testsuite/libffi.call/cls_20byte.c,
+       testsuite/libffi.call/cls_20byte1.c,
+       testsuite/libffi.call/cls_24byte.c,
+       testsuite/libffi.call/cls_2byte.c,
+       testsuite/libffi.call/cls_3_1byte.c,
+       testsuite/libffi.call/cls_3byte1.c,
+       testsuite/libffi.call/cls_3byte2.c,
+       testsuite/libffi.call/cls_4_1byte.c,
+       testsuite/libffi.call/cls_4byte.c,
+       testsuite/libffi.call/cls_5_1_byte.c,
+       testsuite/libffi.call/cls_5byte.c,
+       testsuite/libffi.call/cls_64byte.c,
+       testsuite/libffi.call/cls_6_1_byte.c,
+       testsuite/libffi.call/cls_6byte.c,
+       testsuite/libffi.call/cls_7_1_byte.c,
+       testsuite/libffi.call/cls_7byte.c,
+       testsuite/libffi.call/cls_8byte.c,
+       testsuite/libffi.call/cls_9byte1.c,
+       testsuite/libffi.call/cls_9byte2.c,
+       testsuite/libffi.call/cls_align_double.c,
+       testsuite/libffi.call/cls_align_float.c,
+       testsuite/libffi.call/cls_align_longdouble.c,
+       testsuite/libffi.call/cls_align_longdouble_split.c,
+       testsuite/libffi.call/cls_align_longdouble_split2.c,
+       testsuite/libffi.call/cls_align_pointer.c,
+       testsuite/libffi.call/cls_align_sint16.c,
+       testsuite/libffi.call/cls_align_sint32.c,
+       testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint16.c,
+       testsuite/libffi.call/cls_align_uint32.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_dbls_struct.c,
+       testsuite/libffi.call/cls_double.c,
+       testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_float.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_multi_schar.c,
+       testsuite/libffi.call/cls_multi_sshort.c,
+       testsuite/libffi.call/cls_multi_sshortchar.c,
+       testsuite/libffi.call/cls_multi_uchar.c,
+       testsuite/libffi.call/cls_multi_ushort.c,
+       testsuite/libffi.call/cls_multi_ushortchar.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c,
+       testsuite/libffi.call/cls_schar.c,
+       testsuite/libffi.call/cls_sint.c,
+       testsuite/libffi.call/cls_sshort.c,
+       testsuite/libffi.call/cls_uchar.c,
+       testsuite/libffi.call/cls_uint.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/cls_ushort.c,
+       testsuite/libffi.call/err_bad_abi.c,
+       testsuite/libffi.call/err_bad_typedef.c,
+       testsuite/libffi.call/float2.c,
+       testsuite/libffi.call/huge_struct.c,
+       testsuite/libffi.call/nested_struct.c,
+       testsuite/libffi.call/nested_struct1.c,
+       testsuite/libffi.call/nested_struct10.c,
+       testsuite/libffi.call/nested_struct2.c,
+       testsuite/libffi.call/nested_struct3.c,
+       testsuite/libffi.call/nested_struct4.c,
+       testsuite/libffi.call/nested_struct5.c,
+       testsuite/libffi.call/nested_struct6.c,
+       testsuite/libffi.call/nested_struct7.c,
+       testsuite/libffi.call/nested_struct8.c,
+       testsuite/libffi.call/nested_struct9.c,
+       testsuite/libffi.call/problem1.c,
+       testsuite/libffi.call/return_ldl.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_large.c,
+       testsuite/libffi.call/stret_large2.c,
+       testsuite/libffi.call/stret_medium.c,
+       testsuite/libffi.call/stret_medium2.c,
+        testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
+        of checking for MMAP.  Use intptr_t instead of long casts.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/mips/o32.S,
+       src/mips/n32.S: Fix licence formatting.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/x86/darwin.S: Fix licence formatting.
+       src/x86/win32.S: Likewise.
+       src/sh64/sysv.S: Likewise.
+       src/sh/sysv.S: Likewise.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/sh64/ffi.c: Remove lint directives.  Was missing from merge
+       of Andreas Tobler's patch from 2006-04-22.
+       
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
+       2007-03-07.
+
+2008-12-26  Timothy Wall  <twall@users.sf.net>
+
+       * testsuite/libffi.call/cls_longdouble.c,
+        testsuite/libffi.call/cls_longdouble_va.c,
+        testsuite/libffi.call/cls_align_longdouble.c,
+        testsuite/libffi.call/cls_align_longdouble_split.c,
+        testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
+        failures on x86_64 cygwin/mingw.
+
+2008-12-22  Timothy Wall  <twall@users.sf.net>
+
+       * testsuite/libffi.call/closure_fn0.c,
+        testsuite/libffi.call/closure_fn1.c,
+        testsuite/libffi.call/closure_fn2.c,
+        testsuite/libffi.call/closure_fn3.c,
+        testsuite/libffi.call/closure_fn4.c,
+        testsuite/libffi.call/closure_fn5.c,
+        testsuite/libffi.call/closure_fn6.c,
+        testsuite/libffi.call/closure_loc_fn0.c,
+        testsuite/libffi.call/closure_stdcall.c,
+        testsuite/libffi.call/cls_align_pointer.c,
+        testsuite/libffi.call/cls_pointer.c,
+        testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
+        pointer to integer (intptr_t).
+        * testsuite/libffi.call/cls_longdouble.c: disable for win64.
+
+2008-12-19  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.8.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-11-11  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.7.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
+       FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
+       Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
+       Adjust copyright notice.
+       * src/powerpc/ffi.c: Add two new flags to indicate if we have one
+       register or two register to use for FFI_SYSV structs.
+       (ffi_prep_cif_machdep): Pass the right register flag introduced above.
+       (ffi_closure_helper_SYSV): Fix the return type for
+       FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
+       Adjust copyright notice.
+
+2008-07-24  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/cls_dbls_struct.c,
+       testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c,
+       testsuite/libffi.call/err_bad_abi.c: Clean up failures from
+       compiler warnings.
+
+2008-07-17  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.6.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.  Add documentation.
+       * README: Update for new release.
+
+2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
+       int.
+
+2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * src/sh/sysv.S: Add .note.GNU-stack on Linux.
+       * src/sh64/sysv.S: Likewise.
+
+2008-04-03  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in (Libs): Add -L${libdir}.
+       * configure.ac: Bump version to 3.0.5.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-04-03  Anthony Green  <green@redhat.com>
+           Xerces Ranby  <xerxes@zafena.se>
+
+       * include/ffi.h.in: Wrap definition of target architecture to
+       protect from double definitions.
+
+2008-03-22  Moriyoshi Koizumi  <moriyoshi@gmail.com>
+
+       * src/x86/ffi.c (ffi_prep_closure_loc): Fix for bug revealed in
+       closure_loc_fn0.c.
+       * testsuite/libffi.call/closure_loc_fn0.c (closure_loc_test_fn0):
+       New test.
+
+2008-03-04  Anthony Green  <green@redhat.com>
+           Blake Chaffin
+           hos@tamanegi.org
+
+       * testsuite/libffi.call/cls_align_longdouble_split2.c
+          testsuite/libffi.call/cls_align_longdouble_split.c
+          testsuite/libffi.call/cls_dbls_struct.c
+          testsuite/libffi.call/cls_double_va.c
+          testsuite/libffi.call/cls_longdouble.c
+          testsuite/libffi.call/cls_longdouble_va.c
+          testsuite/libffi.call/cls_pointer.c
+          testsuite/libffi.call/cls_pointer_stack.c
+          testsuite/libffi.call/err_bad_abi.c
+          testsuite/libffi.call/err_bad_typedef.c
+          testsuite/libffi.call/huge_struct.c
+          testsuite/libffi.call/stret_large2.c
+          testsuite/libffi.call/stret_large.c
+          testsuite/libffi.call/stret_medium2.c
+          testsuite/libffi.call/stret_medium.c: New tests from Apple.
+
+2008-02-26  Jakub Jelinek  <jakub@redhat.com>
+            Anthony Green  <green@redhat.com>
+
+       * src/alpha/osf.S: Add .note.GNU-stack on Linux.
+       * src/s390/sysv.S: Likewise.
+       * src/powerpc/linux64.S: Likewise.
+       * src/powerpc/linux64_closure.S: Likewise.
+       * src/powerpc/ppc_closure.S: Likewise.
+       * src/powerpc/sysv.S: Likewise.
+       * src/x86/unix64.S: Likewise.
+       * src/x86/sysv.S: Likewise.
+       * src/sparc/v8.S: Likewise.
+       * src/sparc/v9.S: Likewise.
+       * src/m68k/sysv.S: Likewise.
+       * src/ia64/unix.S: Likewise.
+       * src/arm/sysv.S: Likewise.
+
+2008-02-26  Anthony Green  <green@redhat.com>
+            Thomas Heller  <theller@ctypes.org>
+
+       * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
+       comment.
+
+2008-02-26  Anthony Green  <green@redhat.org>
+            Thomas Heller  <theller@ctypes.org>
+
+       * include/ffi.h.in: Change void (*)() to void (*)(void).
+
+2008-02-26  Anthony Green  <green@redhat.org>
+            Thomas Heller  <theller@ctypes.org>
+
+       * src/alpha/ffi.c: Change void (*)() to void (*)(void).
+       src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
+       src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
+       src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
+       src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
+       src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
+       src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,
+       src/x86/ffi64.c: Ditto.
+
+2008-02-24  Anthony Green  <green@redhat.org>
+
+       * configure.ac: Accept openbsd*, not just openbsd.
+       Bump version to 3.0.4.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-22  Anthony Green  <green@redhat.com>
+
+       * README: Clean up list of tested platforms.
+
+2008-02-22  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.3.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.  Clean up test docs.
+
+2008-02-22  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
+           Andreas Tobler  <a.tobler@schweiz.org>
+
+       * configure.ac: Add amd64-*-freebsd* target.
+       * configure: Regenerate.
+
+2008-02-22  Thomas Heller <theller@ctypes.org>
+
+       * configure.ac: Add x86 OpenBSD support.
+       * configure: Rebuilt.
+
+2008-02-21  Thomas Heller <theller@ctypes.org>
+
+       * README: Change "make test" to "make check".
+
+2008-02-21  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.2.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-21  Björn König <bkoenig@alpha-tierchen.de>
+
+       * src/x86/freebsd.S: New file.
+       * configure.ac: Add x86 FreeBSD support.
+       * Makefile.am: Ditto.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.1.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-15  David Daney         <ddaney@avtrex.com>
+
+       * src/mips/ffi.c: Remove extra '>' from include directive.
+       (ffi_prep_closure_loc): Use clear_location instead of tramp.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.0.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15  David Daney         <ddaney@avtrex.com>
+
+       * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
+       Define (conditionally), and use it to include cachectl.h.
+       (ffi_prep_closure_loc): Fix cache flushing.
+       * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+        * man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
+       Update dates and remove all references to ffi_prep_closure.
+       * configure.ac: Bump version to 2.99.9.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * man/ffi_prep_closure.3: Delete.
+       * man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
+       (man_MANS): Ditto.
+       * man/Makefile.in: Rebuilt.
+       * configure.ac: Bump version to 2.99.8.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 2.99.7.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * include/ffi.h.in LICENSE src/debug.c src/closures.c
+          src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
+          src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
+          src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
+          src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
+          src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
+          src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
+          src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
+          src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
+          src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
+          src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
+          src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
+          src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
+          src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
+          src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
+          src/arm/ffitarget.h src/prep_cif.c: Update license text.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * README: Update tested platforms.
+       * configure.ac: Bump version to 2.99.6.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 2.99.5.
+       * configure: Rebuilt.
+       * Makefile.am (EXTRA_DIST): Add darwin64.S
+       * Makefile.in: Rebuilt.
+       * testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
+       * LICENSE: Update WARRANTY.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in (libdir): Fix libdir definition.
+       * configure.ac: Bump version to 2.99.4.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * README: Update.
+       * libffi.info: New file.
+       * doc/stamp-vti: New file.
+       * configure.ac: Bump version to 2.99.3.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (SUBDIRS): Add man dir.
+       * Makefile.in: Rebuilt.
+       * configure.ac: Create Makefile.
+       * configure: Rebuilt.
+        * man/ffi_call.3 man/ffi_prep_cif.3 man/ffi_prep_closure.3
+          man/Makefile.am man/Makefile.in: New files.
+
+2008-02-14  Tom Tromey  <tromey@redhat.com>
+
+       * aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
+       * mdate-sh, texinfo.tex: New files.
+       * Makefile.am (info_TEXINFOS): New variable.
+       * doc/libffi.texi: New file.
+       * doc/version.texi: Likewise.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (AM_CFLAGS): Don't compile with -D$(TARGET).
+       (lib_LTLIBRARIES): Define.
+       (toolexeclib_LIBRARIES): Undefine.
+       * Makefile.in: Rebuilt.
+       * configure.ac: Reset version to 2.99.1.
+       * configure.in: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
+       * configure.ac: Reset version to 2.99.1.
+       * configure.in: Rebuilt.
+       * Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
+       * Makefile.in: Rebuilt.
+       * LICENSE: Update copyright notice.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (nodist_includes_HEADERS): Define.  Don't
+       distribute ffitarget.h or ffi.h from the build include dir.
+       * Makefile.in: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (includesdir): Install headers under libdir.
+       (pkgconfigdir): Define. Install libffi.pc.
+       * include/Makefile.in: Rebuilt.
+       * libffi.pc.in: Create.
+       * libtool-version: Increment CURRENT
+       * configure.ac: Add libffi.pc.in
+       * configure: Rebuilt.
+
+2008-02-03  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (includesdir): Fix header install with
+       DESTDIR.
+       * include/Makefile.in: Rebuilt.
+
+2008-02-03  Timothy Wall  <twall@users.sf.net>
+
+       * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
+          offset based on code pointer, not data pointer.
+
+2008-02-01  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am: Fix header installs.
+       * Makefile.am: Ditto.
+       * include/Makefile.in: Rebuilt.
+       * Makefile.in: Ditto.
+
+2008-02-01  Anthony Green  <green@redhat.com>
+
+       * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL,
+       FFI_INIT_TRAMPOLINE): Revert my broken changes to twall's last
+       patch.
+
+2008-01-31  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (EXTRA_DIST): Add missing files.
+       * testsuite/Makefile.am: Ditto.
+       * Makefile.in, testsuite/Makefile.in: Rebuilt.
+
+2008-01-31  Timothy Wall <twall@users.sf.net>
+
+       * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
+       closures.
+       * src/x86/ffitarget.h: Increase size of trampoline for stdcall
+       closures.
+       * src/x86/win32.S: Add assembly for stdcall closure.
+       * src/x86/ffi.c: Initialize stdcall closure trampoline.
+
+2008-01-30  H.J. Lu <hongjiu.lu@intel.com>
+
+       PR libffi/34612
+       * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
+       returning struct.
+
+       * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
+       tests.
+
+2008-01-30  Anthony Green  <green@redhat.com>
+
+       * Makefile.am, include/Makefile.am: Move headers to
+       libffi_la_SOURCES for new automake.
+       * Makefile.in, include/Makefile.in: Rebuilt.
+       
+       * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for 
+       execution outside of gcc tree.
+       * testsuite/lib/target-libpath.exp: Ditto.
+
+       * testsuite/lib/libffi-dg.exp: Many changes to allow for execution
+       outside of gcc tree.
+
diff --git a/.pc/avr32-test/testsuite/libffi.call/cls_double_va.c b/.pc/avr32-test/testsuite/libffi.call/cls_double_va.c
new file mode 100644 (file)
index 0000000..cc10125
--- /dev/null
@@ -0,0 +1,56 @@
+/* Area:               ffi_call, closure_call
+   Purpose:            Test doubles passed in variable argument lists.
+   Limitations:        none.
+   PR:                 none.
+   Originator: Blake Chaffin 6/6/2007   */
+
+/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+#include "ffitest.h"
+
+static void
+cls_double_va_fn(ffi_cif* cif __UNUSED__, void* resp, 
+                void** args, void* userdata __UNUSED__)
+{
+       char*   format          = *(char**)args[0];
+       double  doubleValue     = *(double*)args[1];
+
+       *(ffi_arg*)resp = printf(format, doubleValue);
+}
+
+int main (void)
+{
+       ffi_cif cif;
+        void *code;
+       ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
+       void* args[3];
+       ffi_type* arg_types[3];
+
+       char*   format          = "%.1f\n";
+       double  doubleArg       = 7;
+       ffi_arg res                     = 0;
+
+       arg_types[0] = &ffi_type_pointer;
+       arg_types[1] = &ffi_type_double;
+       arg_types[2] = NULL;
+
+       CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint,
+               arg_types) == FFI_OK);
+
+       args[0] = &format;
+       args[1] = &doubleArg;
+       args[2] = NULL;
+
+       ffi_call(&cif, FFI_FN(printf), &res, args);
+       // { dg-output "7.0" }
+       printf("res: %d\n", (int) res);
+       // { dg-output "\nres: 4" }
+
+       CHECK(ffi_prep_closure_loc(pcl, &cif, cls_double_va_fn, NULL, code) == FFI_OK);
+
+       res     = ((int(*)(char*, double))(code))(format, doubleArg);
+       // { dg-output "\n7.0" }
+       printf("res: %d\n", (int) res);
+       // { dg-output "\nres: 4" }
+
+       exit(0);
+}
diff --git a/.pc/avr32-test/testsuite/libffi.call/cls_longdouble_va.c b/.pc/avr32-test/testsuite/libffi.call/cls_longdouble_va.c
new file mode 100644 (file)
index 0000000..6c17dc4
--- /dev/null
@@ -0,0 +1,57 @@
+/* Area:               ffi_call, closure_call
+   Purpose:            Test long doubles passed in variable argument lists.
+   Limitations:        none.
+   PR:                 none.
+   Originator: Blake Chaffin 6/6/2007   */
+
+/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+/* { dg-output "" { xfail x86_64-*-mingw* } } */
+#include "ffitest.h"
+
+static void
+cls_longdouble_va_fn(ffi_cif* cif __UNUSED__, void* resp, 
+                    void** args, void* userdata __UNUSED__)
+{
+       char*           format  = *(char**)args[0];
+       long double     ldValue = *(long double*)args[1];
+
+       *(ffi_arg*)resp = printf(format, ldValue);
+}
+
+int main (void)
+{
+       ffi_cif cif;
+        void *code;
+       ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
+       void* args[3];
+       ffi_type* arg_types[3];
+
+       char*           format  = "%.1Lf\n";
+       long double     ldArg   = 7;
+       ffi_arg         res             = 0;
+
+       arg_types[0] = &ffi_type_pointer;
+       arg_types[1] = &ffi_type_longdouble;
+       arg_types[2] = NULL;
+
+       CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint,
+               arg_types) == FFI_OK);
+
+       args[0] = &format;
+       args[1] = &ldArg;
+       args[2] = NULL;
+
+       ffi_call(&cif, FFI_FN(printf), &res, args);
+       // { dg-output "7.0" }
+       printf("res: %d\n", (int) res);
+       // { dg-output "\nres: 4" }
+
+       CHECK(ffi_prep_closure_loc(pcl, &cif, cls_longdouble_va_fn, NULL, code) == FFI_OK);
+
+       res     = ((int(*)(char*, long double))(code))(format, ldArg);
+       // { dg-output "\n7.0" }
+       printf("res: %d\n", (int) res);
+       // { dg-output "\nres: 4" }
+
+       exit(0);
+}
diff --git a/.pc/avr32-test/testsuite/libffi.call/huge_struct.c b/.pc/avr32-test/testsuite/libffi.call/huge_struct.c
new file mode 100644 (file)
index 0000000..8f30aaa
--- /dev/null
@@ -0,0 +1,342 @@
+/*     Area:                   ffi_call, closure_call
+       Purpose:                Check large structure returns.
+       Limitations:    none.
+       PR:                             none.
+       Originator:             Blake Chaffin   6/18/2007
+*/
+
+/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+/* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */
+/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+
+#include "ffitest.h"
+
+typedef        struct BigStruct{
+       uint8_t         a;
+       int8_t          b;
+       uint16_t        c;
+       int16_t         d;
+       uint32_t        e;
+       int32_t         f;
+       uint64_t        g;
+       int64_t         h;
+       float           i;
+       double          j;
+       long double     k;
+       char*           l;
+       uint8_t         m;
+       int8_t          n;
+       uint16_t        o;
+       int16_t         p;
+       uint32_t        q;
+       int32_t         r;
+       uint64_t        s;
+       int64_t         t;
+       float           u;
+       double          v;
+       long double     w;
+       char*           x;
+       uint8_t         y;
+       int8_t          z;
+       uint16_t        aa;
+       int16_t         bb;
+       uint32_t        cc;
+       int32_t         dd;
+       uint64_t        ee;
+       int64_t         ff;
+       float           gg;
+       double          hh;
+       long double     ii;
+       char*           jj;
+       uint8_t         kk;
+       int8_t          ll;
+       uint16_t        mm;
+       int16_t         nn;
+       uint32_t        oo;
+       int32_t         pp;
+       uint64_t        qq;
+       int64_t         rr;
+       float           ss;
+       double          tt;
+       long double     uu;
+       char*           vv;
+       uint8_t         ww;
+       int8_t          xx;
+} BigStruct;
+
+BigStruct
+test_large_fn(
+       uint8_t         ui8_1,
+       int8_t          si8_1,
+       uint16_t        ui16_1,
+       int16_t         si16_1,
+       uint32_t        ui32_1,
+       int32_t         si32_1,
+       uint64_t        ui64_1,
+       int64_t         si64_1,
+       float           f_1,
+       double          d_1,
+       long double     ld_1,
+       char*           p_1,
+       uint8_t         ui8_2,
+       int8_t          si8_2,
+       uint16_t        ui16_2,
+       int16_t         si16_2,
+       uint32_t        ui32_2,
+       int32_t         si32_2,
+       uint64_t        ui64_2,
+       int64_t         si64_2,
+       float           f_2,
+       double          d_2,
+       long double     ld_2,
+       char*           p_2,
+       uint8_t         ui8_3,
+       int8_t          si8_3,
+       uint16_t        ui16_3,
+       int16_t         si16_3,
+       uint32_t        ui32_3,
+       int32_t         si32_3,
+       uint64_t        ui64_3,
+       int64_t         si64_3,
+       float           f_3,
+       double          d_3,
+       long double     ld_3,
+       char*           p_3,
+       uint8_t         ui8_4,
+       int8_t          si8_4,
+       uint16_t        ui16_4,
+       int16_t         si16_4,
+       uint32_t        ui32_4,
+       int32_t         si32_4,
+       uint64_t        ui64_4,
+       int64_t         si64_4,
+       float           f_4,
+       double          d_4,
+       long double     ld_4,
+       char*           p_4,
+       uint8_t         ui8_5,
+       int8_t          si8_5)
+{
+       BigStruct       retVal  = {
+               ui8_1 + 1, si8_1 + 1, ui16_1 + 1, si16_1 + 1, ui32_1 + 1, si32_1 + 1,
+                       ui64_1 + 1, si64_1 + 1, f_1 + 1, d_1 + 1, ld_1 + 1, (char*)((intptr_t)p_1 + 1), 
+               ui8_2 + 2, si8_2 + 2, ui16_2 + 2, si16_2 + 2, ui32_2 + 2, si32_2 + 2,
+                       ui64_2 + 2, si64_2 + 2, f_2 + 2, d_2 + 2, ld_2 + 2, (char*)((intptr_t)p_2 + 2), 
+               ui8_3 + 3, si8_3 + 3, ui16_3 + 3, si16_3 + 3, ui32_3 + 3, si32_3 + 3,
+                       ui64_3 + 3, si64_3 + 3, f_3 + 3, d_3 + 3, ld_3 + 3, (char*)((intptr_t)p_3 + 3), 
+               ui8_4 + 4, si8_4 + 4, ui16_4 + 4, si16_4 + 4, ui32_4 + 4, si32_4 + 4,
+                       ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (char*)((intptr_t)p_4 + 4), 
+               ui8_5 + 5, si8_5 + 5};
+
+       printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd: "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+              ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, (unsigned long)p_1,
+               ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, (unsigned long)p_2,
+               ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, (unsigned long)p_3,
+               ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, (unsigned long)p_4, ui8_5, si8_5,
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+
+       return  retVal;
+}
+
+static void
+cls_large_fn(ffi_cif* cif __UNUSED__, void* resp, void** args, void* userdata __UNUSED__)
+{
+       uint8_t         ui8_1   = *(uint8_t*)args[0];
+       int8_t          si8_1   = *(int8_t*)args[1];
+       uint16_t        ui16_1  = *(uint16_t*)args[2];
+       int16_t         si16_1  = *(int16_t*)args[3];
+       uint32_t        ui32_1  = *(uint32_t*)args[4];
+       int32_t         si32_1  = *(int32_t*)args[5];
+       uint64_t        ui64_1  = *(uint64_t*)args[6];
+       int64_t         si64_1  = *(int64_t*)args[7];
+       float           f_1             = *(float*)args[8];
+       double          d_1             = *(double*)args[9];
+       long double     ld_1    = *(long double*)args[10];
+       char*           p_1             = *(char**)args[11];
+       uint8_t         ui8_2   = *(uint8_t*)args[12];
+       int8_t          si8_2   = *(int8_t*)args[13];
+       uint16_t        ui16_2  = *(uint16_t*)args[14];
+       int16_t         si16_2  = *(int16_t*)args[15];
+       uint32_t        ui32_2  = *(uint32_t*)args[16];
+       int32_t         si32_2  = *(int32_t*)args[17];
+       uint64_t        ui64_2  = *(uint64_t*)args[18];
+       int64_t         si64_2  = *(int64_t*)args[19];
+       float           f_2             = *(float*)args[20];
+       double          d_2             = *(double*)args[21];
+       long double     ld_2    = *(long double*)args[22];
+       char*           p_2             = *(char**)args[23];
+       uint8_t         ui8_3   = *(uint8_t*)args[24];
+       int8_t          si8_3   = *(int8_t*)args[25];
+       uint16_t        ui16_3  = *(uint16_t*)args[26];
+       int16_t         si16_3  = *(int16_t*)args[27];
+       uint32_t        ui32_3  = *(uint32_t*)args[28];
+       int32_t         si32_3  = *(int32_t*)args[29];
+       uint64_t        ui64_3  = *(uint64_t*)args[30];
+       int64_t         si64_3  = *(int64_t*)args[31];
+       float           f_3             = *(float*)args[32];
+       double          d_3             = *(double*)args[33];
+       long double     ld_3    = *(long double*)args[34];
+       char*           p_3             = *(char**)args[35];
+       uint8_t         ui8_4   = *(uint8_t*)args[36];
+       int8_t          si8_4   = *(int8_t*)args[37];
+       uint16_t        ui16_4  = *(uint16_t*)args[38];
+       int16_t         si16_4  = *(int16_t*)args[39];
+       uint32_t        ui32_4  = *(uint32_t*)args[40];
+       int32_t         si32_4  = *(int32_t*)args[41];
+       uint64_t        ui64_4  = *(uint64_t*)args[42];
+       int64_t         si64_4  = *(int64_t*)args[43];
+       float           f_4             = *(float*)args[44];
+       double          d_4             = *(double*)args[45];
+       long double     ld_4    = *(long double*)args[46];
+       char*           p_4             = *(char**)args[47];
+       uint8_t         ui8_5   = *(uint8_t*)args[48];
+       int8_t          si8_5   = *(int8_t*)args[49];
+
+       *(BigStruct*)resp = test_large_fn(
+               ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1,
+               ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2,
+               ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3,
+               ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, p_4,
+               ui8_5, si8_5);
+}
+
+int
+main(int argc __UNUSED__, const char** argv __UNUSED__)
+{
+        void *code;
+       ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
+
+       ffi_cif         cif;
+       ffi_type*       argTypes[51];
+       void*           argValues[51];
+
+       ffi_type        ret_struct_type;
+       ffi_type*       st_fields[51];
+       BigStruct       retVal;
+
+       memset (&retVal, 0, sizeof(retVal));
+
+       ret_struct_type.size = 0;
+       ret_struct_type.alignment = 0;
+       ret_struct_type.type = FFI_TYPE_STRUCT;
+       ret_struct_type.elements = st_fields;
+
+       st_fields[0]    = st_fields[12] = st_fields[24] = st_fields[36] = st_fields[48] = &ffi_type_uint8;
+       st_fields[1]    = st_fields[13] = st_fields[25] = st_fields[37] = st_fields[49] = &ffi_type_sint8;
+       st_fields[2]    = st_fields[14] = st_fields[26] = st_fields[38] = &ffi_type_uint16;
+       st_fields[3]    = st_fields[15] = st_fields[27] = st_fields[39] = &ffi_type_sint16;
+       st_fields[4]    = st_fields[16] = st_fields[28] = st_fields[40] = &ffi_type_uint32;
+       st_fields[5]    = st_fields[17] = st_fields[29] = st_fields[41] = &ffi_type_sint32;
+       st_fields[6]    = st_fields[18] = st_fields[30] = st_fields[42] = &ffi_type_uint64;
+       st_fields[7]    = st_fields[19] = st_fields[31] = st_fields[43] = &ffi_type_sint64;
+       st_fields[8]    = st_fields[20] = st_fields[32] = st_fields[44] = &ffi_type_float;
+       st_fields[9]    = st_fields[21] = st_fields[33] = st_fields[45] = &ffi_type_double;
+       st_fields[10]   = st_fields[22] = st_fields[34] = st_fields[46] = &ffi_type_longdouble;
+       st_fields[11]   = st_fields[23] = st_fields[35] = st_fields[47] = &ffi_type_pointer;
+
+       st_fields[50] = NULL;
+
+       uint8_t         ui8             = 1;
+       int8_t          si8             = 2;
+       uint16_t        ui16    = 3;
+       int16_t         si16    = 4;
+       uint32_t        ui32    = 5;
+       int32_t         si32    = 6;
+       uint64_t        ui64    = 7;
+       int64_t         si64    = 8;
+       float           f               = 9;
+       double          d               = 10;
+       long double     ld              = 11;
+       char*           p               = (char*)0x12345678;
+
+       argTypes[0]             = argTypes[12]  = argTypes[24]  = argTypes[36]  = argTypes[48]  = &ffi_type_uint8;
+       argValues[0]    = argValues[12] = argValues[24] = argValues[36] = argValues[48] = &ui8;
+       argTypes[1]             = argTypes[13]  = argTypes[25]  = argTypes[37]  = argTypes[49]  = &ffi_type_sint8;
+       argValues[1]    = argValues[13] = argValues[25] = argValues[37] = argValues[49] = &si8;
+       argTypes[2]             = argTypes[14]  = argTypes[26]  = argTypes[38]  = &ffi_type_uint16;
+       argValues[2]    = argValues[14] = argValues[26] = argValues[38] = &ui16;
+       argTypes[3]             = argTypes[15]  = argTypes[27]  = argTypes[39]  = &ffi_type_sint16;
+       argValues[3]    = argValues[15] = argValues[27] = argValues[39] = &si16;
+       argTypes[4]             = argTypes[16]  = argTypes[28]  = argTypes[40]  = &ffi_type_uint32;
+       argValues[4]    = argValues[16] = argValues[28] = argValues[40] = &ui32;
+       argTypes[5]             = argTypes[17]  = argTypes[29]  = argTypes[41]  = &ffi_type_sint32;
+       argValues[5]    = argValues[17] = argValues[29] = argValues[41] = &si32;
+       argTypes[6]             = argTypes[18]  = argTypes[30]  = argTypes[42]  = &ffi_type_uint64;
+       argValues[6]    = argValues[18] = argValues[30] = argValues[42] = &ui64;
+       argTypes[7]             = argTypes[19]  = argTypes[31]  = argTypes[43]  = &ffi_type_sint64;
+       argValues[7]    = argValues[19] = argValues[31] = argValues[43] = &si64;
+       argTypes[8]             = argTypes[20]  = argTypes[32]  = argTypes[44]  = &ffi_type_float;
+       argValues[8]    = argValues[20] = argValues[32] = argValues[44] = &f;
+       argTypes[9]             = argTypes[21]  = argTypes[33]  = argTypes[45]  = &ffi_type_double;
+       argValues[9]    = argValues[21] = argValues[33] = argValues[45] = &d;
+       argTypes[10]    = argTypes[22]  = argTypes[34]  = argTypes[46]  = &ffi_type_longdouble;
+       argValues[10]   = argValues[22] = argValues[34] = argValues[46] = &ld;
+       argTypes[11]    = argTypes[23]  = argTypes[35]  = argTypes[47]  = &ffi_type_pointer;
+       argValues[11]   = argValues[23] = argValues[35] = argValues[47] = &p;
+
+       argTypes[50]    = NULL;
+       argValues[50]   = NULL;
+
+       CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 50, &ret_struct_type, argTypes) == FFI_OK);
+
+       ffi_call(&cif, FFI_FN(test_large_fn), &retVal, argValues);
+       // { dg-output "1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+       printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+       // { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+
+       CHECK(ffi_prep_closure_loc(pcl, &cif, cls_large_fn, NULL, code) == FFI_OK);
+
+       retVal  = ((BigStruct(*)(
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t))(code))(
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8);
+       // { dg-output "\n1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+       printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+       // { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+
+    return 0;
+}
diff --git a/.pc/hpux/.timestamp b/.pc/hpux/.timestamp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/.pc/hpux/ChangeLog.libffi b/.pc/hpux/ChangeLog.libffi
new file mode 100644 (file)
index 0000000..1441c78
--- /dev/null
@@ -0,0 +1,648 @@
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * configure.ac: Add amd64-*-openbsd*.
+       * configure: Rebuilt.
+       * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
+       openbsd programs with -lpthread.
+
+2009-12-26  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
+       mips*-*-* and arm*-*-*.
+       * testsuite/libffi.call/cls_align_longdouble_split.c,
+       testsuite/libffi.call/cls_align_longdouble_split2.c,
+       testsuite/libffi.call/stret_medium2.c,
+       testsuite/libffi.call/stret_medium.c,
+       testsuite/libffi.call/stret_large.c,
+       testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
+
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+           Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/huge_struct.c (test_large_fn): Replace
+       format code %p with %#lx because %p does not add a leading 0x on
+       Solaris.  Also change relevant arguments to unsigned long.
+
+2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
+       when a float argument is passed in memory.
+       (ffi_closure_helper_SYSV): Mark general registers as used up when
+       a 64bit or soft-float long double argument is passed in memory.
+
+2009-12-25  Samuli Suominen  <ssuominen@gentoo.org>
+
+       * configure.ac: Undefine _AC_ARG_VAR_PRECIOUS for autoconf 2.64.
+       * configure: Rebuilt.
+       * fficonfig.h.in: Rebuilt.
+
+2009-12-25  Carlo Bramini  <carlo.bramix@libero.it>
+
+       * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
+       * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
+       * configure: Rebuilt.
+       * Makefile.in: Rebuilt.
+
+2009-12-24  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/huge_struct.c: Fix printf format, and
+       don't xfail x86 Linux.
+       * testsuite/libffi.call/huge_struct.c: Don't xfail mips.
+       * testsuite/libffi.call/cls_pointer.c: Ditto.
+       * testsuite/libffi.call/cls_pointer_stack.c: Ditto.
+       * testsuite/libffi.call/cls_longdouble_va.c: Ditto.
+       * testsuite/libffi.call/cls_longdouble.c: Ditto.
+       * testsuite/libffi.call/cls_double_va.c: Ditto.
+
+2009-12-25  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * fficonfig.h.in: Rebuilt again.
+       * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
+       Solaris/x86.
+
+2009-10-27  Abdulaziz Ghuloum <aghuloum@gmail.com>
+
+       * configure.ac (FFI_MMAP_EXEC_WRIT): Define for snow
+       leopard (i?86-apple-darwin10*).
+       * configure: Rebuilt.
+       * fficonfig.h.in: Rebuilt.
+       * src/closures.c (dlmmap): Define version for snow leopard.
+
+2009-06-16  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_medium2.c: Fix printf format
+       specifiers.
+       * testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
+       * testsuite/libffi.call/float2.c: Fix dg-excess-errors.
+       * testsuite/libffi.call/ffitest.h,
+       testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
+
+2009-06-12  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_medium2.c: Fix printf format
+       specifiers.
+       testsuite/libffi.special/unwindtest.cc: include stdint.h.
+
+2009-06-11  Timothy Wall  <twall@users.sf.net>
+
+       * Makefile.am,
+        configure.ac,
+        include/ffi.h.in,
+        include/ffi_common.h,
+        src/closures.c,
+        src/dlmalloc.c,
+        src/x86/ffi.c,
+        src/x86/ffitarget.h,
+        src/x86/win64.S (new),
+       README: Added win64 support (mingw or MSVC)
+        * Makefile.in,
+        include/Makefile.in,
+        man/Makefile.in,
+        testsuite/Makefile.in,
+        configure,
+        aclocal.m4: Regenerated
+        * ltcf-c.sh: properly escape cygwin/w32 path
+        * man/ffi_call.3: Clarify size requirements for return value.
+        * src/x86/ffi64.c: Fix filename in comment.
+        * src/x86/win32.S: Remove unused extern.
+
+        * testsuite/libffi.call/closure_fn0.c,
+        testsuite/libffi.call/closure_fn1.c,
+        testsuite/libffi.call/closure_fn2.c,
+        testsuite/libffi.call/closure_fn3.c,
+        testsuite/libffi.call/closure_fn4.c,
+        testsuite/libffi.call/closure_fn5.c,
+        testsuite/libffi.call/closure_fn6.c,
+       testsuite/libffi.call/closure_stdcall.c,
+       testsuite/libffi.call/cls_12byte.c,
+       testsuite/libffi.call/cls_16byte.c,
+       testsuite/libffi.call/cls_18byte.c,
+       testsuite/libffi.call/cls_19byte.c,
+       testsuite/libffi.call/cls_1_1byte.c,
+       testsuite/libffi.call/cls_20byte.c,
+       testsuite/libffi.call/cls_20byte1.c,
+       testsuite/libffi.call/cls_24byte.c,
+       testsuite/libffi.call/cls_2byte.c,
+       testsuite/libffi.call/cls_3_1byte.c,
+       testsuite/libffi.call/cls_3byte1.c,
+       testsuite/libffi.call/cls_3byte2.c,
+       testsuite/libffi.call/cls_4_1byte.c,
+       testsuite/libffi.call/cls_4byte.c,
+       testsuite/libffi.call/cls_5_1_byte.c,
+       testsuite/libffi.call/cls_5byte.c,
+       testsuite/libffi.call/cls_64byte.c,
+       testsuite/libffi.call/cls_6_1_byte.c,
+       testsuite/libffi.call/cls_6byte.c,
+       testsuite/libffi.call/cls_7_1_byte.c,
+       testsuite/libffi.call/cls_7byte.c,
+       testsuite/libffi.call/cls_8byte.c,
+       testsuite/libffi.call/cls_9byte1.c,
+       testsuite/libffi.call/cls_9byte2.c,
+       testsuite/libffi.call/cls_align_double.c,
+       testsuite/libffi.call/cls_align_float.c,
+       testsuite/libffi.call/cls_align_longdouble.c,
+       testsuite/libffi.call/cls_align_longdouble_split.c,
+       testsuite/libffi.call/cls_align_longdouble_split2.c,
+       testsuite/libffi.call/cls_align_pointer.c,
+       testsuite/libffi.call/cls_align_sint16.c,
+       testsuite/libffi.call/cls_align_sint32.c,
+       testsuite/libffi.call/cls_align_sint64.c,
+       testsuite/libffi.call/cls_align_uint16.c,
+       testsuite/libffi.call/cls_align_uint32.c,
+       testsuite/libffi.call/cls_align_uint64.c,
+       testsuite/libffi.call/cls_dbls_struct.c,
+       testsuite/libffi.call/cls_double.c,
+       testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_float.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_multi_schar.c,
+       testsuite/libffi.call/cls_multi_sshort.c,
+       testsuite/libffi.call/cls_multi_sshortchar.c,
+       testsuite/libffi.call/cls_multi_uchar.c,
+       testsuite/libffi.call/cls_multi_ushort.c,
+       testsuite/libffi.call/cls_multi_ushortchar.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c,
+       testsuite/libffi.call/cls_schar.c,
+       testsuite/libffi.call/cls_sint.c,
+       testsuite/libffi.call/cls_sshort.c,
+       testsuite/libffi.call/cls_uchar.c,
+       testsuite/libffi.call/cls_uint.c,
+       testsuite/libffi.call/cls_ulonglong.c,
+       testsuite/libffi.call/cls_ushort.c,
+       testsuite/libffi.call/err_bad_abi.c,
+       testsuite/libffi.call/err_bad_typedef.c,
+       testsuite/libffi.call/float2.c,
+       testsuite/libffi.call/huge_struct.c,
+       testsuite/libffi.call/nested_struct.c,
+       testsuite/libffi.call/nested_struct1.c,
+       testsuite/libffi.call/nested_struct10.c,
+       testsuite/libffi.call/nested_struct2.c,
+       testsuite/libffi.call/nested_struct3.c,
+       testsuite/libffi.call/nested_struct4.c,
+       testsuite/libffi.call/nested_struct5.c,
+       testsuite/libffi.call/nested_struct6.c,
+       testsuite/libffi.call/nested_struct7.c,
+       testsuite/libffi.call/nested_struct8.c,
+       testsuite/libffi.call/nested_struct9.c,
+       testsuite/libffi.call/problem1.c,
+       testsuite/libffi.call/return_ldl.c,
+       testsuite/libffi.call/return_ll1.c,
+       testsuite/libffi.call/stret_large.c,
+       testsuite/libffi.call/stret_large2.c,
+       testsuite/libffi.call/stret_medium.c,
+       testsuite/libffi.call/stret_medium2.c,
+        testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
+        of checking for MMAP.  Use intptr_t instead of long casts.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/mips/o32.S,
+       src/mips/n32.S: Fix licence formatting.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/x86/darwin.S: Fix licence formatting.
+       src/x86/win32.S: Likewise.
+       src/sh64/sysv.S: Likewise.
+       src/sh/sysv.S: Likewise.
+
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/sh64/ffi.c: Remove lint directives.  Was missing from merge
+       of Andreas Tobler's patch from 2006-04-22.
+       
+2009-06-04  Andrew Haley  <aph@redhat.com>
+
+       * src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
+       2007-03-07.
+
+2008-12-26  Timothy Wall  <twall@users.sf.net>
+
+       * testsuite/libffi.call/cls_longdouble.c,
+        testsuite/libffi.call/cls_longdouble_va.c,
+        testsuite/libffi.call/cls_align_longdouble.c,
+        testsuite/libffi.call/cls_align_longdouble_split.c,
+        testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
+        failures on x86_64 cygwin/mingw.
+
+2008-12-22  Timothy Wall  <twall@users.sf.net>
+
+       * testsuite/libffi.call/closure_fn0.c,
+        testsuite/libffi.call/closure_fn1.c,
+        testsuite/libffi.call/closure_fn2.c,
+        testsuite/libffi.call/closure_fn3.c,
+        testsuite/libffi.call/closure_fn4.c,
+        testsuite/libffi.call/closure_fn5.c,
+        testsuite/libffi.call/closure_fn6.c,
+        testsuite/libffi.call/closure_loc_fn0.c,
+        testsuite/libffi.call/closure_stdcall.c,
+        testsuite/libffi.call/cls_align_pointer.c,
+        testsuite/libffi.call/cls_pointer.c,
+        testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
+        pointer to integer (intptr_t).
+        * testsuite/libffi.call/cls_longdouble.c: disable for win64.
+
+2008-12-19  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.8.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-11-11  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.7.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
+       FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
+       Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
+       Adjust copyright notice.
+       * src/powerpc/ffi.c: Add two new flags to indicate if we have one
+       register or two register to use for FFI_SYSV structs.
+       (ffi_prep_cif_machdep): Pass the right register flag introduced above.
+       (ffi_closure_helper_SYSV): Fix the return type for
+       FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
+       Adjust copyright notice.
+
+2008-07-24  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/cls_dbls_struct.c,
+       testsuite/libffi.call/cls_double_va.c,
+       testsuite/libffi.call/cls_longdouble.c,
+       testsuite/libffi.call/cls_longdouble_va.c,
+       testsuite/libffi.call/cls_pointer.c,
+       testsuite/libffi.call/cls_pointer_stack.c,
+       testsuite/libffi.call/err_bad_abi.c: Clean up failures from
+       compiler warnings.
+
+2008-07-17  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.6.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.  Add documentation.
+       * README: Update for new release.
+
+2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
+       int.
+
+2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * src/sh/sysv.S: Add .note.GNU-stack on Linux.
+       * src/sh64/sysv.S: Likewise.
+
+2008-04-03  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in (Libs): Add -L${libdir}.
+       * configure.ac: Bump version to 3.0.5.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-04-03  Anthony Green  <green@redhat.com>
+           Xerces Ranby  <xerxes@zafena.se>
+
+       * include/ffi.h.in: Wrap definition of target architecture to
+       protect from double definitions.
+
+2008-03-22  Moriyoshi Koizumi  <moriyoshi@gmail.com>
+
+       * src/x86/ffi.c (ffi_prep_closure_loc): Fix for bug revealed in
+       closure_loc_fn0.c.
+       * testsuite/libffi.call/closure_loc_fn0.c (closure_loc_test_fn0):
+       New test.
+
+2008-03-04  Anthony Green  <green@redhat.com>
+           Blake Chaffin
+           hos@tamanegi.org
+
+       * testsuite/libffi.call/cls_align_longdouble_split2.c
+          testsuite/libffi.call/cls_align_longdouble_split.c
+          testsuite/libffi.call/cls_dbls_struct.c
+          testsuite/libffi.call/cls_double_va.c
+          testsuite/libffi.call/cls_longdouble.c
+          testsuite/libffi.call/cls_longdouble_va.c
+          testsuite/libffi.call/cls_pointer.c
+          testsuite/libffi.call/cls_pointer_stack.c
+          testsuite/libffi.call/err_bad_abi.c
+          testsuite/libffi.call/err_bad_typedef.c
+          testsuite/libffi.call/huge_struct.c
+          testsuite/libffi.call/stret_large2.c
+          testsuite/libffi.call/stret_large.c
+          testsuite/libffi.call/stret_medium2.c
+          testsuite/libffi.call/stret_medium.c: New tests from Apple.
+
+2008-02-26  Jakub Jelinek  <jakub@redhat.com>
+            Anthony Green  <green@redhat.com>
+
+       * src/alpha/osf.S: Add .note.GNU-stack on Linux.
+       * src/s390/sysv.S: Likewise.
+       * src/powerpc/linux64.S: Likewise.
+       * src/powerpc/linux64_closure.S: Likewise.
+       * src/powerpc/ppc_closure.S: Likewise.
+       * src/powerpc/sysv.S: Likewise.
+       * src/x86/unix64.S: Likewise.
+       * src/x86/sysv.S: Likewise.
+       * src/sparc/v8.S: Likewise.
+       * src/sparc/v9.S: Likewise.
+       * src/m68k/sysv.S: Likewise.
+       * src/ia64/unix.S: Likewise.
+       * src/arm/sysv.S: Likewise.
+
+2008-02-26  Anthony Green  <green@redhat.com>
+            Thomas Heller  <theller@ctypes.org>
+
+       * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
+       comment.
+
+2008-02-26  Anthony Green  <green@redhat.org>
+            Thomas Heller  <theller@ctypes.org>
+
+       * include/ffi.h.in: Change void (*)() to void (*)(void).
+
+2008-02-26  Anthony Green  <green@redhat.org>
+            Thomas Heller  <theller@ctypes.org>
+
+       * src/alpha/ffi.c: Change void (*)() to void (*)(void).
+       src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
+       src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
+       src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
+       src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
+       src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
+       src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,
+       src/x86/ffi64.c: Ditto.
+
+2008-02-24  Anthony Green  <green@redhat.org>
+
+       * configure.ac: Accept openbsd*, not just openbsd.
+       Bump version to 3.0.4.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-22  Anthony Green  <green@redhat.com>
+
+       * README: Clean up list of tested platforms.
+
+2008-02-22  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.3.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.  Clean up test docs.
+
+2008-02-22  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
+           Andreas Tobler  <a.tobler@schweiz.org>
+
+       * configure.ac: Add amd64-*-freebsd* target.
+       * configure: Regenerate.
+
+2008-02-22  Thomas Heller <theller@ctypes.org>
+
+       * configure.ac: Add x86 OpenBSD support.
+       * configure: Rebuilt.
+
+2008-02-21  Thomas Heller <theller@ctypes.org>
+
+       * README: Change "make test" to "make check".
+
+2008-02-21  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.2.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-21  Björn König <bkoenig@alpha-tierchen.de>
+
+       * src/x86/freebsd.S: New file.
+       * configure.ac: Add x86 FreeBSD support.
+       * Makefile.am: Ditto.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.1.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * libtool-version: Increment revision.
+       * README: Update for new release.
+
+2008-02-15  David Daney         <ddaney@avtrex.com>
+
+       * src/mips/ffi.c: Remove extra '>' from include directive.
+       (ffi_prep_closure_loc): Use clear_location instead of tramp.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 3.0.0.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15  David Daney         <ddaney@avtrex.com>
+
+       * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
+       Define (conditionally), and use it to include cachectl.h.
+       (ffi_prep_closure_loc): Fix cache flushing.
+       * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+        * man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
+       Update dates and remove all references to ffi_prep_closure.
+       * configure.ac: Bump version to 2.99.9.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15  Anthony Green  <green@redhat.com>
+
+       * man/ffi_prep_closure.3: Delete.
+       * man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
+       (man_MANS): Ditto.
+       * man/Makefile.in: Rebuilt.
+       * configure.ac: Bump version to 2.99.8.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 2.99.7.
+       * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+       * include/ffi.h.in LICENSE src/debug.c src/closures.c
+          src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
+          src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
+          src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
+          src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
+          src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
+          src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
+          src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
+          src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
+          src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
+          src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
+          src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
+          src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
+          src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
+          src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
+          src/arm/ffitarget.h src/prep_cif.c: Update license text.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * README: Update tested platforms.
+       * configure.ac: Bump version to 2.99.6.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * configure.ac: Bump version to 2.99.5.
+       * configure: Rebuilt.
+       * Makefile.am (EXTRA_DIST): Add darwin64.S
+       * Makefile.in: Rebuilt.
+       * testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
+       * LICENSE: Update WARRANTY.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in (libdir): Fix libdir definition.
+       * configure.ac: Bump version to 2.99.4.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * README: Update.
+       * libffi.info: New file.
+       * doc/stamp-vti: New file.
+       * configure.ac: Bump version to 2.99.3.
+       * configure: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (SUBDIRS): Add man dir.
+       * Makefile.in: Rebuilt.
+       * configure.ac: Create Makefile.
+       * configure: Rebuilt.
+        * man/ffi_call.3 man/ffi_prep_cif.3 man/ffi_prep_closure.3
+          man/Makefile.am man/Makefile.in: New files.
+
+2008-02-14  Tom Tromey  <tromey@redhat.com>
+
+       * aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
+       * mdate-sh, texinfo.tex: New files.
+       * Makefile.am (info_TEXINFOS): New variable.
+       * doc/libffi.texi: New file.
+       * doc/version.texi: Likewise.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (AM_CFLAGS): Don't compile with -D$(TARGET).
+       (lib_LTLIBRARIES): Define.
+       (toolexeclib_LIBRARIES): Undefine.
+       * Makefile.in: Rebuilt.
+       * configure.ac: Reset version to 2.99.1.
+       * configure.in: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * libffi.pc.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
+       * configure.ac: Reset version to 2.99.1.
+       * configure.in: Rebuilt.
+       * Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
+       * Makefile.in: Rebuilt.
+       * LICENSE: Update copyright notice.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (nodist_includes_HEADERS): Define.  Don't
+       distribute ffitarget.h or ffi.h from the build include dir.
+       * Makefile.in: Rebuilt.
+
+2008-02-14  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (includesdir): Install headers under libdir.
+       (pkgconfigdir): Define. Install libffi.pc.
+       * include/Makefile.in: Rebuilt.
+       * libffi.pc.in: Create.
+       * libtool-version: Increment CURRENT
+       * configure.ac: Add libffi.pc.in
+       * configure: Rebuilt.
+
+2008-02-03  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am (includesdir): Fix header install with
+       DESTDIR.
+       * include/Makefile.in: Rebuilt.
+
+2008-02-03  Timothy Wall  <twall@users.sf.net>
+
+       * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
+          offset based on code pointer, not data pointer.
+
+2008-02-01  Anthony Green  <green@redhat.com>
+
+       * include/Makefile.am: Fix header installs.
+       * Makefile.am: Ditto.
+       * include/Makefile.in: Rebuilt.
+       * Makefile.in: Ditto.
+
+2008-02-01  Anthony Green  <green@redhat.com>
+
+       * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL,
+       FFI_INIT_TRAMPOLINE): Revert my broken changes to twall's last
+       patch.
+
+2008-01-31  Anthony Green  <green@redhat.com>
+
+       * Makefile.am (EXTRA_DIST): Add missing files.
+       * testsuite/Makefile.am: Ditto.
+       * Makefile.in, testsuite/Makefile.in: Rebuilt.
+
+2008-01-31  Timothy Wall <twall@users.sf.net>
+
+       * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
+       closures.
+       * src/x86/ffitarget.h: Increase size of trampoline for stdcall
+       closures.
+       * src/x86/win32.S: Add assembly for stdcall closure.
+       * src/x86/ffi.c: Initialize stdcall closure trampoline.
+
+2008-01-30  H.J. Lu <hongjiu.lu@intel.com>
+
+       PR libffi/34612
+       * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
+       returning struct.
+
+       * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
+       tests.
+
+2008-01-30  Anthony Green  <green@redhat.com>
+
+       * Makefile.am, include/Makefile.am: Move headers to
+       libffi_la_SOURCES for new automake.
+       * Makefile.in, include/Makefile.in: Rebuilt.
+       
+       * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for 
+       execution outside of gcc tree.
+       * testsuite/lib/target-libpath.exp: Ditto.
+
+       * testsuite/lib/libffi-dg.exp: Many changes to allow for execution
+       outside of gcc tree.
+
diff --git a/.pc/hpux/testsuite/libffi.call/ffitest.h b/.pc/hpux/testsuite/libffi.call/ffitest.h
new file mode 100644 (file)
index 0000000..52220a3
--- /dev/null
@@ -0,0 +1,111 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <inttypes.h>
+#include <ffi.h>
+#include "fficonfig.h"
+
+#define MAX_ARGS 256
+
+#define CHECK(x) !(x) ? abort() : 0
+
+/* Define __UNUSED__ that also other compilers than gcc can run the tests.  */
+#undef __UNUSED__
+#if defined(__GNUC__)
+#define __UNUSED__ __attribute__((__unused__))
+#else
+#define __UNUSED__
+#endif
+
+/* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a
+   file open.  */
+#ifdef HAVE_MMAP_ANON
+# undef HAVE_MMAP_DEV_ZERO
+
+# include <sys/mman.h>
+# ifndef MAP_FAILED
+#  define MAP_FAILED -1
+# endif
+# if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
+#  define MAP_ANONYMOUS MAP_ANON
+# endif
+# define USING_MMAP
+
+#endif
+
+#ifdef HAVE_MMAP_DEV_ZERO
+
+# include <sys/mman.h>
+# ifndef MAP_FAILED
+#  define MAP_FAILED -1
+# endif
+# define USING_MMAP
+
+#endif
+
+/* MinGW kludge.  */
+#ifdef WIN64
+#define PRIdLL "PRId64"
+#define PRIuLL "PRIu64"
+#else
+#define PRIdLL "lld"
+#define PRIuLL "llu"
+#endif
+
+/* PA HP-UX kludge.  */
+#if defined(__hppa__) && defined(__hpux__) && !defined(PRIuPTR)
+#define PRIuPTR "lu"
+#endif
+
+/* Solaris < 10 kludge.  */
+#if defined(__sun__) && defined(__svr4__) && !defined(PRIuPTR)
+#if defined(__arch64__) || defined (__x86_64__)
+#define PRIuPTR "lu"
+#else
+#define PRIuPTR "u"
+#endif
+#endif
+
+#ifdef USING_MMAP
+static inline void *
+allocate_mmap (size_t size)
+{
+  void *page;
+#if defined (HAVE_MMAP_DEV_ZERO)
+  static int dev_zero_fd = -1;
+#endif
+
+#ifdef HAVE_MMAP_DEV_ZERO
+  if (dev_zero_fd == -1)
+    {
+      dev_zero_fd = open ("/dev/zero", O_RDONLY);
+      if (dev_zero_fd == -1)
+       {
+         perror ("open /dev/zero: %m");
+         exit (1);
+       }
+    }
+#endif
+
+
+#ifdef HAVE_MMAP_ANON
+  page = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC,
+              MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+#endif
+#ifdef HAVE_MMAP_DEV_ZERO
+  page = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC,
+              MAP_PRIVATE, dev_zero_fd, 0);
+#endif
+
+  if (page == (void *) MAP_FAILED)
+    {
+      perror ("virtual memory exhausted");
+      exit (1);
+    }
+
+  return page;
+}
+
+#endif
diff --git a/.pc/hpux/testsuite/libffi.call/huge_struct.c b/.pc/hpux/testsuite/libffi.call/huge_struct.c
new file mode 100644 (file)
index 0000000..2401336
--- /dev/null
@@ -0,0 +1,344 @@
+/*     Area:                   ffi_call, closure_call
+       Purpose:                Check large structure returns.
+       Limitations:    none.
+       PR:                             none.
+       Originator:             Blake Chaffin   6/18/2007
+*/
+
+/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+/* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */
+/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+
+#include <stdint.h>
+
+#include "ffitest.h"
+
+typedef        struct BigStruct{
+       uint8_t         a;
+       int8_t          b;
+       uint16_t        c;
+       int16_t         d;
+       uint32_t        e;
+       int32_t         f;
+       uint64_t        g;
+       int64_t         h;
+       float           i;
+       double          j;
+       long double     k;
+       char*           l;
+       uint8_t         m;
+       int8_t          n;
+       uint16_t        o;
+       int16_t         p;
+       uint32_t        q;
+       int32_t         r;
+       uint64_t        s;
+       int64_t         t;
+       float           u;
+       double          v;
+       long double     w;
+       char*           x;
+       uint8_t         y;
+       int8_t          z;
+       uint16_t        aa;
+       int16_t         bb;
+       uint32_t        cc;
+       int32_t         dd;
+       uint64_t        ee;
+       int64_t         ff;
+       float           gg;
+       double          hh;
+       long double     ii;
+       char*           jj;
+       uint8_t         kk;
+       int8_t          ll;
+       uint16_t        mm;
+       int16_t         nn;
+       uint32_t        oo;
+       int32_t         pp;
+       uint64_t        qq;
+       int64_t         rr;
+       float           ss;
+       double          tt;
+       long double     uu;
+       char*           vv;
+       uint8_t         ww;
+       int8_t          xx;
+} BigStruct;
+
+BigStruct
+test_large_fn(
+       uint8_t         ui8_1,
+       int8_t          si8_1,
+       uint16_t        ui16_1,
+       int16_t         si16_1,
+       uint32_t        ui32_1,
+       int32_t         si32_1,
+       uint64_t        ui64_1,
+       int64_t         si64_1,
+       float           f_1,
+       double          d_1,
+       long double     ld_1,
+       char*           p_1,
+       uint8_t         ui8_2,
+       int8_t          si8_2,
+       uint16_t        ui16_2,
+       int16_t         si16_2,
+       uint32_t        ui32_2,
+       int32_t         si32_2,
+       uint64_t        ui64_2,
+       int64_t         si64_2,
+       float           f_2,
+       double          d_2,
+       long double     ld_2,
+       char*           p_2,
+       uint8_t         ui8_3,
+       int8_t          si8_3,
+       uint16_t        ui16_3,
+       int16_t         si16_3,
+       uint32_t        ui32_3,
+       int32_t         si32_3,
+       uint64_t        ui64_3,
+       int64_t         si64_3,
+       float           f_3,
+       double          d_3,
+       long double     ld_3,
+       char*           p_3,
+       uint8_t         ui8_4,
+       int8_t          si8_4,
+       uint16_t        ui16_4,
+       int16_t         si16_4,
+       uint32_t        ui32_4,
+       int32_t         si32_4,
+       uint64_t        ui64_4,
+       int64_t         si64_4,
+       float           f_4,
+       double          d_4,
+       long double     ld_4,
+       char*           p_4,
+       uint8_t         ui8_5,
+       int8_t          si8_5)
+{
+       BigStruct       retVal  = {
+               ui8_1 + 1, si8_1 + 1, ui16_1 + 1, si16_1 + 1, ui32_1 + 1, si32_1 + 1,
+                       ui64_1 + 1, si64_1 + 1, f_1 + 1, d_1 + 1, ld_1 + 1, (char*)((intptr_t)p_1 + 1), 
+               ui8_2 + 2, si8_2 + 2, ui16_2 + 2, si16_2 + 2, ui32_2 + 2, si32_2 + 2,
+                       ui64_2 + 2, si64_2 + 2, f_2 + 2, d_2 + 2, ld_2 + 2, (char*)((intptr_t)p_2 + 2), 
+               ui8_3 + 3, si8_3 + 3, ui16_3 + 3, si16_3 + 3, ui32_3 + 3, si32_3 + 3,
+                       ui64_3 + 3, si64_3 + 3, f_3 + 3, d_3 + 3, ld_3 + 3, (char*)((intptr_t)p_3 + 3), 
+               ui8_4 + 4, si8_4 + 4, ui16_4 + 4, si16_4 + 4, ui32_4 + 4, si32_4 + 4,
+                       ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (char*)((intptr_t)p_4 + 4), 
+               ui8_5 + 5, si8_5 + 5};
+
+       printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd: "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+              ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, (unsigned long)p_1,
+               ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, (unsigned long)p_2,
+               ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, (unsigned long)p_3,
+               ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, (unsigned long)p_4, ui8_5, si8_5,
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+
+       return  retVal;
+}
+
+static void
+cls_large_fn(ffi_cif* cif __UNUSED__, void* resp, void** args, void* userdata __UNUSED__)
+{
+       uint8_t         ui8_1   = *(uint8_t*)args[0];
+       int8_t          si8_1   = *(int8_t*)args[1];
+       uint16_t        ui16_1  = *(uint16_t*)args[2];
+       int16_t         si16_1  = *(int16_t*)args[3];
+       uint32_t        ui32_1  = *(uint32_t*)args[4];
+       int32_t         si32_1  = *(int32_t*)args[5];
+       uint64_t        ui64_1  = *(uint64_t*)args[6];
+       int64_t         si64_1  = *(int64_t*)args[7];
+       float           f_1             = *(float*)args[8];
+       double          d_1             = *(double*)args[9];
+       long double     ld_1    = *(long double*)args[10];
+       char*           p_1             = *(char**)args[11];
+       uint8_t         ui8_2   = *(uint8_t*)args[12];
+       int8_t          si8_2   = *(int8_t*)args[13];
+       uint16_t        ui16_2  = *(uint16_t*)args[14];
+       int16_t         si16_2  = *(int16_t*)args[15];
+       uint32_t        ui32_2  = *(uint32_t*)args[16];
+       int32_t         si32_2  = *(int32_t*)args[17];
+       uint64_t        ui64_2  = *(uint64_t*)args[18];
+       int64_t         si64_2  = *(int64_t*)args[19];
+       float           f_2             = *(float*)args[20];
+       double          d_2             = *(double*)args[21];
+       long double     ld_2    = *(long double*)args[22];
+       char*           p_2             = *(char**)args[23];
+       uint8_t         ui8_3   = *(uint8_t*)args[24];
+       int8_t          si8_3   = *(int8_t*)args[25];
+       uint16_t        ui16_3  = *(uint16_t*)args[26];
+       int16_t         si16_3  = *(int16_t*)args[27];
+       uint32_t        ui32_3  = *(uint32_t*)args[28];
+       int32_t         si32_3  = *(int32_t*)args[29];
+       uint64_t        ui64_3  = *(uint64_t*)args[30];
+       int64_t         si64_3  = *(int64_t*)args[31];
+       float           f_3             = *(float*)args[32];
+       double          d_3             = *(double*)args[33];
+       long double     ld_3    = *(long double*)args[34];
+       char*           p_3             = *(char**)args[35];
+       uint8_t         ui8_4   = *(uint8_t*)args[36];
+       int8_t          si8_4   = *(int8_t*)args[37];
+       uint16_t        ui16_4  = *(uint16_t*)args[38];
+       int16_t         si16_4  = *(int16_t*)args[39];
+       uint32_t        ui32_4  = *(uint32_t*)args[40];
+       int32_t         si32_4  = *(int32_t*)args[41];
+       uint64_t        ui64_4  = *(uint64_t*)args[42];
+       int64_t         si64_4  = *(int64_t*)args[43];
+       float           f_4             = *(float*)args[44];
+       double          d_4             = *(double*)args[45];
+       long double     ld_4    = *(long double*)args[46];
+       char*           p_4             = *(char**)args[47];
+       uint8_t         ui8_5   = *(uint8_t*)args[48];
+       int8_t          si8_5   = *(int8_t*)args[49];
+
+       *(BigStruct*)resp = test_large_fn(
+               ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1,
+               ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2,
+               ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3,
+               ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, p_4,
+               ui8_5, si8_5);
+}
+
+int
+main(int argc __UNUSED__, const char** argv __UNUSED__)
+{
+        void *code;
+       ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
+
+       ffi_cif         cif;
+       ffi_type*       argTypes[51];
+       void*           argValues[51];
+
+       ffi_type        ret_struct_type;
+       ffi_type*       st_fields[51];
+       BigStruct       retVal;
+
+       memset (&retVal, 0, sizeof(retVal));
+
+       ret_struct_type.size = 0;
+       ret_struct_type.alignment = 0;
+       ret_struct_type.type = FFI_TYPE_STRUCT;
+       ret_struct_type.elements = st_fields;
+
+       st_fields[0]    = st_fields[12] = st_fields[24] = st_fields[36] = st_fields[48] = &ffi_type_uint8;
+       st_fields[1]    = st_fields[13] = st_fields[25] = st_fields[37] = st_fields[49] = &ffi_type_sint8;
+       st_fields[2]    = st_fields[14] = st_fields[26] = st_fields[38] = &ffi_type_uint16;
+       st_fields[3]    = st_fields[15] = st_fields[27] = st_fields[39] = &ffi_type_sint16;
+       st_fields[4]    = st_fields[16] = st_fields[28] = st_fields[40] = &ffi_type_uint32;
+       st_fields[5]    = st_fields[17] = st_fields[29] = st_fields[41] = &ffi_type_sint32;
+       st_fields[6]    = st_fields[18] = st_fields[30] = st_fields[42] = &ffi_type_uint64;
+       st_fields[7]    = st_fields[19] = st_fields[31] = st_fields[43] = &ffi_type_sint64;
+       st_fields[8]    = st_fields[20] = st_fields[32] = st_fields[44] = &ffi_type_float;
+       st_fields[9]    = st_fields[21] = st_fields[33] = st_fields[45] = &ffi_type_double;
+       st_fields[10]   = st_fields[22] = st_fields[34] = st_fields[46] = &ffi_type_longdouble;
+       st_fields[11]   = st_fields[23] = st_fields[35] = st_fields[47] = &ffi_type_pointer;
+
+       st_fields[50] = NULL;
+
+       uint8_t         ui8             = 1;
+       int8_t          si8             = 2;
+       uint16_t        ui16    = 3;
+       int16_t         si16    = 4;
+       uint32_t        ui32    = 5;
+       int32_t         si32    = 6;
+       uint64_t        ui64    = 7;
+       int64_t         si64    = 8;
+       float           f               = 9;
+       double          d               = 10;
+       long double     ld              = 11;
+       char*           p               = (char*)0x12345678;
+
+       argTypes[0]             = argTypes[12]  = argTypes[24]  = argTypes[36]  = argTypes[48]  = &ffi_type_uint8;
+       argValues[0]    = argValues[12] = argValues[24] = argValues[36] = argValues[48] = &ui8;
+       argTypes[1]             = argTypes[13]  = argTypes[25]  = argTypes[37]  = argTypes[49]  = &ffi_type_sint8;
+       argValues[1]    = argValues[13] = argValues[25] = argValues[37] = argValues[49] = &si8;
+       argTypes[2]             = argTypes[14]  = argTypes[26]  = argTypes[38]  = &ffi_type_uint16;
+       argValues[2]    = argValues[14] = argValues[26] = argValues[38] = &ui16;
+       argTypes[3]             = argTypes[15]  = argTypes[27]  = argTypes[39]  = &ffi_type_sint16;
+       argValues[3]    = argValues[15] = argValues[27] = argValues[39] = &si16;
+       argTypes[4]             = argTypes[16]  = argTypes[28]  = argTypes[40]  = &ffi_type_uint32;
+       argValues[4]    = argValues[16] = argValues[28] = argValues[40] = &ui32;
+       argTypes[5]             = argTypes[17]  = argTypes[29]  = argTypes[41]  = &ffi_type_sint32;
+       argValues[5]    = argValues[17] = argValues[29] = argValues[41] = &si32;
+       argTypes[6]             = argTypes[18]  = argTypes[30]  = argTypes[42]  = &ffi_type_uint64;
+       argValues[6]    = argValues[18] = argValues[30] = argValues[42] = &ui64;
+       argTypes[7]             = argTypes[19]  = argTypes[31]  = argTypes[43]  = &ffi_type_sint64;
+       argValues[7]    = argValues[19] = argValues[31] = argValues[43] = &si64;
+       argTypes[8]             = argTypes[20]  = argTypes[32]  = argTypes[44]  = &ffi_type_float;
+       argValues[8]    = argValues[20] = argValues[32] = argValues[44] = &f;
+       argTypes[9]             = argTypes[21]  = argTypes[33]  = argTypes[45]  = &ffi_type_double;
+       argValues[9]    = argValues[21] = argValues[33] = argValues[45] = &d;
+       argTypes[10]    = argTypes[22]  = argTypes[34]  = argTypes[46]  = &ffi_type_longdouble;
+       argValues[10]   = argValues[22] = argValues[34] = argValues[46] = &ld;
+       argTypes[11]    = argTypes[23]  = argTypes[35]  = argTypes[47]  = &ffi_type_pointer;
+       argValues[11]   = argValues[23] = argValues[35] = argValues[47] = &p;
+
+       argTypes[50]    = NULL;
+       argValues[50]   = NULL;
+
+       CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 50, &ret_struct_type, argTypes) == FFI_OK);
+
+       ffi_call(&cif, FFI_FN(test_large_fn), &retVal, argValues);
+       // { dg-output "1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+       printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+       // { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+
+       CHECK(ffi_prep_closure_loc(pcl, &cif, cls_large_fn, NULL, code) == FFI_OK);
+
+       retVal  = ((BigStruct(*)(
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t, float, double, long double, char*,
+               uint8_t, int8_t))(code))(
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
+               ui8, si8);
+       // { dg-output "\n1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+       printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+               "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+               retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
+              retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
+               retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
+              retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
+               retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
+              retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
+               retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
+              retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
+       // { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
+
+    return 0;
+}
diff --git a/.pc/hpux/testsuite/libffi.special/unwindtest.cc b/.pc/hpux/testsuite/libffi.special/unwindtest.cc
new file mode 100644 (file)
index 0000000..7238716
--- /dev/null
@@ -0,0 +1,117 @@
+/* Area:       ffi_closure, unwind info
+   Purpose:    Check if the unwind information is passed correctly.
+   Limitations:        none.
+   PR:         none.
+   Originator: Jeff Sturm <jsturm@one-point.com>  */
+
+/* { dg-do run } */
+#include "ffitestcxx.h"
+#include <stdint.h>
+
+void
+closure_test_fn(ffi_cif* cif __UNUSED__, void* resp __UNUSED__,
+               void** args __UNUSED__, void* userdata __UNUSED__)
+{
+  throw 9;
+}
+
+typedef void (*closure_test_type)();
+
+void closure_test_fn1(ffi_cif* cif __UNUSED__, void* resp,
+                     void** args, void* userdata __UNUSED__)
+ {
+    *(ffi_arg*)resp =
+      (int)*(float *)args[0] +(int)(*(float *)args[1]) +
+      (int)(*(float *)args[2]) + (int)*(float *)args[3] +
+      (int)(*(signed short *)args[4]) + (int)(*(float *)args[5]) +
+      (int)*(float *)args[6] + (int)(*(int *)args[7]) +
+      (int)(*(double*)args[8]) + (int)*(int *)args[9] +
+      (int)(*(int *)args[10]) + (int)(*(float *)args[11]) +
+      (int)*(int *)args[12] + (int)(*(int *)args[13]) +
+      (int)(*(int *)args[14]) + *(int *)args[15] + (int)(intptr_t)userdata;
+
+    printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n",
+          (int)*(float *)args[0], (int)(*(float *)args[1]),
+          (int)(*(float *)args[2]), (int)*(float *)args[3],
+          (int)(*(signed short *)args[4]), (int)(*(float *)args[5]),
+          (int)*(float *)args[6], (int)(*(int *)args[7]),
+          (int)(*(double *)args[8]), (int)*(int *)args[9],
+          (int)(*(int *)args[10]), (int)(*(float *)args[11]),
+          (int)*(int *)args[12], (int)(*(int *)args[13]),
+          (int)(*(int *)args[14]), *(int *)args[15],
+          (int)(intptr_t)userdata, (int)*(ffi_arg*)resp);
+
+    throw (int)*(ffi_arg*)resp;
+}
+
+typedef int (*closure_test_type1)(float, float, float, float, signed short,
+                                 float, float, int, double, int, int, float,
+                                 int, int, int, int);
+
+int main (void)
+{
+  ffi_cif cif;
+  void *code;
+  ffi_closure *pcl = (ffi_closure *)ffi_closure_alloc(sizeof(ffi_closure), &code);
+  ffi_type * cl_arg_types[17];
+
+  {
+    cl_arg_types[1] = NULL;
+
+    CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0,
+                      &ffi_type_void, cl_arg_types) == FFI_OK);
+    CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_fn, NULL, code) == FFI_OK);
+
+    try
+      {
+       (*((closure_test_type)(code)))();
+      } catch (int exception_code)
+      {
+       CHECK(exception_code == 9);
+      }
+
+    printf("part one OK\n");
+    /* { dg-output "part one OK" } */
+    }
+
+    {
+
+      cl_arg_types[0] = &ffi_type_float;
+      cl_arg_types[1] = &ffi_type_float;
+      cl_arg_types[2] = &ffi_type_float;
+      cl_arg_types[3] = &ffi_type_float;
+      cl_arg_types[4] = &ffi_type_sshort;
+      cl_arg_types[5] = &ffi_type_float;
+      cl_arg_types[6] = &ffi_type_float;
+      cl_arg_types[7] = &ffi_type_uint;
+      cl_arg_types[8] = &ffi_type_double;
+      cl_arg_types[9] = &ffi_type_uint;
+      cl_arg_types[10] = &ffi_type_uint;
+      cl_arg_types[11] = &ffi_type_float;
+      cl_arg_types[12] = &ffi_type_uint;
+      cl_arg_types[13] = &ffi_type_uint;
+      cl_arg_types[14] = &ffi_type_uint;
+      cl_arg_types[15] = &ffi_type_uint;
+      cl_arg_types[16] = NULL;
+
+      /* Initialize the cif */
+      CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16,
+                        &ffi_type_sint, cl_arg_types) == FFI_OK);
+
+      CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_fn1,
+                                 (void *) 3 /* userdata */, code)  == FFI_OK);
+      try
+       {
+         (*((closure_test_type1)code))
+           (1.1, 2.2, 3.3, 4.4, 127, 5.5, 6.6, 8, 9, 10, 11, 12.0, 13,
+            19, 21, 1);
+         /* { dg-output "\n1 2 3 4 127 5 6 8 9 10 11 12 13 19 21 1 3: 255" } */
+       } catch (int exception_code)
+       {
+         CHECK(exception_code == 255);
+       }
+      printf("part two OK\n");
+      /* { dg-output "\npart two OK" } */
+    }
+    exit(0);
+}
index ec3c140..52c1c50 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
 #
 # Report bugs to <http://gcc.gnu.org/bugs.html>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.9rc9'
-PACKAGE_STRING='libffi 3.0.9rc9'
+PACKAGE_VERSION='3.0.9rc10'
+PACKAGE_STRING='libffi 3.0.9rc10'
 PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 
 # Factoring default headers for most tests.
@@ -1541,7 +1541,7 @@ if test "$ac_init_help" = "long"; then
   # 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.9rc9 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1612,7 +1612,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
+     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
    esac
   cat <<\_ACEOF
 
@@ -1719,7 +1719,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.9rc9
+libffi configure 3.0.9rc10
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1733,7 +1733,7 @@ cat >config.log <<_ACEOF
 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.9rc9, which was
+It was created by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2715,7 +2715,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.9rc9'
+ VERSION='3.0.9rc10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15302,7 +15302,7 @@ exec 6>&1
 # 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.9rc9, which was
+This file was extended by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15369,7 +15369,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libffi config.status 3.0.9rc9
+libffi config.status 3.0.9rc10
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index b1d1cc5..cae08ad 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
+AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
index c523e94..3881cb1 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
 #
 # Report bugs to <http://gcc.gnu.org/bugs.html>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.9rc9'
-PACKAGE_STRING='libffi 3.0.9rc9'
+PACKAGE_VERSION='3.0.9rc10'
+PACKAGE_STRING='libffi 3.0.9rc10'
 PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 
 # Factoring default headers for most tests.
@@ -1542,7 +1542,7 @@ if test "$ac_init_help" = "long"; then
   # 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.9rc9 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1613,7 +1613,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
+     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,7 +1720,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.9rc9
+libffi configure 3.0.9rc10
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF
 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.9rc9, which was
+It was created by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2716,7 +2716,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.9rc9'
+ VERSION='3.0.9rc10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15316,7 +15316,7 @@ exec 6>&1
 # 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.9rc9, which was
+This file was extended by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15383,7 +15383,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libffi config.status 3.0.9rc9
+libffi config.status 3.0.9rc10
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 18c2d9d..ce4d2d5 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
+AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
index 5227a5d..0ce159e 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
 #
 # Report bugs to <http://gcc.gnu.org/bugs.html>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.9rc9'
-PACKAGE_STRING='libffi 3.0.9rc9'
+PACKAGE_VERSION='3.0.9rc10'
+PACKAGE_STRING='libffi 3.0.9rc10'
 PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 
 # Factoring default headers for most tests.
@@ -1541,7 +1541,7 @@ if test "$ac_init_help" = "long"; then
   # 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.9rc9 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1612,7 +1612,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
+     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
    esac
   cat <<\_ACEOF
 
@@ -1719,7 +1719,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.9rc9
+libffi configure 3.0.9rc10
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1733,7 +1733,7 @@ cat >config.log <<_ACEOF
 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.9rc9, which was
+It was created by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2715,7 +2715,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.9rc9'
+ VERSION='3.0.9rc10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15312,7 +15312,7 @@ exec 6>&1
 # 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.9rc9, which was
+This file was extended by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15379,7 +15379,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libffi config.status 3.0.9rc9
+libffi config.status 3.0.9rc10
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 5ee9c16..82c74d5 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
+AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
index 1441c78..5f6c07f 100644 (file)
@@ -1,3 +1,18 @@
+2009-12-26  Anthony Green  <green@redhat.com>
+
+       * testsuite/libffi.call/huge_struct.c: Don't xfail for avr32*-*-*.
+       * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
+       avr32*-*-*.
+       * testsuite/libffi.call/cls_double_va.c: Ditto.
+
+2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
+       and inttypes.h.
+       * testsuite/libffi.special/unwindtest.cc: Ditto.
+       * testsuite/libffi.call/huge_struct.c: Don't include stdint.h
+       directly.
+
 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
 
        * configure.ac: Add amd64-*-openbsd*.
old mode 100644 (file)
new mode 100755 (executable)
index 2fc3acc..d53e309
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2003-06-17'
+timestamp='2009-11-19'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,23 +18,25 @@ timestamp='2003-06-17'
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -53,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -66,11 +69,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )        # Use stdin as input.
@@ -104,7 +107,7 @@ set_cc_for_build='
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -123,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
        ;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
@@ -136,13 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-## for Red Hat Linux
-if test -f /etc/redhat-release ; then
-    VENDOR=redhat ;
-else
-    VENDOR= ;
-fi
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -165,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
+           sh5el) machine=sh5le-unknown ;;
            *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
        esac
        # The Operating System including object format, if it has switched
@@ -173,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
                eval $set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep __ELF__ >/dev/null
+                       | grep -q __ELF__
                then
                    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
                    # Return netbsd for either.  FIX?
@@ -203,50 +200,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
-       exit 0 ;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    macppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-       echo m88k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mipseb-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sun3:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
+       exit ;;
     *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
+       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       exit ;;
+    *:ekkoBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       exit ;;
+    *:SolidBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       exit ;;
+    macppc:MirBSD:*:*)
+       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    *:MirBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
     alpha:OSF1:*:*)
-       if test $UNAME_RELEASE = "V4.0"; then
+       case $UNAME_RELEASE in
+       *4.0)
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-       fi
+               ;;
+       *5.*)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               ;;
+       esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
        # OSF/1 and Tru64 systems produced since 1995.  I hope that
        # covers most systems running today.  This code pipes the CPU
@@ -284,42 +263,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            "EV7.9 (21364A)")
                UNAME_MACHINE="alphaev79" ;;
        esac
+       # A Pn.n version is a patched version.
        # A Vn.n version is a released version.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit 0 ;;
-    Alpha*:OpenVMS:*:*)
-       echo alpha-hp-vms
-       exit 0 ;;
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit ;;
     Alpha\ *:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # Should we change UNAME_MACHINE based on the output of uname instead
        # of the specific Alpha model?
        echo alpha-pc-interix
-       exit ;;
+       exit ;;
     21064:Windows_NT:50:3)
        echo alpha-dec-winnt3.5
-       exit ;;
+       exit ;;
     Amiga*:UNIX_System_V:4.0:*)
        echo m68k-unknown-sysv4
-       exit 0;;
+       exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-amigaos
-       exit ;;
+       exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-morphos
-       exit ;;
+       exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
-       exit 0 ;;
+       exit ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+       exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
-       exit 0;;
+       exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+       echo arm-unknown-riscos
+       exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
-       exit 0;;
+       exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -327,32 +313,48 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        else
                echo pyramid-pyramid-bsd
        fi
-       exit ;;
+       exit ;;
     NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
-       exit ;;
+       exit ;;
     DRS?6000:unix:4.0:6*)
        echo sparc-icl-nx6
-       exit ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
+       exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
        case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7 && exit 0 ;;
+           sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
+    s390x:SunOS:*:*)
+       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
     sun4H:SunOS:5.*:*)
        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    i86pc:SunOS:5.*:*)
-       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
+       exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+       eval $set_cc_for_build
+       SUN_ARCH="i386"
+       # If there is a compiler, see if it is configured for 64-bit objects.
+       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+       # This test works for both compilers.
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               SUN_ARCH="x86_64"
+           fi
+       fi
+       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     sun4*:SunOS:*:*)
        case "`/usr/bin/arch -k`" in
            Series*|S4*)
@@ -361,10 +363,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit ;;
+       exit ;;
     sun3*:SunOS:*:*)
        echo m68k-sun-sunos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -376,10 +378,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                echo sparc-sun-sunos${UNAME_RELEASE}
                ;;
        esac
-       exit ;;
+       exit ;;
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -390,37 +392,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
         echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
         echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
+    m68k:machten:*:*)
+       echo m68k-apple-machten${UNAME_RELEASE}
+       exit ;;
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
-       exit ;;
+       exit ;;
     RISC*:ULTRIX:*:*)
        echo mips-dec-ultrix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     VAX*:ULTRIX*:*:*)
        echo vax-dec-ultrix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
        echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
@@ -444,32 +449,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          exit (-1);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c \
-         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && exit 0
+       $CC_FOR_BUILD -o $dummy $dummy.c &&
+         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`$dummy $dummyarg` &&
+           { echo "$SYSTEM_NAME"; exit; }
        echo mips-mips-riscos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     Motorola:PowerMAX_OS:*:*)
        echo powerpc-motorola-powermax
-       exit ;;
+       exit ;;
     Motorola:*:4.3:PL8-*)
        echo powerpc-harris-powermax
-       exit ;;
+       exit ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
        echo powerpc-harris-powermax
-       exit ;;
+       exit ;;
     Night_Hawk:Power_UNIX:*:*)
        echo powerpc-harris-powerunix
-       exit ;;
+       exit ;;
     m88k:CX/UX:7*:*)
        echo m88k-harris-cxux7
-       exit ;;
+       exit ;;
     m88k:*:4*:R4*)
        echo m88k-motorola-sysv4
-       exit ;;
+       exit ;;
     m88k:*:3*:R3*)
        echo m88k-motorola-sysv3
-       exit ;;
+       exit ;;
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -485,29 +491,29 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
-       exit ;;
+       exit ;;
     M88*:*:R3*:*)
        # Delta 88k system running SVR3
        echo m88k-motorola-sysv3
-       exit ;;
+       exit ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
        echo m88k-tektronix-sysv3
-       exit ;;
+       exit ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
        echo m68k-tektronix-bsd
-       exit ;;
+       exit ;;
     *:IRIX*:*:*)
        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit ;;
+       exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
        echo i386-ibm-aix
-       exit ;;
+       exit ;;
     ia64:AIX:*:*)
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
@@ -515,7 +521,7 @@ EOF
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit ;;
+       exit ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
                eval $set_cc_for_build
@@ -530,15 +536,19 @@ EOF
                        exit(0);
                        }
 EOF
-               $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-               echo rs6000-ibm-aix3.2.5
+               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               then
+                       echo "$SYSTEM_NAME"
+               else
+                       echo rs6000-ibm-aix3.2.5
+               fi
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
        else
                echo rs6000-ibm-aix3.2
        fi
-       exit ;;
-    *:AIX:*:[45])
+       exit ;;
+    *:AIX:*:[456])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -551,28 +561,28 @@ EOF
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit ;;
+       exit ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
-       exit ;;
+       exit ;;
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
        echo romp-ibm-bsd4.4
-       exit ;;
+       exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
+       exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
-       exit ;;
+       exit ;;
     DPX/2?00:B.O.S.:*:*)
        echo m68k-bull-sysv3
-       exit ;;
+       exit ;;
     9000/[34]??:4.3bsd:1.*:*)
        echo m68k-hp-bsd
-       exit ;;
+       exit ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
        echo m68k-hp-bsd4.4
-       exit ;;
+       exit ;;
     9000/[34678]??:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
@@ -634,9 +644,19 @@ EOF
        esac
        if [ ${HP_ARCH} = "hppa2.0w" ]
        then
-           # avoid double evaluation of $set_cc_for_build
-           test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+           eval $set_cc_for_build
+
+           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+           # generating 64-bit code.  GNU and HP use different nomenclature:
+           #
+           # $ CC_FOR_BUILD=cc ./config.guess
+           # => hppa2.0w-hp-hpux11.23
+           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+           # => hppa64-hp-hpux11.23
+
+           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+               grep -q __LP64__
            then
                HP_ARCH="hppa2.0w"
            else
@@ -644,11 +664,11 @@ EOF
            fi
        fi
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit ;;
+       exit ;;
     ia64:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ia64-hp-hpux${HPUX_REV}
-       exit ;;
+       exit ;;
     3050*:HI-UX:*:*)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
@@ -676,208 +696,248 @@ EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+               { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
-       exit ;;
+       exit ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
        echo hppa1.1-hp-bsd
-       exit ;;
+       exit ;;
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
-       exit ;;
+       exit ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
-       exit ;;
+       exit ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.1-hp-osf
-       exit ;;
+       exit ;;
     hp8??:OSF1:*:*)
        echo hppa1.0-hp-osf
-       exit ;;
+       exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
            echo ${UNAME_MACHINE}-unknown-osf1mk
        else
            echo ${UNAME_MACHINE}-unknown-osf1
        fi
-       exit ;;
+       exit ;;
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
-       exit ;;
+       exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-        exit ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-        exit ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-        exit ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-        exit ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-        exit ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*[A-Z]90:*:*:*)
        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
              -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*T3E:*:*:*)
        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*SV1:*:*:*)
        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     *:UNICOS/mp:*:*)
-       echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-       exit ;;
+       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     sparc*:BSD/OS:*:*)
        echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
-       # Determine whether the default compiler uses glibc.
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #if __GLIBC__ >= 2
-       LIBC=gnu
-       #else
-       LIBC=
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-       exit 0 ;;
+       exit ;;
+    *:FreeBSD:*:*)
+       case ${UNAME_MACHINE} in
+           pc98)
+               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           *)
+               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       esac
+       exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
-       exit ;;
-    i*:MINGW*:*)
+       exit ;;
+    *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
-       exit 0 ;;
+       exit ;;
+    i*:windows32*:*)
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
+       exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
-       exit 0 ;;
-    x86:Interix*:[34]*)
-       echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-       exit 0 ;;
+       exit ;;
+    *:Interix*:*)
+       case ${UNAME_MACHINE} in
+           x86)
+               echo i586-pc-interix${UNAME_RELEASE}
+               exit ;;
+           authenticamd | genuineintel | EM64T)
+               echo x86_64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+           IA64)
+               echo ia64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+       esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
        echo i${UNAME_MACHINE}-pc-mks
-       exit 0 ;;
+       exit ;;
+    8664:Windows_NT:*)
+       echo x86_64-pc-mks
+       exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
        # UNAME_MACHINE based on the output of uname instead of i386?
        echo i586-pc-interix
-       exit ;;
+       exit ;;
     i*:UWIN*:*)
        echo ${UNAME_MACHINE}-pc-uwin
-       exit 0 ;;
+       exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+       echo x86_64-unknown-cygwin
+       exit ;;
     p*:CYGWIN*:*)
        echo powerpcle-unknown-cygwin
-       exit ;;
+       exit ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     *:GNU:*:*)
+       # the GNU system
        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit 0 ;;
+       exit ;;
+    *:GNU/*:*:*)
+       # other systems with GNU libc and userland
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
-       exit 0 ;;
+       exit ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep -q ld.so.1
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit ;;
     arm*:Linux:*:*)
+       eval $set_cc_for_build
+       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_EABI__
+       then
+           echo ${UNAME_MACHINE}-unknown-linux-gnu
+       else
+           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+       fi
+       exit ;;
+    avr32*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     cris:Linux:*:*)
        echo cris-axis-linux-gnu
-       exit 0 ;;
-    ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
-       exit 0 ;;
-    m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    mips:Linux:*:*)
+       exit ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-gnu
+       exit ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-gnu
+       exit ;;
+    i*86:Linux:*:*)
+       LIBC=gnu
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips
-       #undef mipsel
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mipsel
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips
-       #else
-       CPU=
-       #endif
+       #ifdef __dietlibc__
+       LIBC=dietlibc
        #endif
 EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-       ;;
-    mips64:Linux:*:*)
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       exit ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
        #undef CPU
-       #undef mips64
-       #undef mips64el
+       #undef ${UNAME_MACHINE}
+       #undef ${UNAME_MACHINE}el
        #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mips64el
+       CPU=${UNAME_MACHINE}el
        #else
        #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips64
+       CPU=${UNAME_MACHINE}
        #else
        CPU=
        #endif
        #endif
 EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
-    ppc:Linux:*:*)
-       echo powerpc-${VENDOR:-unknown}-linux-gnu
-       exit 0 ;;
-    ppc64:Linux:*:*)
-       echo powerpc64-${VENDOR:-unknown}-linux-gnu
-       exit 0 ;;
-    alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-         EV5)   UNAME_MACHINE=alphaev5 ;;
-         EV56)  UNAME_MACHINE=alphaev56 ;;
-         PCA56) UNAME_MACHINE=alphapca56 ;;
-         PCA57) UNAME_MACHINE=alphapca56 ;;
-         EV6)   UNAME_MACHINE=alphaev6 ;;
-         EV67)  UNAME_MACHINE=alphaev67 ;;
-         EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit 0 ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-gnu
+       exit ;;
+    padre:Linux:*:*)
+       echo sparc-unknown-linux-gnu
+       exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -885,84 +945,40 @@ EOF
          PA8*) echo hppa2.0-unknown-linux-gnu ;;
          *)    echo hppa-unknown-linux-gnu ;;
        esac
-       exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
-       exit 0 ;;
+       exit ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
-       exit ;;
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit ;;
     sh64*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     sh*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
+       exit ;;
+    vax:Linux:*:*)
+       echo ${UNAME_MACHINE}-dec-linux-gnu
+       exit ;;
     x86_64:Linux:*:*)
-       echo x86_64-${VENDOR:-unknown}-linux-gnu
-       exit 0 ;;
-    i*86:Linux:*:*)
-       # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us. cd to the root directory to prevent
-       # problems with other programs or directories called `ld' in the path.
-       # Set LC_ALL=C to ensure ld outputs messages in English.
-       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-                        | sed -ne '/supported targets:/!d
-                                   s/[         ][      ]*/ /g
-                                   s/.*supported targets: *//
-                                   s/ .*//
-                                   p'`
-        case "$ld_supported_targets" in
-         elf32-i386)
-               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-               ;;
-         a.out-i386-linux)
-               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit 0 ;;
-         coff-i386)
-               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit 0 ;;
-         "")
-               # Either a pre-BFD a.out linker (linux-gnuoldld) or
-               # one that does not give us useful --help.
-               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-               exit 0 ;;
-       esac
-       # Determine whether the default compiler is a.out or elf
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #ifdef __ELF__
-       # ifdef __GLIBC__
-       #  if __GLIBC__ >= 2
-       LIBC=gnu
-       #  else
-       LIBC=gnulibc1
-       #  endif
-       # else
-       LIBC=gnulibc1
-       # endif
-       #else
-       #ifdef __INTEL_COMPILER
-       LIBC=gnu
-       #else
-       LIBC=gnuaout
-       #endif
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
-       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-       ;;
+       echo x86_64-unknown-linux-gnu
+       exit ;;
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
        # earlier versions are messed up and put the nodename in both
        # sysname and nodename.
        echo i386-sequent-sysv4
-       exit ;;
+       exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
@@ -970,24 +986,27 @@ EOF
        # I just have to hope.  -- rms.
         # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit ;;
+       exit ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
        echo ${UNAME_MACHINE}-pc-os2-emx
-       exit ;;
+       exit ;;
     i*86:XTS-300:*:STOP)
        echo ${UNAME_MACHINE}-unknown-stop
-       exit ;;
+       exit ;;
     i*86:atheos:*:*)
        echo ${UNAME_MACHINE}-unknown-atheos
-       exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+       exit ;;
+    i*86:syllable:*:*)
+       echo ${UNAME_MACHINE}-pc-syllable
+       exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit ;;
+       exit ;;
     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -995,15 +1014,16 @@ EOF
        else
                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
        fi
-       exit 0 ;;
-    i*86:*:5:[78]*)
+       exit ;;
+    i*86:*:5:[678]*)
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
        echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-       exit ;;
+       exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1021,73 +1041,86 @@ EOF
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
-       exit ;;
+       exit ;;
     pc:*:*:*)
        # Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-       echo i386-pc-msdosdjgpp
-        exit 0 ;;
+        # the processor, so we play safe by assuming i586.
+       # Note: whatever this is, it MUST be the same as what config.sub
+       # prints for the "djgpp" host, or else GDB configury will decide that
+       # this is a cross-build.
+       echo i586-pc-msdosdjgpp
+        exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
-       exit ;;
+       exit ;;
     paragon:*:*:*)
        echo i860-intel-osf1
-       exit ;;
+       exit ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
          echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
        fi
-       exit ;;
+       exit ;;
     mini*:CTIX:SYS*5:*)
        # "miniframe"
        echo m68010-convergent-sysv
-       exit ;;
+       exit ;;
     mc68k:UNIX:SYSTEM5:3.51m)
        echo m68k-convergent-sysv
-       exit ;;
+       exit ;;
     M680?0:D-NIX:5.3:*)
        echo m68k-diab-dnix
-       exit ;;
-    M68*:*:R3V[567]*:*)
-       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+       exit ;;
+    M68*:*:R3V[5678]*:*)
+       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+       OS_REL='.3'
+       test -r /etc/.relid \
+           && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
        echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
-       exit ;;
+       exit ;;
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
        echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     RM*:ReliantUNIX-*:*:*)
        echo mips-sni-sysv4
-       exit ;;
+       exit ;;
     RM*:SINIX-*:*:*)
        echo mips-sni-sysv4
-       exit ;;
+       exit ;;
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1095,68 +1128,94 @@ EOF
        else
                echo ns32k-sni-sysv
        fi
-       exit ;;
+       exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel@ccMail.Census.GOV>
         echo i586-unisys-sysv4
-        exit ;;
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
        echo hppa1.1-stratus-sysv4
-       exit ;;
+       exit ;;
     *:*:*:FTX*)
        # From seanf@swdc.stratus.com.
        echo i860-stratus-sysv4
-       exit 0 ;;
+       exit ;;
+    i*86:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
        echo hppa1.1-stratus-vos
-       exit ;;
+       exit ;;
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
-       exit ;;
+       exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
                echo mips-unknown-sysv${UNAME_RELEASE}
        fi
-        exit ;;
+        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
-       exit ;;
+       exit ;;
     BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
        echo powerpc-apple-beos
-       exit ;;
+       exit ;;
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
-       exit 0 ;;
+       exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SX-5:SUPER-UX:*:*)
        echo sx5-nec-superux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SX-6:SUPER-UX:*:*)
        echo sx6-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
+       exit ;;
+    SX-7:SUPER-UX:*:*)
+       echo sx7-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8:SUPER-UX:*:*)
+       echo sx8-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8R:SUPER-UX:*:*)
+       echo sx8r-nec-superux${UNAME_RELEASE}
+       exit ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Rhapsody:*:*)
        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Darwin:*:*)
-       case `uname -p` in
-           *86) UNAME_PROCESSOR=i686 ;;
-           powerpc) UNAME_PROCESSOR=powerpc ;;
+       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+       case $UNAME_PROCESSOR in
+           i386)
+               eval $set_cc_for_build
+               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                     grep IS_64BIT_ARCH >/dev/null
+                 then
+                     UNAME_PROCESSOR="x86_64"
+                 fi
+               fi ;;
+           unknown) UNAME_PROCESSOR=powerpc ;;
        esac
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
        if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1164,22 +1223,25 @@ EOF
                UNAME_MACHINE=pc
        fi
        echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
-       exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+       exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+       echo nse-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
-       exit ;;
+       exit ;;
     BS2000:POSIX*:*:*)
        echo bs2000-siemens-sysv
-       exit ;;
+       exit ;;
     DS/*:UNIX_System_V:*:*)
        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
@@ -1190,28 +1252,50 @@ EOF
            UNAME_MACHINE="$cputype"
        fi
        echo ${UNAME_MACHINE}-unknown-plan9
-       exit ;;
+       exit ;;
     *:TOPS-10:*:*)
        echo pdp10-unknown-tops10
-       exit ;;
+       exit ;;
     *:TENEX:*:*)
        echo pdp10-unknown-tenex
-       exit ;;
+       exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
        echo pdp10-dec-tops20
-       exit ;;
+       exit ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
        echo pdp10-xkl-tops20
-       exit ;;
+       exit ;;
     *:TOPS-20:*:*)
        echo pdp10-unknown-tops20
-       exit ;;
+       exit ;;
     *:ITS:*:*)
        echo pdp10-unknown-its
-       exit ;;
+       exit ;;
     SEI:*:*:SEIUX)
         echo mips-sei-seiux${UNAME_RELEASE}
-       exit 0 ;;
+       exit ;;
+    *:DragonFly:*:*)
+       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
+    *:*VMS:*:*)
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       case "${UNAME_MACHINE}" in
+           A*) echo alpha-dec-vms ; exit ;;
+           I*) echo ia64-dec-vms ; exit ;;
+           V*) echo vax-dec-vms ; exit ;;
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit ;;
+    i*86:skyos:*:*)
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       exit ;;
+    i*86:rdos:*:*)
+       echo ${UNAME_MACHINE}-pc-rdos
+       exit ;;
+    i*86:AROS:*:*)
+       echo ${UNAME_MACHINE}-pc-aros
+       exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1243,7 +1327,7 @@ main ()
 #endif
 
 #if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
+  printf ("arm-acorn-riscix\n"); exit (0);
 #endif
 
 #if defined (hp300) && !defined (hpux)
@@ -1332,11 +1416,12 @@ main ()
 }
 EOF
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+       { echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
 
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 
 # Convex versions that predate uname can use getsysinfo(1)
 
@@ -1345,22 +1430,22 @@ then
     case `getsysinfo -f cpu_type` in
     c1*)
        echo c1-convex-bsd
-       exit ;;
+       exit ;;
     c2*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-       exit ;;
+       exit ;;
     c34*)
        echo c34-convex-bsd
-       exit ;;
+       exit ;;
     c38*)
        echo c38-convex-bsd
-       exit ;;
+       exit ;;
     c4*)
        echo c4-convex-bsd
-       exit ;;
+       exit ;;
     esac
 fi
 
@@ -1371,7 +1456,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-    ftp://ftp.gnu.org/pub/gnu/config/
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
old mode 100644 (file)
new mode 100755 (executable)
index 6b2ff9f..17c9145
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2003-06-18'
+timestamp='2009-11-07'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,22 +22,26 @@ timestamp='2003-06-18'
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -70,8 +75,8 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -83,11 +88,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )        # Use stdin as input.
@@ -99,7 +104,7 @@ while test $# -gt 0 ; do
     *local*)
        # First pass through any local machine types.
        echo $1
-       exit 0;;
+       exit ;;
 
     * )
        break ;;
@@ -118,7 +123,10 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -144,10 +152,13 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis)
+       -apple | -axis | -knuth | -cray | -microblaze)
                os=
                basic_machine=$1
                ;;
+        -bluegene*)
+               os=-cnk
+               ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
                basic_machine=$1
@@ -169,6 +180,10 @@ case $os in
        -hiux*)
                os=-hiuxwe2
                ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -sco5)
                os=-sco3.2v5
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -185,6 +200,10 @@ case $os in
                # Don't forget version if it is 3.2v4 or newer.
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -sco*)
                os=-sco3.2v2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -228,54 +247,71 @@ case $basic_machine in
        | a29k \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | am33_2.0 \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
-       | fr30 | frv \
+       | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | i370 | i860 | i960 | ia64 \
-       | ip2k \
-       | m32r | m68000 | m68k | m88k | mcore \
+       | ip2k | iq2000 \
+       | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
-       | mips64vr | mips64vrel \
+       | mips64octeon | mips64octeonel \
        | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
        | mips64vr4100 | mips64vr4100el \
        | mips64vr4300 | mips64vr4300el \
        | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
        | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
+       | moxie \
+       | mt \
        | msp430 \
+       | nios | nios2 \
        | ns16k | ns32k \
-       | openrisc | or32 \
+       | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
        | pyramid \
-       | s390 | s390x \
-       | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | rx \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
-       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
-       | strongarm \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu | strongarm \
        | tahoe | thumb | tic4x | tic80 | tron \
+       | ubicom32 \
        | v850 | v850e \
        | we32k \
-       | x86 | xscale | xstormy16 | xtensa \
-       | z8k)
+       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12)
+       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
                # Motorola 68HC11/12.
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
                ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
 
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
@@ -295,55 +331,68 @@ case $basic_machine in
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* \
-       | bs2000-* \
+       | avr-* | avr32-* \
+       | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-       | clipper-* | cydra-* \
+       | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
-       | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | i*86-* | i860-* | i960-* | ia64-* \
-       | ip2k-* \
-       | m32r-* \
+       | ip2k-* | iq2000-* \
+       | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | mcore-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
-       | mips64vr-* | mips64vrel-* \
+       | mips64octeon-* | mips64octeonel-* \
        | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
        | mips64vr4100-* | mips64vr4100el-* \
        | mips64vr4300-* | mips64vr4300el-* \
        | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
        | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
        | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
        | msp430-* \
-       | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+       | nios-* | nios2-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
        | pyramid-* \
-       | romp-* | rs6000-* \
-       | s390-* | s390x-* \
-       | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+       | romp-* | rs6000-* | rx-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
        | tron-* \
+       | ubicom32-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-       | xtensa-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | xstormy16-* | xtensa*-* \
        | ymp-* \
-       | z8k-*)
+       | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
@@ -361,6 +410,9 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
        adobe68k)
                basic_machine=m68010-adobe
                os=-scout
@@ -378,6 +430,9 @@ case $basic_machine in
        amd64)
                basic_machine=x86_64-pc
                ;;
+       amd64-*)
+               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        amdahl)
                basic_machine=580-amdahl
                os=-sysv
@@ -401,6 +456,10 @@ case $basic_machine in
                basic_machine=m68k-apollo
                os=-bsd
                ;;
+       aros)
+               basic_machine=i386-pc
+               os=-aros
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -409,10 +468,26 @@ case $basic_machine in
                basic_machine=ns32k-sequent
                os=-dynix
                ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=-cnk
+               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
                ;;
+        cegcc)
+               basic_machine=arm-unknown
+               os=-cegcc
+               ;;
        convex-c1)
                basic_machine=c1-convex
                os=-bsd
@@ -437,12 +512,27 @@ case $basic_machine in
                basic_machine=j90-cray
                os=-unicos
                ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
        crds | unos)
                basic_machine=m68k-crds
                ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
        cris | cris-* | etrax*)
                basic_machine=cris-axis
                ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
        da30 | da30-*)
                basic_machine=m68k-da30
                ;;
@@ -465,6 +555,14 @@ case $basic_machine in
                basic_machine=m88k-motorola
                os=-sysv3
                ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
                os=-bosx
@@ -615,6 +713,14 @@ case $basic_machine in
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
        m88k-omron*)
                basic_machine=m88k-omron
                ;;
@@ -626,10 +732,17 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
+        microblaze)
+               basic_machine=microblaze-xilinx
+               ;;
        mingw32)
                basic_machine=i386-pc
                os=-mingw32
                ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
@@ -643,10 +756,6 @@ case $basic_machine in
        mips3*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
                ;;
-       mmix*)
-               basic_machine=mmix-knuth
-               os=-mmixware
-               ;;
        monitor)
                basic_machine=m68k-rom68k
                os=-coff
@@ -659,6 +768,9 @@ case $basic_machine in
                basic_machine=i386-pc
                os=-msdos
                ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
@@ -727,10 +839,6 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
-       nv1)
-               basic_machine=nv1-cray
-               os=-unicosmp
-               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -738,9 +846,12 @@ case $basic_machine in
                basic_machine=hppa1.1-oki
                os=-proelf
                ;;
-       or32 | or32-*)
+       openrisc | openrisc-*)
                basic_machine=or32-unknown
-               os=-coff
+               ;;
+       os400)
+               basic_machine=powerpc-ibm
+               os=-os400
                ;;
        OSE68000 | ose68000)
                basic_machine=m68000-ericsson
@@ -758,6 +869,14 @@ case $basic_machine in
                basic_machine=i860-intel
                os=-osf
                ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
        pbd)
                basic_machine=sparc-tti
                ;;
@@ -767,6 +886,12 @@ case $basic_machine in
        pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        pentium | p5 | k5 | k6 | nexgen | viac3)
                basic_machine=i586-pc
                ;;
@@ -823,6 +948,10 @@ case $basic_machine in
                basic_machine=i586-unknown
                os=-pw32
                ;;
+       rdos)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
        rom68k)
                basic_machine=m68k-rom68k
                os=-coff
@@ -833,6 +962,12 @@ case $basic_machine in
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
        sa29200)
                basic_machine=a29k-amd
                os=-udi
@@ -843,6 +978,10 @@ case $basic_machine in
        sb1el)
                basic_machine=mipsisa64sb1el-unknown
                ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
+               ;;
        sei)
                basic_machine=mips-sei
                os=-seiux
@@ -854,6 +993,9 @@ case $basic_machine in
                basic_machine=sh-hitachi
                os=-hms
                ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
        sh64)
                basic_machine=sh64-unknown
                ;;
@@ -943,6 +1085,10 @@ case $basic_machine in
                basic_machine=tic6x-unknown
                os=-coff
                ;;
+       tile*)
+               basic_machine=tile-unknown
+               os=-linux-gnu
+               ;;
        tx39)
                basic_machine=mipstx39-unknown
                ;;
@@ -956,6 +1102,10 @@ case $basic_machine in
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
+               ;;
        udi29k)
                basic_machine=a29k-amd
                os=-udi
@@ -999,6 +1149,10 @@ case $basic_machine in
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
@@ -1010,6 +1164,10 @@ case $basic_machine in
                basic_machine=z8k-unknown
                os=-sim
                ;;
+       z80-*-coff)
+               basic_machine=z80-unknown
+               os=-sim
+               ;;
        none)
                basic_machine=none-none
                os=-none
@@ -1029,6 +1187,9 @@ case $basic_machine in
        romp)
                basic_machine=romp-ibm
                ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
        rs6000)
                basic_machine=rs6000-ibm
                ;;
@@ -1045,13 +1206,10 @@ case $basic_machine in
        we32k)
                basic_machine=we32k-att
                ;;
-       sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
                basic_machine=sh-unknown
                ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b)
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
                basic_machine=sparc-sun
                ;;
        cydra)
@@ -1118,25 +1276,30 @@ case $os in
        # Each alternative MUST END IN A *, to match a version number.
        # -sysv* is not here because it comes later, after sysvr4.
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+             | -kopensolaris* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* \
+             | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+             | -openbsd* | -solidbsd* \
+             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* \
+             | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1154,12 +1317,15 @@ case $os in
                os=`echo $os | sed -e 's|nto|nto-qnx|'`
                ;;
        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
        -mac*)
                os=`echo $os | sed -e 's|mac|macos|'`
                ;;
+       -linux-dietlibc)
+               os=-linux-dietlibc
+               ;;
        -linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
@@ -1172,6 +1338,9 @@ case $os in
        -opened*)
                os=-openedition
                ;;
+        -os400*)
+               os=-os400
+               ;;
        -wince*)
                os=-wince
                ;;
@@ -1193,6 +1362,9 @@ case $os in
        -atheos*)
                os=-atheos
                ;;
+       -syllable*)
+               os=-syllable
+               ;;
        -386bsd)
                os=-bsd
                ;;
@@ -1215,6 +1387,9 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
+        -tpf*)
+               os=-tpf
+               ;;
        -triton*)
                os=-sysv3
                ;;
@@ -1251,6 +1426,12 @@ case $os in
        -kaos*)
                os=-kaos
                ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
+       -dicos*)
+               os=-dicos
+               ;;
        -none)
                ;;
        *)
@@ -1273,6 +1454,12 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        score-*)
+               os=-elf
+               ;;
+        spu-*)
+               os=-elf
+               ;;
        *-acorn)
                os=-riscix1.2
                ;;
@@ -1282,8 +1469,8 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-       c4x-* | tic4x-*)
-               os=-coff
+        c4x-* | tic4x-*)
+               os=-coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
@@ -1310,6 +1497,9 @@ case $basic_machine in
        m68*-cisco)
                os=-aout
                ;;
+        mep-*)
+               os=-elf
+               ;;
        mips*-cisco)
                os=-elf
                ;;
@@ -1328,9 +1518,15 @@ case $basic_machine in
        *-be)
                os=-beos
                ;;
+       *-haiku)
+               os=-haiku
+               ;;
        *-ibm)
                os=-aix
                ;;
+       *-knuth)
+               os=-mmixware
+               ;;
        *-wec)
                os=-proelf
                ;;
@@ -1433,7 +1629,7 @@ case $basic_machine in
                        -sunos*)
                                vendor=sun
                                ;;
-                       -aix*)
+                       -cnk*|-aix*)
                                vendor=ibm
                                ;;
                        -beos*)
@@ -1463,9 +1659,15 @@ case $basic_machine in
                        -mvs* | -opened*)
                                vendor=ibm
                                ;;
+                       -os400*)
+                               vendor=ibm
+                               ;;
                        -ptx*)
                                vendor=sequent
                                ;;
+                       -tpf*)
+                               vendor=ibm
+                               ;;
                        -vxsim* | -vxworks* | -windiss*)
                                vendor=wrs
                                ;;
@@ -1490,7 +1692,7 @@ case $basic_machine in
 esac
 
 echo $basic_machine$os
-exit 0
+exit
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
index f40083b..cd77be0 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
 #
 # Report bugs to <http://gcc.gnu.org/bugs.html>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.0.9rc9'
-PACKAGE_STRING='libffi 3.0.9rc9'
+PACKAGE_VERSION='3.0.9rc10'
+PACKAGE_STRING='libffi 3.0.9rc10'
 PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 
 # Factoring default headers for most tests.
@@ -1542,7 +1542,7 @@ if test "$ac_init_help" = "long"; then
   # 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.9rc9 to adapt to many kinds of systems.
+\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1613,7 +1613,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
+     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,7 +1720,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.0.9rc9
+libffi configure 3.0.9rc10
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF
 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.9rc9, which was
+It was created by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2716,7 +2716,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.0.9rc9'
+ VERSION='3.0.9rc10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15313,7 +15313,7 @@ exec 6>&1
 # 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.9rc9, which was
+This file was extended by libffi $as_me 3.0.9rc10, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15380,7 +15380,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libffi config.status 3.0.9rc9
+libffi config.status 3.0.9rc10
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index daad442..957904a 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
 
 AC_PREREQ(2.63)
 
-AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
+AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_SYSTEM
index dad3519..15e51ab 100644 (file)
@@ -1,4 +1,4 @@
 @set UPDATED 26 December 2009
 @set UPDATED-MONTH December 2009
-@set EDITION 3.0.9rc8
-@set VERSION 3.0.9rc8
+@set EDITION 3.0.9rc9
+@set VERSION 3.0.9rc9
index dad3519..15e51ab 100644 (file)
@@ -1,4 +1,4 @@
 @set UPDATED 26 December 2009
 @set UPDATED-MONTH December 2009
-@set EDITION 3.0.9rc8
-@set VERSION 3.0.9rc8
+@set EDITION 3.0.9rc9
+@set VERSION 3.0.9rc9
diff --git a/patches/avr32-test b/patches/avr32-test
new file mode 100644 (file)
index 0000000..4e95140
--- /dev/null
@@ -0,0 +1,58 @@
+Index: libffi/ChangeLog.libffi
+===================================================================
+--- libffi.orig/ChangeLog.libffi
++++ libffi/ChangeLog.libffi
+@@ -1,3 +1,10 @@
++2009-12-26  Anthony Green  <green@redhat.com>
++
++      * testsuite/libffi.call/huge_struct.c: Don't xfail for avr32*-*-*.
++      * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
++      avr32*-*-*.
++      * testsuite/libffi.call/cls_double_va.c: Ditto.
++
+ 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
+       * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
+Index: libffi/testsuite/libffi.call/cls_double_va.c
+===================================================================
+--- libffi.orig/testsuite/libffi.call/cls_double_va.c
++++ libffi/testsuite/libffi.call/cls_double_va.c
+@@ -4,7 +4,7 @@
+    PR:                        none.
+    Originator:        Blake Chaffin 6/6/2007   */
+-/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
++/* { dg-do run { xfail avr32*-*-* strongarm*-*-* xscale*-*-* } } */
+ #include "ffitest.h"
+ static void
+Index: libffi/testsuite/libffi.call/cls_longdouble_va.c
+===================================================================
+--- libffi.orig/testsuite/libffi.call/cls_longdouble_va.c
++++ libffi/testsuite/libffi.call/cls_longdouble_va.c
+@@ -4,7 +4,7 @@
+    PR:                        none.
+    Originator:        Blake Chaffin 6/6/2007   */
+-/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
++/* { dg-do run { xfail avr32*-*-* strongarm*-*-* xscale*-*-* } } */
+ /* { dg-output "" { xfail x86_64-*-mingw* } } */
+ #include "ffitest.h"
+Index: libffi/testsuite/libffi.call/huge_struct.c
+===================================================================
+--- libffi.orig/testsuite/libffi.call/huge_struct.c
++++ libffi/testsuite/libffi.call/huge_struct.c
+@@ -5,10 +5,10 @@
+       Originator:             Blake Chaffin   6/18/2007
+ */
+-/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
++/* { dg-excess-errors "" { target x86_64-*-mingw* x86_64-*-cygwin* } } */
+ /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+ /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */
+-/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
++/* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */
+ #include "ffitest.h"
diff --git a/patches/hpux b/patches/hpux
new file mode 100644 (file)
index 0000000..1888cdc
--- /dev/null
@@ -0,0 +1,74 @@
+Index: libffi/ChangeLog.libffi
+===================================================================
+--- libffi.orig/ChangeLog.libffi
++++ libffi/ChangeLog.libffi
+@@ -1,5 +1,13 @@
+ 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
++      * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
++      and inttypes.h.
++      * testsuite/libffi.special/unwindtest.cc: Ditto.
++      * testsuite/libffi.call/huge_struct.c: Don't include stdint.h
++      directly.
++
++2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
++
+       * configure.ac: Add amd64-*-openbsd*.
+       * configure: Rebuilt.
+       * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
+Index: libffi/testsuite/libffi.call/ffitest.h
+===================================================================
+--- libffi.orig/testsuite/libffi.call/ffitest.h
++++ libffi/testsuite/libffi.call/ffitest.h
+@@ -2,11 +2,17 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <stdint.h>
+-#include <inttypes.h>
+ #include <ffi.h>
+ #include "fficonfig.h"
++#if defined HAVE_STDINT_H
++#include <stdint.h>
++#endif
++
++#if defined HAVE_INTTYPES_H
++#include <inttypes.h>
++#endif
++
+ #define MAX_ARGS 256
+ #define CHECK(x) !(x) ? abort() : 0
+Index: libffi/testsuite/libffi.call/huge_struct.c
+===================================================================
+--- libffi.orig/testsuite/libffi.call/huge_struct.c
++++ libffi/testsuite/libffi.call/huge_struct.c
+@@ -10,8 +10,6 @@
+ /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */
+ /* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+-#include <stdint.h>
+-
+ #include "ffitest.h"
+ typedef       struct BigStruct{
+Index: libffi/testsuite/libffi.special/unwindtest.cc
+===================================================================
+--- libffi.orig/testsuite/libffi.special/unwindtest.cc
++++ libffi/testsuite/libffi.special/unwindtest.cc
+@@ -6,7 +6,14 @@
+ /* { dg-do run } */
+ #include "ffitestcxx.h"
++
++#if defined HAVE_STDINT_H
+ #include <stdint.h>
++#endif
++
++#if defined HAVE_INTTYPES_H
++#include <inttypes.h>
++#endif
+ void
+ closure_test_fn(ffi_cif* cif __UNUSED__, void* resp __UNUSED__,
index 33f5dd6..ced1339 100644 (file)
@@ -7,3 +7,5 @@ powerpc-fixes
 fix-huge_struct-on-solaris
 xpass
 amd64-openbsd
+hpux
+avr32-test
index 8c84362..521861f 100644 (file)
@@ -9582,13 +9582,14 @@ Index: libffi/config.guess
 ===================================================================
 --- /dev/null
 +++ libffi/config.guess
-@@ -0,0 +1,1411 @@
+@@ -0,0 +1,1498 @@
 +#! /bin/sh
 +# Attempt to guess a canonical system name.
 +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++#   Free Software Foundation, Inc.
 +
-+timestamp='2003-06-17'
++timestamp='2009-11-19'
 +
 +# This file is free software; you can redistribute it and/or modify it
 +# under the terms of the GNU General Public License as published by
@@ -9602,23 +9603,25 @@ Index: libffi/config.guess
 +#
 +# You should have received a copy of the GNU General Public License
 +# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
 +#
 +# As a special exception to the GNU General Public License, if you
 +# distribute this file as part of a program that contains a
 +# configuration script generated by Autoconf, you may include it under
 +# the same distribution terms that you use for the rest of that program.
 +
-+# Originally written by Per Bothner <per@bothner.com>.
-+# Please send patches to <config-patches@gnu.org>.  Submit a context
-+# diff and a properly formatted ChangeLog entry.
++
++# Originally written by Per Bothner.  Please send patches (context
++# diff format) to <config-patches@gnu.org> and include a ChangeLog
++# entry.
 +#
 +# This script attempts to guess a canonical system name similar to
 +# config.sub.  If it succeeds, it prints the system name on stdout, and
 +# exits with 0.  Otherwise, it exits with 1.
 +#
-+# The plan is that this can be called by configure scripts if you
-+# don't specify an explicit build system type.
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 +
 +me=`echo "$0" | sed -e 's,.*/,,'`
 +
@@ -9638,8 +9641,8 @@ Index: libffi/config.guess
 +GNU config.guess ($timestamp)
 +
 +Originally written by Per Bothner.
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-+Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 +
 +This is free software; see the source for copying conditions.  There is NO
 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -9651,11 +9654,11 @@ Index: libffi/config.guess
 +while test $# -gt 0 ; do
 +  case $1 in
 +    --time-stamp | --time* | -t )
-+       echo "$timestamp" ; exit ;;
++       echo "$timestamp" ; exit ;;
 +    --version | -v )
-+       echo "$version" ; exit ;;
++       echo "$version" ; exit ;;
 +    --help | --h* | -h )
-+       echo "$usage"; exit ;;
++       echo "$usage"; exit ;;
 +    -- )     # Stop option processing
 +       shift; break ;;
 +    - )       # Use stdin as input.
@@ -9689,7 +9692,7 @@ Index: libffi/config.guess
 +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
 +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 +: ${TMPDIR=/tmp} ;
-+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
 + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
 + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
 + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -9708,7 +9711,7 @@ Index: libffi/config.guess
 +      ;;
 + ,,*)   CC_FOR_BUILD=$CC ;;
 + ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-+esac ;'
++esac ; set_cc_for_build= ;'
 +
 +# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 +# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -9721,13 +9724,6 @@ Index: libffi/config.guess
 +UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 +
-+## for Red Hat Linux
-+if test -f /etc/redhat-release ; then
-+    VENDOR=redhat ;
-+else
-+    VENDOR= ;
-+fi
-+
 +# Note: order is significant - the case branches are not exclusive.
 +
 +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -9750,6 +9746,7 @@ Index: libffi/config.guess
 +          arm*) machine=arm-unknown ;;
 +          sh3el) machine=shl-unknown ;;
 +          sh3eb) machine=sh-unknown ;;
++          sh5el) machine=sh5le-unknown ;;
 +          *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 +      esac
 +      # The Operating System including object format, if it has switched
@@ -9758,7 +9755,7 @@ Index: libffi/config.guess
 +          arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 +              eval $set_cc_for_build
 +              if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+                      | grep __ELF__ >/dev/null
++                      | grep -q __ELF__
 +              then
 +                  # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 +                  # Return netbsd for either.  FIX?
@@ -9788,50 +9785,32 @@ Index: libffi/config.guess
 +      # contains redundant information, the shorter form:
 +      # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 +      echo "${machine}-${os}${release}"
-+      exit 0 ;;
-+    amiga:OpenBSD:*:*)
-+      echo m68k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    arc:OpenBSD:*:*)
-+      echo mipsel-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    hp300:OpenBSD:*:*)
-+      echo m68k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    mac68k:OpenBSD:*:*)
-+      echo m68k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    macppc:OpenBSD:*:*)
-+      echo powerpc-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    mvme68k:OpenBSD:*:*)
-+      echo m68k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    mvme88k:OpenBSD:*:*)
-+      echo m88k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    mvmeppc:OpenBSD:*:*)
-+      echo powerpc-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    pmax:OpenBSD:*:*)
-+      echo mipsel-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    sgi:OpenBSD:*:*)
-+      echo mipseb-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    sun3:OpenBSD:*:*)
-+      echo m68k-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
-+    wgrisc:OpenBSD:*:*)
-+      echo mipsel-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
++      exit ;;
 +    *:OpenBSD:*:*)
-+      echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-+      exit 0 ;;
++      UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++      echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++      exit ;;
++    *:ekkoBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
++      exit ;;
++    *:SolidBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++      exit ;;
++    macppc:MirBSD:*:*)
++      echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++      exit ;;
++    *:MirBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
++      exit ;;
 +    alpha:OSF1:*:*)
-+      if test $UNAME_RELEASE = "V4.0"; then
++      case $UNAME_RELEASE in
++      *4.0)
 +              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-+      fi
++              ;;
++      *5.*)
++              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++              ;;
++      esac
 +      # According to Compaq, /usr/sbin/psrinfo has been available on
 +      # OSF/1 and Tru64 systems produced since 1995.  I hope that
 +      # covers most systems running today.  This code pipes the CPU
@@ -9869,42 +9848,49 @@ Index: libffi/config.guess
 +          "EV7.9 (21364A)")
 +              UNAME_MACHINE="alphaev79" ;;
 +      esac
++      # A Pn.n version is a patched version.
 +      # A Vn.n version is a released version.
 +      # A Tn.n version is a released field test version.
 +      # A Xn.n version is an unreleased experimental baselevel.
 +      # 1.2 uses "1.2" for uname -r.
-+      echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-+      exit 0 ;;
-+    Alpha*:OpenVMS:*:*)
-+      echo alpha-hp-vms
-+      exit 0 ;;
++      echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++      exit ;;
 +    Alpha\ *:Windows_NT*:*)
 +      # How do we know it's Interix rather than the generic POSIX subsystem?
 +      # Should we change UNAME_MACHINE based on the output of uname instead
 +      # of the specific Alpha model?
 +      echo alpha-pc-interix
-+      exit ;;
++      exit ;;
 +    21064:Windows_NT:50:3)
 +      echo alpha-dec-winnt3.5
-+      exit ;;
++      exit ;;
 +    Amiga*:UNIX_System_V:4.0:*)
 +      echo m68k-unknown-sysv4
-+      exit 0;;
++      exit ;;
 +    *:[Aa]miga[Oo][Ss]:*:*)
 +      echo ${UNAME_MACHINE}-unknown-amigaos
-+      exit ;;
++      exit ;;
 +    *:[Mm]orph[Oo][Ss]:*:*)
 +      echo ${UNAME_MACHINE}-unknown-morphos
-+      exit ;;
++      exit ;;
 +    *:OS/390:*:*)
 +      echo i370-ibm-openedition
-+      exit 0 ;;
++      exit ;;
++    *:z/VM:*:*)
++      echo s390-ibm-zvmoe
++      exit ;;
++    *:OS400:*:*)
++        echo powerpc-ibm-os400
++      exit ;;
 +    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 +      echo arm-acorn-riscix${UNAME_RELEASE}
-+      exit 0;;
++      exit ;;
++    arm:riscos:*:*|arm:RISCOS:*:*)
++      echo arm-unknown-riscos
++      exit ;;
 +    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
 +      echo hppa1.1-hitachi-hiuxmpp
-+      exit 0;;
++      exit ;;
 +    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 +      # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
 +      if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -9912,32 +9898,48 @@ Index: libffi/config.guess
 +      else
 +              echo pyramid-pyramid-bsd
 +      fi
-+      exit ;;
++      exit ;;
 +    NILE*:*:*:dcosx)
 +      echo pyramid-pyramid-svr4
-+      exit ;;
++      exit ;;
 +    DRS?6000:unix:4.0:6*)
 +      echo sparc-icl-nx6
-+      exit ;;
-+    DRS?6000:UNIX_SV:4.2*:7*)
++      exit ;;
++    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
 +      case `/usr/bin/uname -p` in
-+          sparc) echo sparc-icl-nx7 && exit 0 ;;
++          sparc) echo sparc-icl-nx7; exit ;;
 +      esac ;;
++    s390x:SunOS:*:*)
++      echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
 +    sun4H:SunOS:5.*:*)
 +      echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit ;;
++      exit ;;
 +    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 +      echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit 0 ;;
-+    i86pc:SunOS:5.*:*)
-+      echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit 0 ;;
++      exit ;;
++    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++      eval $set_cc_for_build
++      SUN_ARCH="i386"
++      # If there is a compiler, see if it is configured for 64-bit objects.
++      # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++      # This test works for both compilers.
++      if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++          if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++              (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++              grep IS_64BIT_ARCH >/dev/null
++          then
++              SUN_ARCH="x86_64"
++          fi
++      fi
++      echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
 +    sun4*:SunOS:6*:*)
 +      # According to config.sub, this is the proper way to canonicalize
 +      # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 +      # it's likely to be more like Solaris than SunOS4.
 +      echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit ;;
++      exit ;;
 +    sun4*:SunOS:*:*)
 +      case "`/usr/bin/arch -k`" in
 +          Series*|S4*)
@@ -9946,10 +9948,10 @@ Index: libffi/config.guess
 +      esac
 +      # Japanese Language versions have a version number like `4.1.3-JL'.
 +      echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-+      exit ;;
++      exit ;;
 +    sun3*:SunOS:*:*)
 +      echo m68k-sun-sunos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    sun*:*:4.2BSD:*)
 +      UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 +      test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -9961,10 +9963,10 @@ Index: libffi/config.guess
 +              echo sparc-sun-sunos${UNAME_RELEASE}
 +              ;;
 +      esac
-+      exit ;;
++      exit ;;
 +    aushp:SunOS:*:*)
 +      echo sparc-auspex-sunos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    # The situation for MiNT is a little confusing.  The machine name
 +    # can be virtually everything (everything which is not
 +    # "atarist" or "atariste" at least should have a processor
@@ -9975,37 +9977,40 @@ Index: libffi/config.guess
 +    # be no problem.
 +    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
 +        echo m68k-atari-mint${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 +      echo m68k-atari-mint${UNAME_RELEASE}
-+        exit ;;
++        exit ;;
 +    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
 +        echo m68k-atari-mint${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
 +        echo m68k-milan-mint${UNAME_RELEASE}
-+        exit ;;
++        exit ;;
 +    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
 +        echo m68k-hades-mint${UNAME_RELEASE}
-+        exit ;;
++        exit ;;
 +    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
 +        echo m68k-unknown-mint${UNAME_RELEASE}
-+        exit 0 ;;
++        exit ;;
++    m68k:machten:*:*)
++      echo m68k-apple-machten${UNAME_RELEASE}
++      exit ;;
 +    powerpc:machten:*:*)
 +      echo powerpc-apple-machten${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    RISC*:Mach:*:*)
 +      echo mips-dec-mach_bsd4.3
-+      exit ;;
++      exit ;;
 +    RISC*:ULTRIX:*:*)
 +      echo mips-dec-ultrix${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    VAX*:ULTRIX*:*:*)
 +      echo vax-dec-ultrix${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    2020:CLIX:*:* | 2430:CLIX:*:*)
 +      echo clipper-intergraph-clix${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    mips:*:*:UMIPS | mips:*:*:RISCos)
 +      eval $set_cc_for_build
 +      sed 's/^        //' << EOF >$dummy.c
@@ -10029,32 +10034,33 @@ Index: libffi/config.guess
 +        exit (-1);
 +      }
 +EOF
-+      $CC_FOR_BUILD -o $dummy $dummy.c \
-+        && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-+        && exit 0
++      $CC_FOR_BUILD -o $dummy $dummy.c &&
++        dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++        SYSTEM_NAME=`$dummy $dummyarg` &&
++          { echo "$SYSTEM_NAME"; exit; }
 +      echo mips-mips-riscos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    Motorola:PowerMAX_OS:*:*)
 +      echo powerpc-motorola-powermax
-+      exit ;;
++      exit ;;
 +    Motorola:*:4.3:PL8-*)
 +      echo powerpc-harris-powermax
-+      exit ;;
++      exit ;;
 +    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
 +      echo powerpc-harris-powermax
-+      exit ;;
++      exit ;;
 +    Night_Hawk:Power_UNIX:*:*)
 +      echo powerpc-harris-powerunix
-+      exit ;;
++      exit ;;
 +    m88k:CX/UX:7*:*)
 +      echo m88k-harris-cxux7
-+      exit ;;
++      exit ;;
 +    m88k:*:4*:R4*)
 +      echo m88k-motorola-sysv4
-+      exit ;;
++      exit ;;
 +    m88k:*:3*:R3*)
 +      echo m88k-motorola-sysv3
-+      exit ;;
++      exit ;;
 +    AViiON:dgux:*:*)
 +        # DG/UX returns AViiON for all architectures
 +        UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -10070,29 +10076,29 @@ Index: libffi/config.guess
 +      else
 +          echo i586-dg-dgux${UNAME_RELEASE}
 +      fi
-+      exit ;;
++      exit ;;
 +    M88*:DolphinOS:*:*)       # DolphinOS (SVR3)
 +      echo m88k-dolphin-sysv3
-+      exit ;;
++      exit ;;
 +    M88*:*:R3*:*)
 +      # Delta 88k system running SVR3
 +      echo m88k-motorola-sysv3
-+      exit ;;
++      exit ;;
 +    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
 +      echo m88k-tektronix-sysv3
-+      exit ;;
++      exit ;;
 +    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
 +      echo m68k-tektronix-bsd
-+      exit ;;
++      exit ;;
 +    *:IRIX*:*:*)
 +      echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-+      exit ;;
++      exit ;;
 +    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-+      echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-+      exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
++      echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
++      exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
 +    i*86:AIX:*:*)
 +      echo i386-ibm-aix
-+      exit ;;
++      exit ;;
 +    ia64:AIX:*:*)
 +      if [ -x /usr/bin/oslevel ] ; then
 +              IBM_REV=`/usr/bin/oslevel`
@@ -10100,7 +10106,7 @@ Index: libffi/config.guess
 +              IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 +      fi
 +      echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-+      exit ;;
++      exit ;;
 +    *:AIX:2:3)
 +      if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 +              eval $set_cc_for_build
@@ -10115,15 +10121,19 @@ Index: libffi/config.guess
 +                      exit(0);
 +                      }
 +EOF
-+              $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-+              echo rs6000-ibm-aix3.2.5
++              if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++              then
++                      echo "$SYSTEM_NAME"
++              else
++                      echo rs6000-ibm-aix3.2.5
++              fi
 +      elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 +              echo rs6000-ibm-aix3.2.4
 +      else
 +              echo rs6000-ibm-aix3.2
 +      fi
-+      exit ;;
-+    *:AIX:*:[45])
++      exit ;;
++    *:AIX:*:[456])
 +      IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 +      if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 +              IBM_ARCH=rs6000
@@ -10136,28 +10146,28 @@ Index: libffi/config.guess
 +              IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 +      fi
 +      echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-+      exit ;;
++      exit ;;
 +    *:AIX:*:*)
 +      echo rs6000-ibm-aix
-+      exit ;;
++      exit ;;
 +    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
 +      echo romp-ibm-bsd4.4
-+      exit ;;
++      exit ;;
 +    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
 +      echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-+      exit 0 ;;                           # report: romp-ibm BSD 4.3
++      exit ;;                             # report: romp-ibm BSD 4.3
 +    *:BOSX:*:*)
 +      echo rs6000-bull-bosx
-+      exit ;;
++      exit ;;
 +    DPX/2?00:B.O.S.:*:*)
 +      echo m68k-bull-sysv3
-+      exit ;;
++      exit ;;
 +    9000/[34]??:4.3bsd:1.*:*)
 +      echo m68k-hp-bsd
-+      exit ;;
++      exit ;;
 +    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
 +      echo m68k-hp-bsd4.4
-+      exit ;;
++      exit ;;
 +    9000/[34678]??:HP-UX:*:*)
 +      HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 +      case "${UNAME_MACHINE}" in
@@ -10219,9 +10229,19 @@ Index: libffi/config.guess
 +      esac
 +      if [ ${HP_ARCH} = "hppa2.0w" ]
 +      then
-+          # avoid double evaluation of $set_cc_for_build
-+          test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-+          if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++          eval $set_cc_for_build
++
++          # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++          # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
++          # generating 64-bit code.  GNU and HP use different nomenclature:
++          #
++          # $ CC_FOR_BUILD=cc ./config.guess
++          # => hppa2.0w-hp-hpux11.23
++          # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++          # => hppa64-hp-hpux11.23
++
++          if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++              grep -q __LP64__
 +          then
 +              HP_ARCH="hppa2.0w"
 +          else
@@ -10229,11 +10249,11 @@ Index: libffi/config.guess
 +          fi
 +      fi
 +      echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-+      exit ;;
++      exit ;;
 +    ia64:HP-UX:*:*)
 +      HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 +      echo ia64-hp-hpux${HPUX_REV}
-+      exit ;;
++      exit ;;
 +    3050*:HI-UX:*:*)
 +      eval $set_cc_for_build
 +      sed 's/^        //' << EOF >$dummy.c
@@ -10261,208 +10281,248 @@ Index: libffi/config.guess
 +        exit (0);
 +      }
 +EOF
-+      $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
++      $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++              { echo "$SYSTEM_NAME"; exit; }
 +      echo unknown-hitachi-hiuxwe2
-+      exit ;;
++      exit ;;
 +    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
 +      echo hppa1.1-hp-bsd
-+      exit ;;
++      exit ;;
 +    9000/8??:4.3bsd:*:*)
 +      echo hppa1.0-hp-bsd
-+      exit ;;
++      exit ;;
 +    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 +      echo hppa1.0-hp-mpeix
-+      exit ;;
++      exit ;;
 +    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
 +      echo hppa1.1-hp-osf
-+      exit ;;
++      exit ;;
 +    hp8??:OSF1:*:*)
 +      echo hppa1.0-hp-osf
-+      exit ;;
++      exit ;;
 +    i*86:OSF1:*:*)
 +      if [ -x /usr/sbin/sysversion ] ; then
 +          echo ${UNAME_MACHINE}-unknown-osf1mk
 +      else
 +          echo ${UNAME_MACHINE}-unknown-osf1
 +      fi
-+      exit ;;
++      exit ;;
 +    parisc*:Lites*:*:*)
 +      echo hppa1.1-hp-lites
-+      exit ;;
++      exit ;;
 +    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 +      echo c1-convex-bsd
-+        exit ;;
++        exit ;;
 +    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 +      if getsysinfo -f scalar_acc
 +      then echo c32-convex-bsd
 +      else echo c2-convex-bsd
 +      fi
-+        exit ;;
++        exit ;;
 +    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 +      echo c34-convex-bsd
-+        exit ;;
++        exit ;;
 +    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 +      echo c38-convex-bsd
-+        exit ;;
++        exit ;;
 +    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 +      echo c4-convex-bsd
-+        exit ;;
++        exit ;;
 +    CRAY*Y-MP:*:*:*)
 +      echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+      exit ;;
++      exit ;;
 +    CRAY*[A-Z]90:*:*:*)
 +      echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
 +      | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 +            -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 +            -e 's/\.[^.]*$/.X/'
-+      exit ;;
++      exit ;;
 +    CRAY*TS:*:*:*)
 +      echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+      exit ;;
++      exit ;;
 +    CRAY*T3E:*:*:*)
 +      echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+      exit ;;
++      exit ;;
 +    CRAY*SV1:*:*:*)
 +      echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+      exit ;;
++      exit ;;
 +    *:UNICOS/mp:*:*)
-+      echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-+      exit ;;
++      echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
 +    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 +      FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
 +        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
 +        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
 +        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+        exit 0 ;;
++        exit ;;
++    5000:UNIX_System_V:4.*:*)
++        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
++        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++      exit ;;
 +    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 +      echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    sparc*:BSD/OS:*:*)
 +      echo sparc-unknown-bsdi${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:BSD/OS:*:*)
 +      echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-+      exit 0 ;;
-+    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
-+      # Determine whether the default compiler uses glibc.
-+      eval $set_cc_for_build
-+      sed 's/^        //' << EOF >$dummy.c
-+      #include <features.h>
-+      #if __GLIBC__ >= 2
-+      LIBC=gnu
-+      #else
-+      LIBC=
-+      #endif
-+EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-+      echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-+      exit 0 ;;
++      exit ;;
++    *:FreeBSD:*:*)
++      case ${UNAME_MACHINE} in
++          pc98)
++              echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++          amd64)
++              echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++          *)
++              echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++      esac
++      exit ;;
 +    i*:CYGWIN*:*)
 +      echo ${UNAME_MACHINE}-pc-cygwin
-+      exit ;;
-+    i*:MINGW*:*)
++      exit ;;
++    *:MINGW*:*)
 +      echo ${UNAME_MACHINE}-pc-mingw32
-+      exit 0 ;;
++      exit ;;
++    i*:windows32*:*)
++      # uname -m includes "-pc" on this system.
++      echo ${UNAME_MACHINE}-mingw32
++      exit ;;
 +    i*:PW*:*)
 +      echo ${UNAME_MACHINE}-pc-pw32
-+      exit 0 ;;
-+    x86:Interix*:[34]*)
-+      echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-+      exit 0 ;;
++      exit ;;
++    *:Interix*:*)
++      case ${UNAME_MACHINE} in
++          x86)
++              echo i586-pc-interix${UNAME_RELEASE}
++              exit ;;
++          authenticamd | genuineintel | EM64T)
++              echo x86_64-unknown-interix${UNAME_RELEASE}
++              exit ;;
++          IA64)
++              echo ia64-unknown-interix${UNAME_RELEASE}
++              exit ;;
++      esac ;;
 +    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 +      echo i${UNAME_MACHINE}-pc-mks
-+      exit 0 ;;
++      exit ;;
++    8664:Windows_NT:*)
++      echo x86_64-pc-mks
++      exit ;;
 +    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 +      # How do we know it's Interix rather than the generic POSIX subsystem?
 +      # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
 +      # UNAME_MACHINE based on the output of uname instead of i386?
 +      echo i586-pc-interix
-+      exit ;;
++      exit ;;
 +    i*:UWIN*:*)
 +      echo ${UNAME_MACHINE}-pc-uwin
-+      exit 0 ;;
++      exit ;;
++    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
++      echo x86_64-unknown-cygwin
++      exit ;;
 +    p*:CYGWIN*:*)
 +      echo powerpcle-unknown-cygwin
-+      exit ;;
++      exit ;;
 +    prep*:SunOS:5.*:*)
 +      echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit ;;
++      exit ;;
 +    *:GNU:*:*)
++      # the GNU system
 +      echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-+      exit 0 ;;
++      exit ;;
++    *:GNU/*:*:*)
++      # other systems with GNU libc and userland
++      echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
++      exit ;;
 +    i*86:Minix:*:*)
 +      echo ${UNAME_MACHINE}-pc-minix
-+      exit 0 ;;
++      exit ;;
++    alpha:Linux:*:*)
++      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++        EV5)   UNAME_MACHINE=alphaev5 ;;
++        EV56)  UNAME_MACHINE=alphaev56 ;;
++        PCA56) UNAME_MACHINE=alphapca56 ;;
++        PCA57) UNAME_MACHINE=alphapca56 ;;
++        EV6)   UNAME_MACHINE=alphaev6 ;;
++        EV67)  UNAME_MACHINE=alphaev67 ;;
++        EV68*) UNAME_MACHINE=alphaev68 ;;
++        esac
++      objdump --private-headers /bin/sh | grep -q ld.so.1
++      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
++      echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++      exit ;;
 +    arm*:Linux:*:*)
++      eval $set_cc_for_build
++      if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++          | grep -q __ARM_EABI__
++      then
++          echo ${UNAME_MACHINE}-unknown-linux-gnu
++      else
++          echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++      fi
++      exit ;;
++    avr32*:Linux:*:*)
 +      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      exit ;;
++      exit ;;
 +    cris:Linux:*:*)
 +      echo cris-axis-linux-gnu
-+      exit 0 ;;
-+    ia64:Linux:*:*)
-+      echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
-+      exit 0 ;;
-+    m68*:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      exit 0 ;;
-+    mips:Linux:*:*)
++      exit ;;
++    crisv32:Linux:*:*)
++      echo crisv32-axis-linux-gnu
++      exit ;;
++    frv:Linux:*:*)
++      echo frv-unknown-linux-gnu
++      exit ;;
++    i*86:Linux:*:*)
++      LIBC=gnu
 +      eval $set_cc_for_build
 +      sed 's/^        //' << EOF >$dummy.c
-+      #undef CPU
-+      #undef mips
-+      #undef mipsel
-+      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-+      CPU=mipsel
-+      #else
-+      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-+      CPU=mips
-+      #else
-+      CPU=
-+      #endif
++      #ifdef __dietlibc__
++      LIBC=dietlibc
 +      #endif
 +EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-+      test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-+      ;;
-+    mips64:Linux:*:*)
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++      echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++      exit ;;
++    ia64:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-gnu
++      exit ;;
++    m32r*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-gnu
++      exit ;;
++    m68*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-gnu
++      exit ;;
++    mips:Linux:*:* | mips64:Linux:*:*)
 +      eval $set_cc_for_build
 +      sed 's/^        //' << EOF >$dummy.c
 +      #undef CPU
-+      #undef mips64
-+      #undef mips64el
++      #undef ${UNAME_MACHINE}
++      #undef ${UNAME_MACHINE}el
 +      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-+      CPU=mips64el
++      CPU=${UNAME_MACHINE}el
 +      #else
 +      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-+      CPU=mips64
++      CPU=${UNAME_MACHINE}
 +      #else
 +      CPU=
 +      #endif
 +      #endif
 +EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-+      test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++      test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 +      ;;
-+    ppc:Linux:*:*)
-+      echo powerpc-${VENDOR:-unknown}-linux-gnu
-+      exit 0 ;;
-+    ppc64:Linux:*:*)
-+      echo powerpc64-${VENDOR:-unknown}-linux-gnu
-+      exit 0 ;;
-+    alpha:Linux:*:*)
-+      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-+        EV5)   UNAME_MACHINE=alphaev5 ;;
-+        EV56)  UNAME_MACHINE=alphaev56 ;;
-+        PCA56) UNAME_MACHINE=alphapca56 ;;
-+        PCA57) UNAME_MACHINE=alphapca56 ;;
-+        EV6)   UNAME_MACHINE=alphaev6 ;;
-+        EV67)  UNAME_MACHINE=alphaev67 ;;
-+        EV68*) UNAME_MACHINE=alphaev68 ;;
-+        esac
-+      objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-+      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-+      echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+      exit 0 ;;
++    or32:Linux:*:*)
++      echo or32-unknown-linux-gnu
++      exit ;;
++    padre:Linux:*:*)
++      echo sparc-unknown-linux-gnu
++      exit ;;
++    parisc64:Linux:*:* | hppa64:Linux:*:*)
++      echo hppa64-unknown-linux-gnu
++      exit ;;
 +    parisc:Linux:*:* | hppa:Linux:*:*)
 +      # Look for CPU level
 +      case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -10470,84 +10530,40 @@ Index: libffi/config.guess
 +        PA8*) echo hppa2.0-unknown-linux-gnu ;;
 +        *)    echo hppa-unknown-linux-gnu ;;
 +      esac
-+      exit 0 ;;
-+    parisc64:Linux:*:* | hppa64:Linux:*:*)
-+      echo hppa64-unknown-linux-gnu
-+      exit 0 ;;
++      exit ;;
++    ppc64:Linux:*:*)
++      echo powerpc64-unknown-linux-gnu
++      exit ;;
++    ppc:Linux:*:*)
++      echo powerpc-unknown-linux-gnu
++      exit ;;
 +    s390:Linux:*:* | s390x:Linux:*:*)
-+      echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
-+      exit ;;
++      echo ${UNAME_MACHINE}-ibm-linux
++      exit ;;
 +    sh64*:Linux:*:*)
 +      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      exit ;;
++      exit ;;
 +    sh*:Linux:*:*)
 +      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      exit ;;
++      exit ;;
 +    sparc:Linux:*:* | sparc64:Linux:*:*)
 +      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      exit 0 ;;
++      exit ;;
++    vax:Linux:*:*)
++      echo ${UNAME_MACHINE}-dec-linux-gnu
++      exit ;;
 +    x86_64:Linux:*:*)
-+      echo x86_64-${VENDOR:-unknown}-linux-gnu
-+      exit 0 ;;
-+    i*86:Linux:*:*)
-+      # The BFD linker knows what the default object file format is, so
-+      # first see if it will tell us. cd to the root directory to prevent
-+      # problems with other programs or directories called `ld' in the path.
-+      # Set LC_ALL=C to ensure ld outputs messages in English.
-+      ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-+                       | sed -ne '/supported targets:/!d
-+                                  s/[         ][      ]*/ /g
-+                                  s/.*supported targets: *//
-+                                  s/ .*//
-+                                  p'`
-+        case "$ld_supported_targets" in
-+        elf32-i386)
-+              TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-+              ;;
-+        a.out-i386-linux)
-+              echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-+              exit 0 ;;
-+        coff-i386)
-+              echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-+              exit 0 ;;
-+        "")
-+              # Either a pre-BFD a.out linker (linux-gnuoldld) or
-+              # one that does not give us useful --help.
-+              echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-+              exit 0 ;;
-+      esac
-+      # Determine whether the default compiler is a.out or elf
-+      eval $set_cc_for_build
-+      sed 's/^        //' << EOF >$dummy.c
-+      #include <features.h>
-+      #ifdef __ELF__
-+      # ifdef __GLIBC__
-+      #  if __GLIBC__ >= 2
-+      LIBC=gnu
-+      #  else
-+      LIBC=gnulibc1
-+      #  endif
-+      # else
-+      LIBC=gnulibc1
-+      # endif
-+      #else
-+      #ifdef __INTEL_COMPILER
-+      LIBC=gnu
-+      #else
-+      LIBC=gnuaout
-+      #endif
-+      #endif
-+EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-+      test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
-+      test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-+      ;;
++      echo x86_64-unknown-linux-gnu
++      exit ;;
++    xtensa*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-gnu
++      exit ;;
 +    i*86:DYNIX/ptx:4*:*)
 +      # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 +      # earlier versions are messed up and put the nodename in both
 +      # sysname and nodename.
 +      echo i386-sequent-sysv4
-+      exit ;;
++      exit ;;
 +    i*86:UNIX_SV:4.2MP:2.*)
 +        # Unixware is an offshoot of SVR4, but it has its own version
 +        # number series starting with 2...
@@ -10555,24 +10571,27 @@ Index: libffi/config.guess
 +      # I just have to hope.  -- rms.
 +        # Use sysv4.2uw... so that sysv4* matches it.
 +      echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-+      exit ;;
++      exit ;;
 +    i*86:OS/2:*:*)
 +      # If we were able to find `uname', then EMX Unix compatibility
 +      # is probably installed.
 +      echo ${UNAME_MACHINE}-pc-os2-emx
-+      exit ;;
++      exit ;;
 +    i*86:XTS-300:*:STOP)
 +      echo ${UNAME_MACHINE}-unknown-stop
-+      exit ;;
++      exit ;;
 +    i*86:atheos:*:*)
 +      echo ${UNAME_MACHINE}-unknown-atheos
-+      exit 0 ;;
-+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++      exit ;;
++    i*86:syllable:*:*)
++      echo ${UNAME_MACHINE}-pc-syllable
++      exit ;;
++    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 +      echo i386-unknown-lynxos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    i*86:*DOS:*:*)
 +      echo ${UNAME_MACHINE}-pc-msdosdjgpp
-+      exit ;;
++      exit ;;
 +    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
 +      UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 +      if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -10580,15 +10599,16 @@ Index: libffi/config.guess
 +      else
 +              echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
 +      fi
-+      exit 0 ;;
-+    i*86:*:5:[78]*)
++      exit ;;
++    i*86:*:5:[678]*)
++      # UnixWare 7.x, OpenUNIX and OpenServer 6.
 +      case `/bin/uname -X | grep "^Machine"` in
 +          *486*)           UNAME_MACHINE=i486 ;;
 +          *Pentium)        UNAME_MACHINE=i586 ;;
 +          *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 +      esac
 +      echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-+      exit ;;
++      exit ;;
 +    i*86:*:3.2:*)
 +      if test -f /usr/options/cb.name; then
 +              UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -10606,73 +10626,86 @@ Index: libffi/config.guess
 +      else
 +              echo ${UNAME_MACHINE}-pc-sysv32
 +      fi
-+      exit ;;
++      exit ;;
 +    pc:*:*:*)
 +      # Left here for compatibility:
 +        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-+        # the processor, so we play safe by assuming i386.
-+      echo i386-pc-msdosdjgpp
-+        exit 0 ;;
++        # the processor, so we play safe by assuming i586.
++      # Note: whatever this is, it MUST be the same as what config.sub
++      # prints for the "djgpp" host, or else GDB configury will decide that
++      # this is a cross-build.
++      echo i586-pc-msdosdjgpp
++        exit ;;
 +    Intel:Mach:3*:*)
 +      echo i386-pc-mach3
-+      exit ;;
++      exit ;;
 +    paragon:*:*:*)
 +      echo i860-intel-osf1
-+      exit ;;
++      exit ;;
 +    i860:*:4.*:*) # i860-SVR4
 +      if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
 +        echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
 +      else # Add other i860-SVR4 vendors below as they are discovered.
 +        echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
 +      fi
-+      exit ;;
++      exit ;;
 +    mini*:CTIX:SYS*5:*)
 +      # "miniframe"
 +      echo m68010-convergent-sysv
-+      exit ;;
++      exit ;;
 +    mc68k:UNIX:SYSTEM5:3.51m)
 +      echo m68k-convergent-sysv
-+      exit ;;
++      exit ;;
 +    M680?0:D-NIX:5.3:*)
 +      echo m68k-diab-dnix
-+      exit ;;
-+    M68*:*:R3V[567]*:*)
-+      test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
++      exit ;;
++    M68*:*:R3V[5678]*:*)
++      test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
++    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 +      OS_REL=''
 +      test -r /etc/.relid \
 +      && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 +      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+        && echo i486-ncr-sysv4.3${OS_REL} && exit 0
++        && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
 +      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+        && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
++        && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
 +    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
 +        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+          && echo i486-ncr-sysv4 && exit 0 ;;
++          && { echo i486-ncr-sysv4; exit; } ;;
++    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++      OS_REL='.3'
++      test -r /etc/.relid \
++          && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++          && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
++      /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
 +    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 +      echo m68k-unknown-lynxos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    mc68030:UNIX_System_V:4.*:*)
 +      echo m68k-atari-sysv4
-+      exit ;;
++      exit ;;
 +    TSUNAMI:LynxOS:2.*:*)
 +      echo sparc-unknown-lynxos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    rs6000:LynxOS:2.*:*)
 +      echo rs6000-unknown-lynxos${UNAME_RELEASE}
-+      exit ;;
-+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++      exit ;;
++    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 +      echo powerpc-unknown-lynxos${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    SM[BE]S:UNIX_SV:*:*)
 +      echo mips-dde-sysv${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    RM*:ReliantUNIX-*:*:*)
 +      echo mips-sni-sysv4
-+      exit ;;
++      exit ;;
 +    RM*:SINIX-*:*:*)
 +      echo mips-sni-sysv4
-+      exit ;;
++      exit ;;
 +    *:SINIX-*:*:*)
 +      if uname -p 2>/dev/null >/dev/null ; then
 +              UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -10680,68 +10713,94 @@ Index: libffi/config.guess
 +      else
 +              echo ns32k-sni-sysv
 +      fi
-+      exit ;;
++      exit ;;
 +    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
 +                      # says <Richard.M.Bartel@ccMail.Census.GOV>
 +        echo i586-unisys-sysv4
-+        exit ;;
++        exit ;;
 +    *:UNIX_System_V:4*:FTX*)
 +      # From Gerald Hewes <hewes@openmarket.com>.
 +      # How about differentiating between stratus architectures? -djm
 +      echo hppa1.1-stratus-sysv4
-+      exit ;;
++      exit ;;
 +    *:*:*:FTX*)
 +      # From seanf@swdc.stratus.com.
 +      echo i860-stratus-sysv4
-+      exit 0 ;;
++      exit ;;
++    i*86:VOS:*:*)
++      # From Paul.Green@stratus.com.
++      echo ${UNAME_MACHINE}-stratus-vos
++      exit ;;
 +    *:VOS:*:*)
 +      # From Paul.Green@stratus.com.
 +      echo hppa1.1-stratus-vos
-+      exit ;;
++      exit ;;
 +    mc68*:A/UX:*:*)
 +      echo m68k-apple-aux${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    news*:NEWS-OS:6*:*)
 +      echo mips-sony-newsos6
-+      exit ;;
++      exit ;;
 +    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 +      if [ -d /usr/nec ]; then
 +              echo mips-nec-sysv${UNAME_RELEASE}
 +      else
 +              echo mips-unknown-sysv${UNAME_RELEASE}
 +      fi
-+        exit ;;
++        exit ;;
 +    BeBox:BeOS:*:*)   # BeOS running on hardware made by Be, PPC only.
 +      echo powerpc-be-beos
-+      exit ;;
++      exit ;;
 +    BeMac:BeOS:*:*)   # BeOS running on Mac or Mac clone, PPC only.
 +      echo powerpc-apple-beos
-+      exit ;;
++      exit ;;
 +    BePC:BeOS:*:*)    # BeOS running on Intel PC compatible.
 +      echo i586-pc-beos
-+      exit 0 ;;
++      exit ;;
++    BePC:Haiku:*:*)   # Haiku running on Intel PC compatible.
++      echo i586-pc-haiku
++      exit ;;
 +    SX-4:SUPER-UX:*:*)
 +      echo sx4-nec-superux${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    SX-5:SUPER-UX:*:*)
 +      echo sx5-nec-superux${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    SX-6:SUPER-UX:*:*)
 +      echo sx6-nec-superux${UNAME_RELEASE}
-+      exit 0 ;;
++      exit ;;
++    SX-7:SUPER-UX:*:*)
++      echo sx7-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-8:SUPER-UX:*:*)
++      echo sx8-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-8R:SUPER-UX:*:*)
++      echo sx8r-nec-superux${UNAME_RELEASE}
++      exit ;;
 +    Power*:Rhapsody:*:*)
 +      echo powerpc-apple-rhapsody${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:Rhapsody:*:*)
 +      echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:Darwin:*:*)
-+      case `uname -p` in
-+          *86) UNAME_PROCESSOR=i686 ;;
-+          powerpc) UNAME_PROCESSOR=powerpc ;;
++      UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
++      case $UNAME_PROCESSOR in
++          i386)
++              eval $set_cc_for_build
++              if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++                    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++                    grep IS_64BIT_ARCH >/dev/null
++                then
++                    UNAME_PROCESSOR="x86_64"
++                fi
++              fi ;;
++          unknown) UNAME_PROCESSOR=powerpc ;;
 +      esac
 +      echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:procnto*:*:* | *:QNX:[0123456789]*:*)
 +      UNAME_PROCESSOR=`uname -p`
 +      if test "$UNAME_PROCESSOR" = "x86"; then
@@ -10749,22 +10808,25 @@ Index: libffi/config.guess
 +              UNAME_MACHINE=pc
 +      fi
 +      echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:QNX:*:4*)
 +      echo i386-pc-qnx
-+      exit 0 ;;
-+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
++      exit ;;
++    NSE-?:NONSTOP_KERNEL:*:*)
++      echo nse-tandem-nsk${UNAME_RELEASE}
++      exit ;;
++    NSR-?:NONSTOP_KERNEL:*:*)
 +      echo nsr-tandem-nsk${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:NonStop-UX:*:*)
 +      echo mips-compaq-nonstopux
-+      exit ;;
++      exit ;;
 +    BS2000:POSIX*:*:*)
 +      echo bs2000-siemens-sysv
-+      exit ;;
++      exit ;;
 +    DS/*:UNIX_System_V:*:*)
 +      echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-+      exit ;;
++      exit ;;
 +    *:Plan9:*:*)
 +      # "uname -m" is not consistent, so use $cputype instead. 386
 +      # is converted to i386 for consistency with other x86
@@ -10775,28 +10837,50 @@ Index: libffi/config.guess
 +          UNAME_MACHINE="$cputype"
 +      fi
 +      echo ${UNAME_MACHINE}-unknown-plan9
-+      exit ;;
++      exit ;;
 +    *:TOPS-10:*:*)
 +      echo pdp10-unknown-tops10
-+      exit ;;
++      exit ;;
 +    *:TENEX:*:*)
 +      echo pdp10-unknown-tenex
-+      exit ;;
++      exit ;;
 +    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
 +      echo pdp10-dec-tops20
-+      exit ;;
++      exit ;;
 +    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
 +      echo pdp10-xkl-tops20
-+      exit ;;
++      exit ;;
 +    *:TOPS-20:*:*)
 +      echo pdp10-unknown-tops20
-+      exit ;;
++      exit ;;
 +    *:ITS:*:*)
 +      echo pdp10-unknown-its
-+      exit ;;
++      exit ;;
 +    SEI:*:*:SEIUX)
 +        echo mips-sei-seiux${UNAME_RELEASE}
-+      exit 0 ;;
++      exit ;;
++    *:DragonFly:*:*)
++      echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++      exit ;;
++    *:*VMS:*:*)
++      UNAME_MACHINE=`(uname -p) 2>/dev/null`
++      case "${UNAME_MACHINE}" in
++          A*) echo alpha-dec-vms ; exit ;;
++          I*) echo ia64-dec-vms ; exit ;;
++          V*) echo vax-dec-vms ; exit ;;
++      esac ;;
++    *:XENIX:*:SysV)
++      echo i386-pc-xenix
++      exit ;;
++    i*86:skyos:*:*)
++      echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++      exit ;;
++    i*86:rdos:*:*)
++      echo ${UNAME_MACHINE}-pc-rdos
++      exit ;;
++    i*86:AROS:*:*)
++      echo ${UNAME_MACHINE}-pc-aros
++      exit ;;
 +esac
 +
 +#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -10828,7 +10912,7 @@ Index: libffi/config.guess
 +#endif
 +
 +#if defined (__arm) && defined (__acorn) && defined (__unix)
-+  printf ("arm-acorn-riscix"); exit (0);
++  printf ("arm-acorn-riscix\n"); exit (0);
 +#endif
 +
 +#if defined (hp300) && !defined (hpux)
@@ -10917,11 +11001,12 @@ Index: libffi/config.guess
 +}
 +EOF
 +
-+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
++      { echo "$SYSTEM_NAME"; exit; }
 +
 +# Apollos put the system type in the environment.
 +
-+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 +
 +# Convex versions that predate uname can use getsysinfo(1)
 +
@@ -10930,22 +11015,22 @@ Index: libffi/config.guess
 +    case `getsysinfo -f cpu_type` in
 +    c1*)
 +      echo c1-convex-bsd
-+      exit ;;
++      exit ;;
 +    c2*)
 +      if getsysinfo -f scalar_acc
 +      then echo c32-convex-bsd
 +      else echo c2-convex-bsd
 +      fi
-+      exit ;;
++      exit ;;
 +    c34*)
 +      echo c34-convex-bsd
-+      exit ;;
++      exit ;;
 +    c38*)
 +      echo c38-convex-bsd
-+      exit ;;
++      exit ;;
 +    c4*)
 +      echo c4-convex-bsd
-+      exit ;;
++      exit ;;
 +    esac
 +fi
 +
@@ -10956,7 +11041,9 @@ Index: libffi/config.guess
 +the operating system you are using. It is advised that you
 +download the most up to date version of the config scripts from
 +
-+    ftp://ftp.gnu.org/pub/gnu/config/
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++and
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 +
 +If the version you run ($0) is already up to date, please
 +send the following data and any information you think might be
@@ -10998,13 +11085,14 @@ Index: libffi/config.sub
 ===================================================================
 --- /dev/null
 +++ libffi/config.sub
-@@ -0,0 +1,1500 @@
+@@ -0,0 +1,1702 @@
 +#! /bin/sh
 +# Configuration validation subroutine script.
 +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++#   Free Software Foundation, Inc.
 +
-+timestamp='2003-06-18'
++timestamp='2009-11-07'
 +
 +# This file is (in principle) common to ALL GNU software.
 +# The presence of a machine in this file suggests that SOME GNU software
@@ -11022,22 +11110,26 @@ Index: libffi/config.sub
 +#
 +# You should have received a copy of the GNU General Public License
 +# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330,
-+# Boston, MA 02111-1307, USA.
-+
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
++#
 +# As a special exception to the GNU General Public License, if you
 +# distribute this file as part of a program that contains a
 +# configuration script generated by Autoconf, you may include it under
 +# the same distribution terms that you use for the rest of that program.
 +
++
 +# Please send patches to <config-patches@gnu.org>.  Submit a context
-+# diff and a properly formatted ChangeLog entry.
++# diff and a properly formatted GNU ChangeLog entry.
 +#
 +# Configuration subroutine to validate and canonicalize a configuration type.
 +# Supply the specified configuration type as an argument.
 +# If it is invalid, we print an error message on stderr and exit with code 1.
 +# Otherwise, we print the canonical config type on stdout and succeed.
 +
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++
 +# This file is supposed to be the same for all GNU packages
 +# and recognize all the CPU types, system types and aliases
 +# that are meaningful with *any* GNU software.
@@ -11071,8 +11163,8 @@ Index: libffi/config.sub
 +version="\
 +GNU config.sub ($timestamp)
 +
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-+Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 +
 +This is free software; see the source for copying conditions.  There is NO
 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -11084,11 +11176,11 @@ Index: libffi/config.sub
 +while test $# -gt 0 ; do
 +  case $1 in
 +    --time-stamp | --time* | -t )
-+       echo "$timestamp" ; exit ;;
++       echo "$timestamp" ; exit ;;
 +    --version | -v )
-+       echo "$version" ; exit ;;
++       echo "$version" ; exit ;;
 +    --help | --h* | -h )
-+       echo "$usage"; exit ;;
++       echo "$usage"; exit ;;
 +    -- )     # Stop option processing
 +       shift; break ;;
 +    - )       # Use stdin as input.
@@ -11100,7 +11192,7 @@ Index: libffi/config.sub
 +    *local*)
 +       # First pass through any local machine types.
 +       echo $1
-+       exit 0;;
++       exit ;;
 +
 +    * )
 +       break ;;
@@ -11119,7 +11211,10 @@ Index: libffi/config.sub
 +# Here we must recognize all the valid KERNEL-OS combinations.
 +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 +case $maybe_os in
-+  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
++  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
++  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++  kopensolaris*-gnu* | \
++  storm-chaos* | os2-emx* | rtmk-nova*)
 +    os=-$maybe_os
 +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
 +    ;;
@@ -11145,10 +11240,13 @@ Index: libffi/config.sub
 +      -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 +      -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 +      -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-+      -apple | -axis)
++      -apple | -axis | -knuth | -cray | -microblaze)
 +              os=
 +              basic_machine=$1
 +              ;;
++        -bluegene*)
++              os=-cnk
++              ;;
 +      -sim | -cisco | -oki | -wec | -winbond)
 +              os=
 +              basic_machine=$1
@@ -11170,6 +11268,10 @@ Index: libffi/config.sub
 +      -hiux*)
 +              os=-hiuxwe2
 +              ;;
++      -sco6)
++              os=-sco5v6
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++              ;;
 +      -sco5)
 +              os=-sco3.2v5
 +              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -11186,6 +11288,10 @@ Index: libffi/config.sub
 +              # Don't forget version if it is 3.2v4 or newer.
 +              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 +              ;;
++      -sco5v6*)
++              # Don't forget version if it is 3.2v4 or newer.
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++              ;;
 +      -sco*)
 +              os=-sco3.2v2
 +              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -11229,54 +11335,71 @@ Index: libffi/config.sub
 +      | a29k \
 +      | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 +      | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-+      | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
++      | am33_2.0 \
++      | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
++      | bfin \
 +      | c4x | clipper \
 +      | d10v | d30v | dlx | dsp16xx \
-+      | fr30 | frv \
++      | fido | fr30 | frv \
 +      | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 +      | i370 | i860 | i960 | ia64 \
-+      | ip2k \
-+      | m32r | m68000 | m68k | m88k | mcore \
++      | ip2k | iq2000 \
++      | lm32 \
++      | m32c | m32r | m32rle | m68000 | m68k | m88k \
++      | maxq | mb | microblaze | mcore | mep | metag \
 +      | mips | mipsbe | mipseb | mipsel | mipsle \
 +      | mips16 \
 +      | mips64 | mips64el \
-+      | mips64vr | mips64vrel \
++      | mips64octeon | mips64octeonel \
 +      | mips64orion | mips64orionel \
++      | mips64r5900 | mips64r5900el \
++      | mips64vr | mips64vrel \
 +      | mips64vr4100 | mips64vr4100el \
 +      | mips64vr4300 | mips64vr4300el \
 +      | mips64vr5000 | mips64vr5000el \
++      | mips64vr5900 | mips64vr5900el \
 +      | mipsisa32 | mipsisa32el \
 +      | mipsisa32r2 | mipsisa32r2el \
 +      | mipsisa64 | mipsisa64el \
++      | mipsisa64r2 | mipsisa64r2el \
 +      | mipsisa64sb1 | mipsisa64sb1el \
 +      | mipsisa64sr71k | mipsisa64sr71kel \
 +      | mipstx39 | mipstx39el \
 +      | mn10200 | mn10300 \
++      | moxie \
++      | mt \
 +      | msp430 \
++      | nios | nios2 \
 +      | ns16k | ns32k \
-+      | openrisc | or32 \
++      | or32 \
 +      | pdp10 | pdp11 | pj | pjl \
 +      | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 +      | pyramid \
-+      | s390 | s390x \
-+      | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++      | rx \
++      | score \
++      | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 +      | sh64 | sh64le \
-+      | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
-+      | strongarm \
++      | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
++      | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
++      | spu | strongarm \
 +      | tahoe | thumb | tic4x | tic80 | tron \
++      | ubicom32 \
 +      | v850 | v850e \
 +      | we32k \
-+      | x86 | xscale | xstormy16 | xtensa \
-+      | z8k)
++      | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++      | z8k | z80)
 +              basic_machine=$basic_machine-unknown
 +              ;;
-+      m6811 | m68hc11 | m6812 | m68hc12)
++      m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 +              # Motorola 68HC11/12.
 +              basic_machine=$basic_machine-unknown
 +              os=-none
 +              ;;
 +      m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 +              ;;
++      ms1)
++              basic_machine=mt-unknown
++              ;;
 +
 +      # We use `pc' rather than `unknown'
 +      # because (1) that's what they normally are, and
@@ -11296,55 +11419,68 @@ Index: libffi/config.sub
 +      | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 +      | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 +      | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-+      | avr-* \
-+      | bs2000-* \
++      | avr-* | avr32-* \
++      | bfin-* | bs2000-* \
 +      | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-+      | clipper-* | cydra-* \
++      | clipper-* | craynv-* | cydra-* \
 +      | d10v-* | d30v-* | dlx-* \
 +      | elxsi-* \
-+      | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
++      | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 +      | h8300-* | h8500-* \
 +      | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 +      | i*86-* | i860-* | i960-* | ia64-* \
-+      | ip2k-* \
-+      | m32r-* \
++      | ip2k-* | iq2000-* \
++      | lm32-* \
++      | m32c-* | m32r-* | m32rle-* \
 +      | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-+      | m88110-* | m88k-* | mcore-* \
++      | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 +      | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 +      | mips16-* \
 +      | mips64-* | mips64el-* \
-+      | mips64vr-* | mips64vrel-* \
++      | mips64octeon-* | mips64octeonel-* \
 +      | mips64orion-* | mips64orionel-* \
++      | mips64r5900-* | mips64r5900el-* \
++      | mips64vr-* | mips64vrel-* \
 +      | mips64vr4100-* | mips64vr4100el-* \
 +      | mips64vr4300-* | mips64vr4300el-* \
 +      | mips64vr5000-* | mips64vr5000el-* \
++      | mips64vr5900-* | mips64vr5900el-* \
 +      | mipsisa32-* | mipsisa32el-* \
 +      | mipsisa32r2-* | mipsisa32r2el-* \
 +      | mipsisa64-* | mipsisa64el-* \
++      | mipsisa64r2-* | mipsisa64r2el-* \
 +      | mipsisa64sb1-* | mipsisa64sb1el-* \
 +      | mipsisa64sr71k-* | mipsisa64sr71kel-* \
 +      | mipstx39-* | mipstx39el-* \
++      | mmix-* \
++      | mt-* \
 +      | msp430-* \
-+      | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
++      | nios-* | nios2-* \
++      | none-* | np1-* | ns16k-* | ns32k-* \
 +      | orion-* \
 +      | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 +      | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 +      | pyramid-* \
-+      | romp-* | rs6000-* \
-+      | s390-* | s390x-* \
-+      | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++      | romp-* | rs6000-* | rx-* \
++      | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 +      | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-+      | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-+      | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
++      | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
++      | sparclite-* \
++      | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 +      | tahoe-* | thumb-* \
-+      | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++      | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 +      | tron-* \
++      | ubicom32-* \
 +      | v850-* | v850e-* | vax-* \
 +      | we32k-* \
-+      | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-+      | xtensa-* \
++      | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++      | xstormy16-* | xtensa*-* \
 +      | ymp-* \
-+      | z8k-*)
++      | z8k-* | z80-*)
++              ;;
++      # Recognize the basic CPU types without company name, with glob match.
++      xtensa*)
++              basic_machine=$basic_machine-unknown
 +              ;;
 +      # Recognize the various machine names and aliases which stand
 +      # for a CPU type and a company and sometimes even an OS.
@@ -11362,6 +11498,9 @@ Index: libffi/config.sub
 +              basic_machine=a29k-amd
 +              os=-udi
 +              ;;
++      abacus)
++              basic_machine=abacus-unknown
++              ;;
 +      adobe68k)
 +              basic_machine=m68010-adobe
 +              os=-scout
@@ -11379,6 +11518,9 @@ Index: libffi/config.sub
 +      amd64)
 +              basic_machine=x86_64-pc
 +              ;;
++      amd64-*)
++              basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
 +      amdahl)
 +              basic_machine=580-amdahl
 +              os=-sysv
@@ -11402,6 +11544,10 @@ Index: libffi/config.sub
 +              basic_machine=m68k-apollo
 +              os=-bsd
 +              ;;
++      aros)
++              basic_machine=i386-pc
++              os=-aros
++              ;;
 +      aux)
 +              basic_machine=m68k-apple
 +              os=-aux
@@ -11410,10 +11556,26 @@ Index: libffi/config.sub
 +              basic_machine=ns32k-sequent
 +              os=-dynix
 +              ;;
++      blackfin)
++              basic_machine=bfin-unknown
++              os=-linux
++              ;;
++      blackfin-*)
++              basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++              os=-linux
++              ;;
++      bluegene*)
++              basic_machine=powerpc-ibm
++              os=-cnk
++              ;;
 +      c90)
 +              basic_machine=c90-cray
 +              os=-unicos
 +              ;;
++        cegcc)
++              basic_machine=arm-unknown
++              os=-cegcc
++              ;;
 +      convex-c1)
 +              basic_machine=c1-convex
 +              os=-bsd
@@ -11438,12 +11600,27 @@ Index: libffi/config.sub
 +              basic_machine=j90-cray
 +              os=-unicos
 +              ;;
++      craynv)
++              basic_machine=craynv-cray
++              os=-unicosmp
++              ;;
++      cr16)
++              basic_machine=cr16-unknown
++              os=-elf
++              ;;
 +      crds | unos)
 +              basic_machine=m68k-crds
 +              ;;
++      crisv32 | crisv32-* | etraxfs*)
++              basic_machine=crisv32-axis
++              ;;
 +      cris | cris-* | etrax*)
 +              basic_machine=cris-axis
 +              ;;
++      crx)
++              basic_machine=crx-unknown
++              os=-elf
++              ;;
 +      da30 | da30-*)
 +              basic_machine=m68k-da30
 +              ;;
@@ -11466,6 +11643,14 @@ Index: libffi/config.sub
 +              basic_machine=m88k-motorola
 +              os=-sysv3
 +              ;;
++      dicos)
++              basic_machine=i686-pc
++              os=-dicos
++              ;;
++      djgpp)
++              basic_machine=i586-pc
++              os=-msdosdjgpp
++              ;;
 +      dpx20 | dpx20-*)
 +              basic_machine=rs6000-bull
 +              os=-bosx
@@ -11616,6 +11801,14 @@ Index: libffi/config.sub
 +              basic_machine=m68k-isi
 +              os=-sysv
 +              ;;
++      m68knommu)
++              basic_machine=m68k-unknown
++              os=-linux
++              ;;
++      m68knommu-*)
++              basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++              os=-linux
++              ;;
 +      m88k-omron*)
 +              basic_machine=m88k-omron
 +              ;;
@@ -11627,10 +11820,17 @@ Index: libffi/config.sub
 +              basic_machine=ns32k-utek
 +              os=-sysv
 +              ;;
++        microblaze)
++              basic_machine=microblaze-xilinx
++              ;;
 +      mingw32)
 +              basic_machine=i386-pc
 +              os=-mingw32
 +              ;;
++      mingw32ce)
++              basic_machine=arm-unknown
++              os=-mingw32ce
++              ;;
 +      miniframe)
 +              basic_machine=m68000-convergent
 +              ;;
@@ -11644,10 +11844,6 @@ Index: libffi/config.sub
 +      mips3*)
 +              basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
 +              ;;
-+      mmix*)
-+              basic_machine=mmix-knuth
-+              os=-mmixware
-+              ;;
 +      monitor)
 +              basic_machine=m68k-rom68k
 +              os=-coff
@@ -11660,6 +11856,9 @@ Index: libffi/config.sub
 +              basic_machine=i386-pc
 +              os=-msdos
 +              ;;
++      ms1-*)
++              basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++              ;;
 +      mvs)
 +              basic_machine=i370-ibm
 +              os=-mvs
@@ -11728,10 +11927,6 @@ Index: libffi/config.sub
 +      np1)
 +              basic_machine=np1-gould
 +              ;;
-+      nv1)
-+              basic_machine=nv1-cray
-+              os=-unicosmp
-+              ;;
 +      nsr-tandem)
 +              basic_machine=nsr-tandem
 +              ;;
@@ -11739,9 +11934,12 @@ Index: libffi/config.sub
 +              basic_machine=hppa1.1-oki
 +              os=-proelf
 +              ;;
-+      or32 | or32-*)
++      openrisc | openrisc-*)
 +              basic_machine=or32-unknown
-+              os=-coff
++              ;;
++      os400)
++              basic_machine=powerpc-ibm
++              os=-os400
 +              ;;
 +      OSE68000 | ose68000)
 +              basic_machine=m68000-ericsson
@@ -11759,6 +11957,14 @@ Index: libffi/config.sub
 +              basic_machine=i860-intel
 +              os=-osf
 +              ;;
++      parisc)
++              basic_machine=hppa-unknown
++              os=-linux
++              ;;
++      parisc-*)
++              basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++              os=-linux
++              ;;
 +      pbd)
 +              basic_machine=sparc-tti
 +              ;;
@@ -11768,6 +11974,12 @@ Index: libffi/config.sub
 +      pc532 | pc532-*)
 +              basic_machine=ns32k-pc532
 +              ;;
++      pc98)
++              basic_machine=i386-pc
++              ;;
++      pc98-*)
++              basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
 +      pentium | p5 | k5 | k6 | nexgen | viac3)
 +              basic_machine=i586-pc
 +              ;;
@@ -11824,6 +12036,10 @@ Index: libffi/config.sub
 +              basic_machine=i586-unknown
 +              os=-pw32
 +              ;;
++      rdos)
++              basic_machine=i386-pc
++              os=-rdos
++              ;;
 +      rom68k)
 +              basic_machine=m68k-rom68k
 +              os=-coff
@@ -11834,6 +12050,12 @@ Index: libffi/config.sub
 +      rtpc | rtpc-*)
 +              basic_machine=romp-ibm
 +              ;;
++      s390 | s390-*)
++              basic_machine=s390-ibm
++              ;;
++      s390x | s390x-*)
++              basic_machine=s390x-ibm
++              ;;
 +      sa29200)
 +              basic_machine=a29k-amd
 +              os=-udi
@@ -11844,6 +12066,10 @@ Index: libffi/config.sub
 +      sb1el)
 +              basic_machine=mipsisa64sb1el-unknown
 +              ;;
++      sde)
++              basic_machine=mipsisa32-sde
++              os=-elf
++              ;;
 +      sei)
 +              basic_machine=mips-sei
 +              os=-seiux
@@ -11855,6 +12081,9 @@ Index: libffi/config.sub
 +              basic_machine=sh-hitachi
 +              os=-hms
 +              ;;
++      sh5el)
++              basic_machine=sh5le-unknown
++              ;;
 +      sh64)
 +              basic_machine=sh64-unknown
 +              ;;
@@ -11944,6 +12173,10 @@ Index: libffi/config.sub
 +              basic_machine=tic6x-unknown
 +              os=-coff
 +              ;;
++      tile*)
++              basic_machine=tile-unknown
++              os=-linux-gnu
++              ;;
 +      tx39)
 +              basic_machine=mipstx39-unknown
 +              ;;
@@ -11957,6 +12190,10 @@ Index: libffi/config.sub
 +      tower | tower-32)
 +              basic_machine=m68k-ncr
 +              ;;
++      tpf)
++              basic_machine=s390x-ibm
++              os=-tpf
++              ;;
 +      udi29k)
 +              basic_machine=a29k-amd
 +              os=-udi
@@ -12000,6 +12237,10 @@ Index: libffi/config.sub
 +              basic_machine=hppa1.1-winbond
 +              os=-proelf
 +              ;;
++      xbox)
++              basic_machine=i686-pc
++              os=-mingw32
++              ;;
 +      xps | xps100)
 +              basic_machine=xps100-honeywell
 +              ;;
@@ -12011,6 +12252,10 @@ Index: libffi/config.sub
 +              basic_machine=z8k-unknown
 +              os=-sim
 +              ;;
++      z80-*-coff)
++              basic_machine=z80-unknown
++              os=-sim
++              ;;
 +      none)
 +              basic_machine=none-none
 +              os=-none
@@ -12030,6 +12275,9 @@ Index: libffi/config.sub
 +      romp)
 +              basic_machine=romp-ibm
 +              ;;
++      mmix)
++              basic_machine=mmix-knuth
++              ;;
 +      rs6000)
 +              basic_machine=rs6000-ibm
 +              ;;
@@ -12046,13 +12294,10 @@ Index: libffi/config.sub
 +      we32k)
 +              basic_machine=we32k-att
 +              ;;
-+      sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
++      sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 +              basic_machine=sh-unknown
 +              ;;
-+      sh64)
-+              basic_machine=sh64-unknown
-+              ;;
-+      sparc | sparcv8 | sparcv9 | sparcv9b)
++      sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 +              basic_machine=sparc-sun
 +              ;;
 +      cydra)
@@ -12119,25 +12364,30 @@ Index: libffi/config.sub
 +      # Each alternative MUST END IN A *, to match a version number.
 +      # -sysv* is not here because it comes later, after sysvr4.
 +      -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-+            | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
++            | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 +            | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
++            | -kopensolaris* \
 +            | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-+            | -aos* \
++            | -aos* | -aros* \
 +            | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 +            | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-+            | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-+            | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
++            | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++            | -openbsd* | -solidbsd* \
++            | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
++            | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 +            | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 +            | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-+            | -chorusos* | -chorusrdb* \
++            | -chorusos* | -chorusrdb* | -cegcc* \
 +            | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-+            | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
++            | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++            | -uxpv* | -beos* | -mpeix* | -udk* \
 +            | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 +            | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 +            | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 +            | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 +            | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-+            | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
++            | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++            | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
 +      # Remember, each alternative MUST END IN *, to match a version number.
 +              ;;
 +      -qnx*)
@@ -12155,12 +12405,15 @@ Index: libffi/config.sub
 +              os=`echo $os | sed -e 's|nto|nto-qnx|'`
 +              ;;
 +      -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-+            | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
++            | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
 +            | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 +              ;;
 +      -mac*)
 +              os=`echo $os | sed -e 's|mac|macos|'`
 +              ;;
++      -linux-dietlibc)
++              os=-linux-dietlibc
++              ;;
 +      -linux*)
 +              os=`echo $os | sed -e 's|linux|linux-gnu|'`
 +              ;;
@@ -12173,6 +12426,9 @@ Index: libffi/config.sub
 +      -opened*)
 +              os=-openedition
 +              ;;
++        -os400*)
++              os=-os400
++              ;;
 +      -wince*)
 +              os=-wince
 +              ;;
@@ -12194,6 +12450,9 @@ Index: libffi/config.sub
 +      -atheos*)
 +              os=-atheos
 +              ;;
++      -syllable*)
++              os=-syllable
++              ;;
 +      -386bsd)
 +              os=-bsd
 +              ;;
@@ -12216,6 +12475,9 @@ Index: libffi/config.sub
 +      -sinix*)
 +              os=-sysv4
 +              ;;
++        -tpf*)
++              os=-tpf
++              ;;
 +      -triton*)
 +              os=-sysv3
 +              ;;
@@ -12252,6 +12514,12 @@ Index: libffi/config.sub
 +      -kaos*)
 +              os=-kaos
 +              ;;
++      -zvmoe)
++              os=-zvmoe
++              ;;
++      -dicos*)
++              os=-dicos
++              ;;
 +      -none)
 +              ;;
 +      *)
@@ -12274,6 +12542,12 @@ Index: libffi/config.sub
 +# system, and we'll never get to this point.
 +
 +case $basic_machine in
++        score-*)
++              os=-elf
++              ;;
++        spu-*)
++              os=-elf
++              ;;
 +      *-acorn)
 +              os=-riscix1.2
 +              ;;
@@ -12283,8 +12557,8 @@ Index: libffi/config.sub
 +      arm*-semi)
 +              os=-aout
 +              ;;
-+      c4x-* | tic4x-*)
-+              os=-coff
++        c4x-* | tic4x-*)
++              os=-coff
 +              ;;
 +      # This must come before the *-dec entry.
 +      pdp10-*)
@@ -12311,6 +12585,9 @@ Index: libffi/config.sub
 +      m68*-cisco)
 +              os=-aout
 +              ;;
++        mep-*)
++              os=-elf
++              ;;
 +      mips*-cisco)
 +              os=-elf
 +              ;;
@@ -12329,9 +12606,15 @@ Index: libffi/config.sub
 +      *-be)
 +              os=-beos
 +              ;;
++      *-haiku)
++              os=-haiku
++              ;;
 +      *-ibm)
 +              os=-aix
 +              ;;
++      *-knuth)
++              os=-mmixware
++              ;;
 +      *-wec)
 +              os=-proelf
 +              ;;
@@ -12434,7 +12717,7 @@ Index: libffi/config.sub
 +                      -sunos*)
 +                              vendor=sun
 +                              ;;
-+                      -aix*)
++                      -cnk*|-aix*)
 +                              vendor=ibm
 +                              ;;
 +                      -beos*)
@@ -12464,9 +12747,15 @@ Index: libffi/config.sub
 +                      -mvs* | -opened*)
 +                              vendor=ibm
 +                              ;;
++                      -os400*)
++                              vendor=ibm
++                              ;;
 +                      -ptx*)
 +                              vendor=sequent
 +                              ;;
++                      -tpf*)
++                              vendor=ibm
++                              ;;
 +                      -vxsim* | -vxworks* | -windiss*)
 +                              vendor=wrs
 +                              ;;
@@ -12491,7 +12780,7 @@ Index: libffi/config.sub
 +esac
 +
 +echo $basic_machine$os
-+exit 0
++exit
 +
 +# Local variables:
 +# eval: (add-hook 'write-file-hooks 'time-stamp)
@@ -12507,7 +12796,7 @@ Index: libffi/configure
  #! /bin/sh
  # Guess values for system-dependent variables and create Makefiles.
 -# Generated by GNU Autoconf 2.64 for libffi 3.0.8.
-+# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc9.
++# Generated by GNU Autoconf 2.63 for libffi 3.0.9rc10.
  #
  # Report bugs to <http://gcc.gnu.org/bugs.html>.
  #
@@ -13463,8 +13752,8 @@ Index: libffi/configure
  PACKAGE_TARNAME='libffi'
 -PACKAGE_VERSION='3.0.8'
 -PACKAGE_STRING='libffi 3.0.8'
-+PACKAGE_VERSION='3.0.9rc9'
-+PACKAGE_STRING='libffi 3.0.9rc9'
++PACKAGE_VERSION='3.0.9rc10'
++PACKAGE_STRING='libffi 3.0.9rc10'
  PACKAGE_BUGREPORT='http://gcc.gnu.org/bugs.html'
 -PACKAGE_URL=''
  
@@ -13629,7 +13918,7 @@ Index: libffi/configure
    # This message is too long to be a string in the A/UX 3.1 sh.
    cat <<_ACEOF
 -\`configure' configures libffi 3.0.8 to adapt to many kinds of systems.
-+\`configure' configures libffi 3.0.9rc9 to adapt to many kinds of systems.
++\`configure' configures libffi 3.0.9rc10 to adapt to many kinds of systems.
  
  Usage: $0 [OPTION]... [VAR=VALUE]...
  
@@ -13638,7 +13927,7 @@ Index: libffi/configure
  if test -n "$ac_init_help"; then
    case $ac_init_help in
 -     short | recursive ) echo "Configuration of libffi 3.0.8:";;
-+     short | recursive ) echo "Configuration of libffi 3.0.9rc9:";;
++     short | recursive ) echo "Configuration of libffi 3.0.9rc10:";;
     esac
    cat <<\_ACEOF
  
@@ -13656,7 +13945,7 @@ Index: libffi/configure
    cat <<\_ACEOF
 -libffi configure 3.0.8
 -generated by GNU Autoconf 2.64
-+libffi configure 3.0.9rc9
++libffi configure 3.0.9rc10
 +generated by GNU Autoconf 2.63
  
 -Copyright (C) 2009 Free Software Foundation, Inc.
@@ -13756,7 +14045,7 @@ Index: libffi/configure
 -  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 -  return $ac_retval
-+It was created by libffi $as_me 3.0.9rc9, which was
++It was created by libffi $as_me 3.0.9rc10, which was
 +generated by GNU Autoconf 2.63.  Invocation command line was
  
 -} # ac_fn_c_try_link
@@ -15029,7 +15318,7 @@ Index: libffi/configure
  # Define the identity of the package.
   PACKAGE='libffi'
 - VERSION='3.0.8'
-+ VERSION='3.0.9rc9'
++ VERSION='3.0.9rc10'
  
  
  cat >>confdefs.h <<_ACEOF
@@ -24438,7 +24727,7 @@ Index: libffi/configure
  ac_log="
 -This file was extended by libffi $as_me 3.0.8, which was
 -generated by GNU Autoconf 2.64.  Invocation command line was
-+This file was extended by libffi $as_me 3.0.9rc9, which was
++This file was extended by libffi $as_me 3.0.9rc10, which was
 +generated by GNU Autoconf 2.63.  Invocation command line was
  
    CONFIG_FILES    = $CONFIG_FILES
@@ -24470,7 +24759,7 @@ Index: libffi/configure
  ac_cs_version="\\
 -libffi config.status 3.0.8
 -configured by $0, generated by GNU Autoconf 2.64,
-+libffi config.status 3.0.9rc9
++libffi config.status 3.0.9rc10
 +configured by $0, generated by GNU Autoconf 2.63,
    with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
  
@@ -25430,7 +25719,7 @@ Index: libffi/configure.ac
 +AC_PREREQ(2.63)
  
 -AC_INIT([libffi], [3.0.8], [http://gcc.gnu.org/bugs.html])
-+AC_INIT([libffi], [3.0.9rc9], [http://gcc.gnu.org/bugs.html])
++AC_INIT([libffi], [3.0.9rc10], [http://gcc.gnu.org/bugs.html])
  AC_CONFIG_HEADERS([fficonfig.h])
  
 -AM_ENABLE_MULTILIB(, ..)
index cc10125..40a04c5 100644 (file)
@@ -4,7 +4,7 @@
    PR:                 none.
    Originator: Blake Chaffin 6/6/2007   */
 
-/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+/* { dg-do run { xfail avr32*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
 static void
index 6c17dc4..720258e 100644 (file)
@@ -4,7 +4,7 @@
    PR:                 none.
    Originator: Blake Chaffin 6/6/2007   */
 
-/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
+/* { dg-do run { xfail avr32*-*-* strongarm*-*-* xscale*-*-* } } */
 /* { dg-output "" { xfail x86_64-*-mingw* } } */
 #include "ffitest.h"
 
index 52220a3..b0031c3 100644 (file)
@@ -2,11 +2,17 @@
 #include <stdio.h>
 #include <string.h>
 #include <fcntl.h>
-#include <stdint.h>
-#include <inttypes.h>
 #include <ffi.h>
 #include "fficonfig.h"
 
+#if defined HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#if defined HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
 #define MAX_ARGS 256
 
 #define CHECK(x) !(x) ? abort() : 0
index 2401336..9cffb71 100644 (file)
@@ -5,12 +5,10 @@
        Originator:             Blake Chaffin   6/18/2007
 */
 
-/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
+/* { dg-excess-errors "" { target x86_64-*-mingw* x86_64-*-cygwin* } } */
 /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
 /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */
-/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */
-
-#include <stdint.h>
+/* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */
 
 #include "ffitest.h"
 
index 7238716..d7ffd4a 100644 (file)
@@ -6,7 +6,14 @@
 
 /* { dg-do run } */
 #include "ffitestcxx.h"
+
+#if defined HAVE_STDINT_H
 #include <stdint.h>
+#endif
+
+#if defined HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
 
 void
 closure_test_fn(ffi_cif* cif __UNUSED__, void* resp __UNUSED__,