From dee20f8e45c486f5018f31e09bb362992aa498c3 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Fri, 10 Feb 2012 13:06:46 -0500 Subject: [PATCH] Rebased from gcc --- ChangeLog | 18 + configure | 9 + configure.ac | 9 + fficonfig.h.in | 6 - patches/aix-ibm-xlc | 8 +- patches/alpha | 2 +- patches/amiga | 2 +- patches/autoconf-archive-update | 18 +- patches/bad-abi-fix | 2 +- patches/darwin-EH-fix | 2 +- patches/darwin11 | 8 +- patches/debug-build | 889 ++++++++++++++++++++++++++++++- patches/ffi_last_abi | 24 +- patches/fix-grammar | 2 +- patches/fix-ppc32 | 2 +- patches/fix-xfails | 32 +- patches/fix_maxopt | 2 +- patches/hpux-mallinfo | 2 +- patches/interix | 2 +- patches/ios | 4 +- patches/ios-fixes | 2 +- patches/irix | 2 +- patches/kfreebsd-mmap | 4 +- patches/ml64-safeseh | 2 +- patches/more-openbsd | 2 +- patches/msvcc-warning | 2 +- patches/powerpc-ffi-softfloat | 2 +- patches/powerpc-sysv-without-string-ops | 2 +- patches/ppc64-darwin | 2 +- patches/remove-debug-code | 2 +- patches/sparc-abi-check | 2 +- patches/sparc-v8-aggregate-returns | 2 +- patches/stand-alone | 164 +++--- patches/stdcall-x86-closure-fix | 6 +- patches/unlikely | 2 +- patches/variadic | 10 +- patches/win64-struct-args | 2 +- patches/win64-underscore | 6 +- patches/windows-ce-arm | 2 +- patches/x86_pcrel_test | 6 +- src/prep_cif.c | 9 +- src/x86/ffi.c | 36 ++ src/x86/ffitarget.h | 2 +- src/x86/win32.S | 25 + testsuite/libffi.call/closure_thiscall.c | 64 +++ 45 files changed, 1221 insertions(+), 182 deletions(-) create mode 100644 testsuite/libffi.call/closure_thiscall.c diff --git a/ChangeLog b/ChangeLog index 0558cf0..81f35ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2012-02-10 Kai Tietz + + * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 + windows target. + * configure: Regenerated. + +2012-02-08 Kai Tietz + + * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 + also FFI_THISCALL. + * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype. + (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code. + (ffi_prep_closure_loc): Add FFI_THISCALL support. + * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size. + * src/x86/win32.S (ffi_closure_THISCALL): New closure code + for thiscall-calling convention. + * testsuite/libffi.call/closure_thiscall.c: New test. + 2012-01-28 Kai Tietz * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new diff --git a/configure b/configure index 0d830ab..cec095b 100755 --- a/configure +++ b/configure @@ -13257,6 +13257,15 @@ case "$host" in x86_64-*-cygwin* | x86_64-*-mingw*) TARGET=X86_WIN64; TARGETDIR=x86 + # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. + # We must also check with_cross_host to decide if this is a native + # or cross-build and select where to install dlls appropriately. + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"'; + else + AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; + fi ;; x86_64-*-*) diff --git a/configure.ac b/configure.ac index df20c2f..efe013a 100644 --- a/configure.ac +++ b/configure.ac @@ -189,6 +189,15 @@ case "$host" in x86_64-*-cygwin* | x86_64-*-mingw*) TARGET=X86_WIN64; TARGETDIR=x86 + # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. + # We must also check with_cross_host to decide if this is a native + # or cross-build and select where to install dlls appropriately. + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"'; + else + AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; + fi ;; x86_64-*-*) diff --git a/fficonfig.h.in b/fficonfig.h.in index 168ebc3..b54b273 100644 --- a/fficonfig.h.in +++ b/fficonfig.h.in @@ -160,9 +160,6 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS -/* Define if symbols are underscored. */ -#undef SYMBOL_UNDERSCORE - /* Define this if you are using Purify and want to suppress spurious messages. */ #undef USING_PURIFY @@ -182,9 +179,6 @@ # endif #endif -/* Define to `unsigned int' if does not define. */ -#undef size_t - #ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE #ifdef LIBFFI_ASM diff --git a/patches/aix-ibm-xlc b/patches/aix-ibm-xlc index a2cc902..88ba200 100644 --- a/patches/aix-ibm-xlc +++ b/patches/aix-ibm-xlc @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,19 @@ +@@ -111,6 +111,19 @@ * configure: Regenerate. @@ -22,7 +22,7 @@ Index: libffi/ChangeLog 2011-02-09 Rainer Orth PR libffi/46661 -@@ -103,7 +116,7 @@ +@@ -121,7 +134,7 @@ 2011-02-08 Rafael Avila de Espindola * configure.ac: Fix x86 test for pc related relocs. @@ -178,7 +178,7 @@ Index: libffi/configure =================================================================== --- libffi.orig/configure +++ libffi/configure -@@ -13318,67 +13318,69 @@ $as_echo "#define HAVE_AS_X86_64_UNWIND_ +@@ -13327,67 +13327,69 @@ $as_echo "#define HAVE_AS_X86_64_UNWIND_ fi fi @@ -277,7 +277,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -345,44 +345,46 @@ if test x$TARGET = xX86_64; then +@@ -354,44 +354,46 @@ if test x$TARGET = xX86_64; then fi fi diff --git a/patches/alpha b/patches/alpha index ed452ef..fe439e9 100644 --- a/patches/alpha +++ b/patches/alpha @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -17,6 +17,10 @@ +@@ -35,6 +35,10 @@ * testsuite/libffi.call/struct1_win32.c: New test. * testsuite/libffi.call/struct2_win32.c: New test. diff --git a/patches/amiga b/patches/amiga index e56ce71..e16d8df 100644 --- a/patches/amiga +++ b/patches/amiga @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -18,7 +18,12 @@ +@@ -36,7 +36,12 @@ * testsuite/libffi.call/struct2_win32.c: New test. 2012-01-23 Anthony Green diff --git a/patches/autoconf-archive-update b/patches/autoconf-archive-update index 66422cd..03ff9c8 100644 --- a/patches/autoconf-archive-update +++ b/patches/autoconf-archive-update @@ -2074,7 +2074,7 @@ Index: libffi/configure TARGET=ALPHA; TARGETDIR=alpha; # Support 128-bit long double, changeable via command-line switch. HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' -@@ -14358,6 +15434,14 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ +@@ -14367,6 +15443,14 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ # # INIT-COMMANDS # @@ -2089,7 +2089,7 @@ Index: libffi/configure AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -@@ -14647,6 +15731,7 @@ for ac_config_target in $ac_config_targe +@@ -14656,6 +15740,7 @@ for ac_config_target in $ac_config_targe do case $ac_config_target in "fficonfig.h") CONFIG_HEADERS="$CONFIG_HEADERS fficonfig.h" ;; @@ -2097,7 +2097,7 @@ Index: libffi/configure "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "include") CONFIG_COMMANDS="$CONFIG_COMMANDS include" ;; -@@ -15285,6 +16370,150 @@ $as_echo "$as_me: executing $ac_file com +@@ -15294,6 +16379,150 @@ $as_echo "$as_me: executing $ac_file com case $ac_file$ac_mode in @@ -2266,7 +2266,7 @@ Index: libffi/include/Makefile.in $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ -@@ -142,6 +149,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +@@ -141,6 +148,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ @@ -2274,7 +2274,7 @@ Index: libffi/include/Makefile.in RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ -@@ -162,6 +170,7 @@ am__leading_dot = @am__leading_dot@ +@@ -161,6 +169,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ @@ -2300,7 +2300,7 @@ Index: libffi/man/Makefile.in $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ -@@ -140,6 +147,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +@@ -139,6 +146,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ @@ -2308,7 +2308,7 @@ Index: libffi/man/Makefile.in RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ -@@ -160,6 +168,7 @@ am__leading_dot = @am__leading_dot@ +@@ -159,6 +167,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ @@ -2334,7 +2334,7 @@ Index: libffi/testsuite/Makefile.in $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ -@@ -117,6 +124,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +@@ -116,6 +123,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ @@ -2342,7 +2342,7 @@ Index: libffi/testsuite/Makefile.in RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ -@@ -137,6 +145,7 @@ am__leading_dot = @am__leading_dot@ +@@ -136,6 +144,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ diff --git a/patches/bad-abi-fix b/patches/bad-abi-fix index 412d33a..5d6e1eb 100644 --- a/patches/bad-abi-fix +++ b/patches/bad-abi-fix @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,23 @@ +@@ -111,6 +111,23 @@ * configure: Regenerate. diff --git a/patches/darwin-EH-fix b/patches/darwin-EH-fix index 4d857b4..2453498 100644 --- a/patches/darwin-EH-fix +++ b/patches/darwin-EH-fix @@ -28,7 +28,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -89,6 +89,11 @@ +@@ -107,6 +107,11 @@ Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. diff --git a/patches/darwin11 b/patches/darwin11 index 657c166..bbd7a9a 100644 --- a/patches/darwin11 +++ b/patches/darwin11 @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,14 @@ +@@ -59,6 +59,14 @@ * configure: Regenerate. @@ -80,7 +80,7 @@ Index: libffi/configure TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc ;; powerpc64-*-freebsd*) -@@ -13287,13 +13298,30 @@ $as_echo "#define SYMBOL_UNDERSCORE 1" > +@@ -13296,13 +13307,30 @@ $as_echo "#define SYMBOL_UNDERSCORE 1" > fi fi @@ -112,7 +112,7 @@ Index: libffi/configure if test x$TARGET = xX86_64; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports unwind section type" >&5 -@@ -13721,6 +13749,10 @@ if test -z "${PA64_HPUX_TRUE}" && test - +@@ -13730,6 +13758,10 @@ if test -z "${PA64_HPUX_TRUE}" && test - Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi @@ -127,7 +127,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -339,7 +339,7 @@ case "$target" in +@@ -348,7 +348,7 @@ case "$target" in [Cannot use PROT_EXEC on this target, so, we revert to alternative means]) ;; diff --git a/patches/debug-build b/patches/debug-build index 7571f3f..cea74a7 100644 --- a/patches/debug-build +++ b/patches/debug-build @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -225,6 +225,13 @@ +@@ -243,6 +243,13 @@ * testsuite/libffi.call/cls_longdouble.c: Likewise. * testsuite/libffi.call/huge_struct.c: Likewise. @@ -54,7 +54,7 @@ Index: libffi/configure.ac m4_undefine([_AC_ARG_VAR_PRECIOUS]) m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) -@@ -400,6 +404,7 @@ AC_ARG_ENABLE(debug, +@@ -409,6 +413,7 @@ AC_ARG_ENABLE(debug, if test "$enable_debug" = "yes"; then AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.]) fi) @@ -66,27 +66,892 @@ Index: libffi/Makefile.in =================================================================== --- libffi.orig/Makefile.in +++ libffi/Makefile.in -@@ -62,6 +62,11 @@ target_triplet = @target@ - @SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c - @PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c - @PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c +@@ -15,6 +15,7 @@ + + @SET_MAKE@ + ++ + VPATH = @srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ +@@ -54,36 +55,38 @@ target_triplet = @target@ + @AVR32_TRUE@am__append_17 = src/avr32/sysv.S src/avr32/ffi.c + @LIBFFI_CRIS_TRUE@am__append_18 = src/cris/sysv.S src/cris/ffi.c + @FRV_TRUE@am__append_19 = src/frv/eabi.S src/frv/ffi.c +-@S390_TRUE@am__append_20 = src/s390/sysv.S src/s390/ffi.c +-@X86_64_TRUE@am__append_21 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S +-@SH_TRUE@am__append_22 = src/sh/sysv.S src/sh/ffi.c +-@SH64_TRUE@am__append_23 = src/sh64/sysv.S src/sh64/ffi.c +-@PA_LINUX_TRUE@am__append_24 = src/pa/linux.S src/pa/ffi.c +-@PA_HPUX_TRUE@am__append_25 = src/pa/hpux32.S src/pa/ffi.c ++@MOXIE_TRUE@am__append_20 = src/moxie/eabi.S src/moxie/ffi.c ++@S390_TRUE@am__append_21 = src/s390/sysv.S src/s390/ffi.c ++@X86_64_TRUE@am__append_22 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S ++@SH_TRUE@am__append_23 = src/sh/sysv.S src/sh/ffi.c ++@SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c ++@PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c ++@PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c +# Build debug. Define FFI_DEBUG on the commandline so that, when building with +# MSVC, it can link against the debug CRT. +@FFI_DEBUG_TRUE@am__append_27 = -DFFI_DEBUG +# Build opt. +@FFI_DEBUG_FALSE@am__append_28 = -O2 subdir = . - DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \ -@@ -489,7 +494,7 @@ nodist_libffi_la_SOURCES = $(am__append_ - $(am__append_24) $(am__append_25) $(am__append_26) +-DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ +- $(srcdir)/../config.guess $(srcdir)/../config.sub \ +- $(srcdir)/../depcomp $(srcdir)/../install-sh \ +- $(srcdir)/../ltmain.sh $(srcdir)/../missing \ +- $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \ +- $(srcdir)/Makefile.in $(srcdir)/fficonfig.h.in \ +- $(top_srcdir)/configure ChangeLog ++DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \ ++ $(srcdir)/doc/version.texi $(srcdir)/fficonfig.h.in \ ++ $(srcdir)/libffi.pc.in $(top_srcdir)/configure ChangeLog \ ++ compile config.guess config.sub depcomp install-sh ltmain.sh \ ++ mdate-sh missing texinfo.tex + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ +- $(top_srcdir)/../config/lead-dot.m4 \ +- $(top_srcdir)/../config/multi.m4 \ +- $(top_srcdir)/../config/override.m4 \ +- $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ +- $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ +- $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ ++am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \ ++ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs ++mkinstalldirs = $(install_sh) -d + CONFIG_HEADER = fficonfig.h +-CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_FILES = libffi.pc + CONFIG_CLEAN_VPATH_FILES = + am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; + am__vpath_adj = case $$p in \ +@@ -106,8 +109,9 @@ am__nobase_list = $(am__nobase_strip_set + am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +-am__installdirs = "$(DESTDIR)$(toolexeclibdir)" +-LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) ++am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(infodir)" \ ++ "$(DESTDIR)$(pkgconfigdir)" ++LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) + libffi_la_LIBADD = + am__dirstamp = $(am__leading_dot)dirstamp + am_libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +@@ -143,13 +147,14 @@ am_libffi_la_OBJECTS = src/debug.lo src/ + @AVR32_TRUE@am__objects_17 = src/avr32/sysv.lo src/avr32/ffi.lo + @LIBFFI_CRIS_TRUE@am__objects_18 = src/cris/sysv.lo src/cris/ffi.lo + @FRV_TRUE@am__objects_19 = src/frv/eabi.lo src/frv/ffi.lo +-@S390_TRUE@am__objects_20 = src/s390/sysv.lo src/s390/ffi.lo +-@X86_64_TRUE@am__objects_21 = src/x86/ffi64.lo src/x86/unix64.lo \ ++@MOXIE_TRUE@am__objects_20 = src/moxie/eabi.lo src/moxie/ffi.lo ++@S390_TRUE@am__objects_21 = src/s390/sysv.lo src/s390/ffi.lo ++@X86_64_TRUE@am__objects_22 = src/x86/ffi64.lo src/x86/unix64.lo \ + @X86_64_TRUE@ src/x86/ffi.lo src/x86/sysv.lo +-@SH_TRUE@am__objects_22 = src/sh/sysv.lo src/sh/ffi.lo +-@SH64_TRUE@am__objects_23 = src/sh64/sysv.lo src/sh64/ffi.lo +-@PA_LINUX_TRUE@am__objects_24 = src/pa/linux.lo src/pa/ffi.lo +-@PA_HPUX_TRUE@am__objects_25 = src/pa/hpux32.lo src/pa/ffi.lo ++@SH_TRUE@am__objects_23 = src/sh/sysv.lo src/sh/ffi.lo ++@SH64_TRUE@am__objects_24 = src/sh64/sysv.lo src/sh64/ffi.lo ++@PA_LINUX_TRUE@am__objects_25 = src/pa/linux.lo src/pa/ffi.lo ++@PA_HPUX_TRUE@am__objects_26 = src/pa/hpux32.lo src/pa/ffi.lo + nodist_libffi_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) $(am__objects_5) \ + $(am__objects_6) $(am__objects_7) $(am__objects_8) \ +@@ -158,17 +163,17 @@ nodist_libffi_la_OBJECTS = $(am__objects + $(am__objects_15) $(am__objects_16) $(am__objects_17) \ + $(am__objects_18) $(am__objects_19) $(am__objects_20) \ + $(am__objects_21) $(am__objects_22) $(am__objects_23) \ +- $(am__objects_24) $(am__objects_25) ++ $(am__objects_24) $(am__objects_25) $(am__objects_26) + libffi_la_OBJECTS = $(am_libffi_la_OBJECTS) \ + $(nodist_libffi_la_OBJECTS) + libffi_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libffi_la_LDFLAGS) $(LDFLAGS) -o $@ + libffi_convenience_la_LIBADD = +-am__objects_26 = src/debug.lo src/prep_cif.lo src/types.lo \ ++am__objects_27 = src/debug.lo src/prep_cif.lo src/types.lo \ + src/raw_api.lo src/java_raw_api.lo src/closures.lo +-am_libffi_convenience_la_OBJECTS = $(am__objects_26) +-am__objects_27 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \ ++am_libffi_convenience_la_OBJECTS = $(am__objects_27) ++am__objects_28 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) $(am__objects_5) $(am__objects_6) \ + $(am__objects_7) $(am__objects_8) $(am__objects_9) \ + $(am__objects_10) $(am__objects_11) $(am__objects_12) \ +@@ -176,12 +181,12 @@ am__objects_27 = $(am__objects_1) $(am__ + $(am__objects_16) $(am__objects_17) $(am__objects_18) \ + $(am__objects_19) $(am__objects_20) $(am__objects_21) \ + $(am__objects_22) $(am__objects_23) $(am__objects_24) \ +- $(am__objects_25) +-nodist_libffi_convenience_la_OBJECTS = $(am__objects_27) ++ $(am__objects_25) $(am__objects_26) ++nodist_libffi_convenience_la_OBJECTS = $(am__objects_28) + libffi_convenience_la_OBJECTS = $(am_libffi_convenience_la_OBJECTS) \ + $(nodist_libffi_convenience_la_OBJECTS) + DEFAULT_INCLUDES = -I.@am__isrc@ +-depcomp = $(SHELL) $(top_srcdir)/../depcomp ++depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + am__mv = mv -f + CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +@@ -202,12 +207,18 @@ SOURCES = $(libffi_la_SOURCES) $(nodist_ + $(libffi_convenience_la_SOURCES) \ + $(nodist_libffi_convenience_la_SOURCES) + DIST_SOURCES = $(libffi_la_SOURCES) $(libffi_convenience_la_SOURCES) +-MULTISRCTOP = +-MULTIBUILDTOP = +-MULTIDIRS = +-MULTISUBDIR = +-MULTIDO = true +-MULTICLEAN = true ++INFO_DEPS = $(srcdir)/doc/libffi.info ++am__TEXINFO_TEX_DIR = $(srcdir) ++DVIS = doc/libffi.dvi ++PDFS = doc/libffi.pdf ++PSS = doc/libffi.ps ++HTMLS = doc/libffi.html ++TEXINFOS = doc/libffi.texi ++TEXI2DVI = texi2dvi ++TEXI2PDF = $(TEXI2DVI) --pdf --batch ++MAKEINFOHTML = $(MAKEINFO) --html ++AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) ++DVIPS = dvips + RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ +@@ -215,6 +226,7 @@ RECURSIVE_TARGETS = all-recursive check- + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive ++DATA = $(pkgconfig_DATA) + RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive + AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ +@@ -280,6 +292,7 @@ CPPFLAGS = @CPPFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -305,6 +318,7 @@ LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -332,6 +346,7 @@ abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ + abs_top_builddir = @abs_top_builddir@ + abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ + ac_ct_CC = @ac_ct_CC@ + ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ + am__include = @am__include@ +@@ -366,7 +381,6 @@ localedir = @localedir@ + localstatedir = @localstatedir@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ +-multi_basedir = @multi_basedir@ + oldincludedir = @oldincludedir@ + pdfdir = @pdfdir@ + prefix = @prefix@ +@@ -387,7 +401,6 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + AUTOMAKE_OPTIONS = foreign subdir-objects +-ACLOCAL_AMFLAGS = -I .. -I ../config + SUBDIRS = include testsuite man + EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \ + src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \ +@@ -412,10 +425,16 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change + src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \ + src/sparc/ffi.c src/x86/darwin64.S \ + src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \ ++ src/x86/win64.S src/x86/freebsd.S \ + src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \ + src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \ +- src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c ++ src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h \ ++ src/dlmalloc.c \ ++ src/moxie/ffi.c src/moxie/eabi.S \ ++ libtool-version ChangeLog.libffi m4/libtool.m4 \ ++ m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 + ++info_TEXINFOS = doc/libffi.texi + + # Work around what appears to be a GNU make bug handling MAKEFLAGS + # values defined in terms of make variables, as is the case for CC and +@@ -456,11 +475,14 @@ AM_MAKEFLAGS = \ + "DESTDIR=$(DESTDIR)" + + MAKEOVERRIDES = +-toolexeclib_LTLIBRARIES = libffi.la ++ACLOCAL_AMFLAGS = $(ACLOCAL_AMFLAGS) -I m4 ++lib_LTLIBRARIES = libffi.la + noinst_LTLIBRARIES = libffi_convenience.la + libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \ + src/raw_api.c src/java_raw_api.c src/closures.c + ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = libffi.pc + nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) $(am__append_5) \ + $(am__append_6) $(am__append_7) $(am__append_8) \ +@@ -469,11 +491,10 @@ nodist_libffi_la_SOURCES = $(am__append_ + $(am__append_15) $(am__append_16) $(am__append_17) \ + $(am__append_18) $(am__append_19) $(am__append_20) \ + $(am__append_21) $(am__append_22) $(am__append_23) \ +- $(am__append_24) $(am__append_25) ++ $(am__append_24) $(am__append_25) $(am__append_26) libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) -AM_CFLAGS = -Wall -g -fexceptions +-LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) +AM_CFLAGS = -Wall -g -fexceptions $(am__append_27) $(am__append_28) libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS) AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src AM_CCASFLAGS = $(AM_CPPFLAGS) +@@ -481,7 +502,7 @@ all: fficonfig.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .obj ++.SUFFIXES: .S .c .dvi .lo .o .obj .ps + am--refresh: + @: + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +@@ -533,41 +554,43 @@ $(srcdir)/fficonfig.h.in: @MAINTAINER_MO + + distclean-hdr: + -rm -f fficonfig.h stamp-h1 +- +-clean-noinstLTLIBRARIES: +- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) +- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ +- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ +- test "$$dir" != "$$p" || dir=.; \ +- echo "rm -f \"$${dir}/so_locations\""; \ +- rm -f "$${dir}/so_locations"; \ +- done +-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES) ++libffi.pc: $(top_builddir)/config.status $(srcdir)/libffi.pc.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) +- test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" +- @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \ ++ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ +- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \ +- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +-uninstall-toolexeclibLTLIBRARIES: ++uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) +- @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \ ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ +- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$f'"; \ +- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$f"; \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +-clean-toolexeclibLTLIBRARIES: +- -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES) +- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \ ++clean-libLTLIBRARIES: ++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) ++ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ ++ test "$$dir" != "$$p" || dir=.; \ ++ echo "rm -f \"$${dir}/so_locations\""; \ ++ rm -f "$${dir}/so_locations"; \ ++ done ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ +@@ -737,6 +760,16 @@ src/frv/eabi.lo: src/frv/$(am__dirstamp) + src/frv/$(DEPDIR)/$(am__dirstamp) + src/frv/ffi.lo: src/frv/$(am__dirstamp) \ + src/frv/$(DEPDIR)/$(am__dirstamp) ++src/moxie/$(am__dirstamp): ++ @$(MKDIR_P) src/moxie ++ @: > src/moxie/$(am__dirstamp) ++src/moxie/$(DEPDIR)/$(am__dirstamp): ++ @$(MKDIR_P) src/moxie/$(DEPDIR) ++ @: > src/moxie/$(DEPDIR)/$(am__dirstamp) ++src/moxie/eabi.lo: src/moxie/$(am__dirstamp) \ ++ src/moxie/$(DEPDIR)/$(am__dirstamp) ++src/moxie/ffi.lo: src/moxie/$(am__dirstamp) \ ++ src/moxie/$(DEPDIR)/$(am__dirstamp) + src/s390/$(am__dirstamp): + @$(MKDIR_P) src/s390 + @: > src/s390/$(am__dirstamp) +@@ -780,7 +813,7 @@ src/pa/ffi.lo: src/pa/$(am__dirstamp) sr + src/pa/hpux32.lo: src/pa/$(am__dirstamp) \ + src/pa/$(DEPDIR)/$(am__dirstamp) + libffi.la: $(libffi_la_OBJECTS) $(libffi_la_DEPENDENCIES) +- $(libffi_la_LINK) -rpath $(toolexeclibdir) $(libffi_la_OBJECTS) $(libffi_la_LIBADD) $(LIBS) ++ $(libffi_la_LINK) -rpath $(libdir) $(libffi_la_OBJECTS) $(libffi_la_LIBADD) $(LIBS) + libffi_convenience.la: $(libffi_convenience_la_OBJECTS) $(libffi_convenience_la_DEPENDENCIES) + $(LINK) $(libffi_convenience_la_OBJECTS) $(libffi_convenience_la_LIBADD) $(LIBS) + +@@ -830,6 +863,10 @@ mostlyclean-compile: + -rm -f src/mips/n32.lo + -rm -f src/mips/o32.$(OBJEXT) + -rm -f src/mips/o32.lo ++ -rm -f src/moxie/eabi.$(OBJEXT) ++ -rm -f src/moxie/eabi.lo ++ -rm -f src/moxie/ffi.$(OBJEXT) ++ -rm -f src/moxie/ffi.lo + -rm -f src/pa/ffi.$(OBJEXT) + -rm -f src/pa/ffi.lo + -rm -f src/pa/hpux32.$(OBJEXT) +@@ -927,6 +964,8 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@src/mips/$(DEPDIR)/ffi.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/mips/$(DEPDIR)/n32.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/mips/$(DEPDIR)/o32.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/moxie/$(DEPDIR)/eabi.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/moxie/$(DEPDIR)/ffi.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/ffi.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/hpux32.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/linux.Plo@am__quote@ +@@ -1022,6 +1061,7 @@ clean-libtool: + -rm -rf src/m32r/.libs src/m32r/_libs + -rm -rf src/m68k/.libs src/m68k/_libs + -rm -rf src/mips/.libs src/mips/_libs ++ -rm -rf src/moxie/.libs src/moxie/_libs + -rm -rf src/pa/.libs src/pa/_libs + -rm -rf src/powerpc/.libs src/powerpc/_libs + -rm -rf src/s390/.libs src/s390/_libs +@@ -1032,23 +1072,191 @@ clean-libtool: + + distclean-libtool: + -rm -f libtool config.lt ++doc/$(am__dirstamp): ++ @$(MKDIR_P) doc ++ @: > doc/$(am__dirstamp) ++ ++$(srcdir)/doc/libffi.info: doc/libffi.texi $(srcdir)/doc/version.texi ++ restore=: && backupdir="$(am__leading_dot)am$$$$" && \ ++ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ ++ rm -rf $$backupdir && mkdir $$backupdir && \ ++ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ ++ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ ++ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ ++ done; \ ++ else :; fi && \ ++ cd "$$am__cwd"; \ ++ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ ++ -o $@ $(srcdir)/doc/libffi.texi; \ ++ then \ ++ rc=0; \ ++ $(am__cd) $(srcdir); \ ++ else \ ++ rc=$$?; \ ++ $(am__cd) $(srcdir) && \ ++ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ ++ fi; \ ++ rm -rf $$backupdir; exit $$rc ++ ++doc/libffi.dvi: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp) ++ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ ++ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ ++ $(TEXI2DVI) -o $@ `test -f 'doc/libffi.texi' || echo '$(srcdir)/'`doc/libffi.texi ++ ++doc/libffi.pdf: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp) ++ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ ++ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ ++ $(TEXI2PDF) -o $@ `test -f 'doc/libffi.texi' || echo '$(srcdir)/'`doc/libffi.texi ++ ++doc/libffi.html: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp) ++ rm -rf $(@:.html=.htp) ++ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ ++ -o $(@:.html=.htp) `test -f 'doc/libffi.texi' || echo '$(srcdir)/'`doc/libffi.texi; \ ++ then \ ++ rm -rf $@; \ ++ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ ++ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ ++ else \ ++ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ ++ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ ++ exit 1; \ ++ fi ++$(srcdir)/doc/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/doc/stamp-vti ++$(srcdir)/doc/stamp-vti: doc/libffi.texi $(top_srcdir)/configure ++ test -f doc/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) doc/$(am__dirstamp) ++ @(dir=.; test -f ./doc/libffi.texi || dir=$(srcdir); \ ++ set `$(SHELL) $(srcdir)/mdate-sh $$dir/doc/libffi.texi`; \ ++ echo "@set UPDATED $$1 $$2 $$3"; \ ++ echo "@set UPDATED-MONTH $$2 $$3"; \ ++ echo "@set EDITION $(VERSION)"; \ ++ echo "@set VERSION $(VERSION)") > vti.tmp ++ @cmp -s vti.tmp $(srcdir)/doc/version.texi \ ++ || (echo "Updating $(srcdir)/doc/version.texi"; \ ++ cp vti.tmp $(srcdir)/doc/version.texi) ++ -@rm -f vti.tmp ++ @cp $(srcdir)/doc/version.texi $@ ++ ++mostlyclean-vti: ++ -rm -f vti.tmp ++ ++maintainer-clean-vti: ++@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/doc/stamp-vti $(srcdir)/doc/version.texi ++.dvi.ps: ++ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ ++ $(DVIPS) -o $@ $< ++ ++uninstall-dvi-am: ++ @$(NORMAL_UNINSTALL) ++ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ ++ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ ++ done ++ ++uninstall-html-am: ++ @$(NORMAL_UNINSTALL) ++ @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ ++ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ ++ done + +-# GNU Make needs to see an explicit $(MAKE) variable in the command it +-# runs to enable its job server during parallel builds. Hence the +-# comments below. +-all-multi: +- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) +-install-multi: +- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE) +- +-mostlyclean-multi: +- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE) +-clean-multi: +- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE) +-distclean-multi: +- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE) +-maintainer-clean-multi: +- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE) ++uninstall-info-am: ++ @$(PRE_UNINSTALL) ++ @if test -d '$(DESTDIR)$(infodir)' && \ ++ (install-info --version && \ ++ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ ++ list='$(INFO_DEPS)'; \ ++ for file in $$list; do \ ++ relfile=`echo "$$file" | sed 's|^.*/||'`; \ ++ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ ++ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ ++ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ ++ done; \ ++ else :; fi ++ @$(NORMAL_UNINSTALL) ++ @list='$(INFO_DEPS)'; \ ++ for file in $$list; do \ ++ relfile=`echo "$$file" | sed 's|^.*/||'`; \ ++ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ ++ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ ++ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ ++ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ ++ else :; fi); \ ++ done ++ ++uninstall-pdf-am: ++ @$(NORMAL_UNINSTALL) ++ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ ++ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ ++ done ++ ++uninstall-ps-am: ++ @$(NORMAL_UNINSTALL) ++ @list='$(PSS)'; test -n "$(psdir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ ++ rm -f "$(DESTDIR)$(psdir)/$$f"; \ ++ done ++ ++dist-info: $(INFO_DEPS) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ ++ list='$(INFO_DEPS)'; \ ++ for base in $$list; do \ ++ case $$base in \ ++ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ ++ esac; \ ++ if test -f $$base; then d=.; else d=$(srcdir); fi; \ ++ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ ++ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ ++ if test -f $$file; then \ ++ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ ++ test -f "$(distdir)/$$relfile" || \ ++ cp -p $$file "$(distdir)/$$relfile"; \ ++ else :; fi; \ ++ done; \ ++ done ++ ++mostlyclean-aminfo: ++ -rm -rf libffi.aux libffi.cp libffi.cps libffi.fn libffi.ky libffi.log \ ++ libffi.pg libffi.tmp libffi.toc libffi.tp libffi.vr ++ ++clean-aminfo: ++ -test -z "doc/libffi.dvi doc/libffi.pdf doc/libffi.ps doc/libffi.html" \ ++ || rm -rf doc/libffi.dvi doc/libffi.pdf doc/libffi.ps doc/libffi.html ++ ++maintainer-clean-aminfo: ++ @list='$(INFO_DEPS)'; for i in $$list; do \ ++ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ ++ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ ++ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ ++ done ++install-pkgconfigDATA: $(pkgconfig_DATA) ++ @$(NORMAL_INSTALL) ++ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" ++ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ ++ done ++ ++uninstall-pkgconfigDATA: ++ @$(NORMAL_UNINSTALL) ++ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ test -n "$$files" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + + # This directory's subdirectories are mostly independent; you can cd + # into them and run `make' without going through this Makefile. +@@ -1245,6 +1453,9 @@ distdir: $(DISTFILES) + || exit 1; \ + fi; \ + done ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$(top_distdir)" distdir="$(distdir)" \ ++ dist-info + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ +@@ -1362,10 +1573,10 @@ distcleancheck: distclean + exit 1; } >&2 + check-am: all-am + check: check-recursive +-all-am: Makefile $(LTLIBRARIES) all-multi fficonfig.h ++all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(DATA) fficonfig.h + installdirs: installdirs-recursive + installdirs-am: +- for dir in "$(DESTDIR)$(toolexeclibdir)"; do \ ++ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + install: install-recursive +@@ -1389,6 +1600,7 @@ clean-generic: + distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ -rm -f doc/$(am__dirstamp) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + -rm -f src/alpha/$(DEPDIR)/$(am__dirstamp) +@@ -1409,6 +1621,8 @@ distclean-generic: + -rm -f src/m68k/$(am__dirstamp) + -rm -f src/mips/$(DEPDIR)/$(am__dirstamp) + -rm -f src/mips/$(am__dirstamp) ++ -rm -f src/moxie/$(DEPDIR)/$(am__dirstamp) ++ -rm -f src/moxie/$(am__dirstamp) + -rm -f src/pa/$(DEPDIR)/$(am__dirstamp) + -rm -f src/pa/$(am__dirstamp) + -rm -f src/powerpc/$(DEPDIR)/$(am__dirstamp) +@@ -1427,114 +1641,186 @@ distclean-generic: + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +-clean: clean-multi clean-recursive ++clean: clean-recursive + +-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ +- clean-toolexeclibLTLIBRARIES mostlyclean-am ++clean-am: clean-aminfo clean-generic clean-libLTLIBRARIES \ ++ clean-libtool clean-noinstLTLIBRARIES mostlyclean-am + +-distclean: distclean-multi distclean-recursive ++distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) +- -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR) ++ -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR) + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + + dvi: dvi-recursive + +-dvi-am: ++dvi-am: $(DVIS) + + html: html-recursive + +-html-am: ++html-am: $(HTMLS) + + info: info-recursive + +-info-am: ++info-am: $(INFO_DEPS) + +-install-data-am: ++install-data-am: install-info-am install-pkgconfigDATA + + install-dvi: install-dvi-recursive + +-install-dvi-am: +- +-install-exec-am: install-multi install-toolexeclibLTLIBRARIES +- +-install-html: install-html-recursive +- +-install-html-am: ++install-dvi-am: $(DVIS) ++ @$(NORMAL_INSTALL) ++ test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)" ++ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ ++ done ++install-exec-am: install-libLTLIBRARIES + ++install-html-am: $(HTMLS) ++ @$(NORMAL_INSTALL) ++ test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" ++ @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ $(am__strip_dir) \ ++ if test -d "$$d$$p"; then \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ ++ echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ ++ $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ ++ else \ ++ list2="$$list2 $$d$$p"; \ ++ fi; \ ++ done; \ ++ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ ++ done; } + install-info: install-info-recursive + +-install-info-am: +- ++install-info-am: $(INFO_DEPS) ++ @$(NORMAL_INSTALL) ++ test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)" ++ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ ++ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ ++ for file in $$list; do \ ++ case $$file in \ ++ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ ++ esac; \ ++ if test -f $$file; then d=.; else d=$(srcdir); fi; \ ++ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ ++ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ ++ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ ++ if test -f $$ifile; then \ ++ echo "$$ifile"; \ ++ else : ; fi; \ ++ done; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done ++ @$(POST_INSTALL) ++ @if (install-info --version && \ ++ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ ++ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ ++ for file in $$list; do \ ++ relfile=`echo "$$file" | sed 's|^.*/||'`; \ ++ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ ++ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ ++ done; \ ++ else : ; fi + install-man: + +-install-pdf: install-pdf-recursive +- +-install-pdf-am: +- ++install-pdf-am: $(PDFS) ++ @$(NORMAL_INSTALL) ++ test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" ++ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done + install-ps: install-ps-recursive + +-install-ps-am: +- ++install-ps-am: $(PSS) ++ @$(NORMAL_INSTALL) ++ test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)" ++ @list='$(PSS)'; test -n "$(psdir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done + installcheck-am: + +-maintainer-clean: maintainer-clean-multi maintainer-clean-recursive ++maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache +- -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR) ++ -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR) + -rm -f Makefile +-maintainer-clean-am: distclean-am maintainer-clean-generic ++maintainer-clean-am: distclean-am maintainer-clean-aminfo \ ++ maintainer-clean-generic maintainer-clean-vti + +-mostlyclean: mostlyclean-multi mostlyclean-recursive ++mostlyclean: mostlyclean-recursive + +-mostlyclean-am: mostlyclean-compile mostlyclean-generic \ +- mostlyclean-libtool ++mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool mostlyclean-vti + + pdf: pdf-recursive + +-pdf-am: ++pdf-am: $(PDFS) + + ps: ps-recursive + +-ps-am: ++ps-am: $(PSS) + +-uninstall-am: uninstall-toolexeclibLTLIBRARIES ++uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ ++ uninstall-libLTLIBRARIES uninstall-pdf-am \ ++ uninstall-pkgconfigDATA uninstall-ps-am + +-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all all-multi \ +- clean-multi ctags-recursive distclean-multi install-am \ +- install-multi install-strip maintainer-clean-multi \ +- mostlyclean-multi tags-recursive ++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ++ ctags-recursive install-am install-strip tags-recursive + + .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ +- all all-am all-multi am--refresh check check-am clean \ +- clean-generic clean-libtool clean-multi \ +- clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES ctags \ +- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzma \ +- dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ +- distclean-compile distclean-generic distclean-hdr \ +- distclean-libtool distclean-multi distclean-tags \ +- distcleancheck distdir distuninstallcheck dvi dvi-am html \ +- html-am info info-am install install-am install-data \ +- install-data-am install-dvi install-dvi-am install-exec \ +- install-exec-am install-html install-html-am install-info \ +- install-info-am install-man install-multi install-pdf \ +- install-pdf-am install-ps install-ps-am install-strip \ +- install-toolexeclibLTLIBRARIES installcheck installcheck-am \ +- installdirs installdirs-am maintainer-clean \ +- maintainer-clean-generic maintainer-clean-multi mostlyclean \ ++ all all-am am--refresh check check-am clean clean-aminfo \ ++ clean-generic clean-libLTLIBRARIES clean-libtool \ ++ clean-noinstLTLIBRARIES ctags ctags-recursive dist dist-all \ ++ dist-bzip2 dist-gzip dist-info dist-lzma dist-shar dist-tarZ \ ++ dist-xz dist-zip distcheck distclean distclean-compile \ ++ distclean-generic distclean-hdr distclean-libtool \ ++ distclean-tags distcleancheck distdir distuninstallcheck dvi \ ++ dvi-am html html-am info info-am install install-am \ ++ install-data install-data-am install-dvi install-dvi-am \ ++ install-exec install-exec-am install-html install-html-am \ ++ install-info install-info-am install-libLTLIBRARIES \ ++ install-man install-pdf install-pdf-am install-pkgconfigDATA \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs installdirs-am maintainer-clean \ ++ maintainer-clean-aminfo maintainer-clean-generic \ ++ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ +- mostlyclean-multi pdf pdf-am ps ps-am tags tags-recursive \ +- uninstall uninstall-am uninstall-toolexeclibLTLIBRARIES ++ mostlyclean-vti pdf pdf-am ps ps-am tags tags-recursive \ ++ uninstall uninstall-am uninstall-dvi-am uninstall-html-am \ ++ uninstall-info-am uninstall-libLTLIBRARIES uninstall-pdf-am \ ++ uninstall-pkgconfigDATA uninstall-ps-am + + +-# Multilib support. Automake should provide these on its own. +-all-recursive: all-multi +-install-recursive: install-multi +-mostlyclean-recursive: mostlyclean-multi +-clean-recursive: clean-multi +-distclean-recursive: distclean-multi +-maintainer-clean-recursive: maintainer-clean-multi ++# No install-html or install-pdf support in automake yet ++.PHONY: install-html install-pdf ++install-html: ++install-pdf: + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. Index: libffi/configure =================================================================== --- libffi.orig/configure @@ -121,7 +986,7 @@ Index: libffi/configure -@@ -13335,6 +13341,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdef +@@ -13344,6 +13350,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdef fi fi @@ -136,7 +1001,7 @@ Index: libffi/configure # Check whether --enable-structs was given. if test "${enable_structs+set}" = set; then : -@@ -13649,6 +13663,10 @@ if test -z "${PA64_HPUX_TRUE}" && test - +@@ -13658,6 +13672,10 @@ if test -z "${PA64_HPUX_TRUE}" && test - Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi diff --git a/patches/ffi_last_abi b/patches/ffi_last_abi index ab8eb22..f68cc16 100644 --- a/patches/ffi_last_abi +++ b/patches/ffi_last_abi @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -225,6 +225,12 @@ +@@ -243,6 +243,12 @@ * testsuite/libffi.call/cls_longdouble.c: Likewise. * testsuite/libffi.call/huge_struct.c: Likewise. @@ -221,15 +221,23 @@ Index: libffi/src/prep_cif.c =================================================================== --- libffi.orig/src/prep_cif.c +++ libffi/src/prep_cif.c -@@ -93,7 +93,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff - ffi_type **ptr; +@@ -1,5 +1,6 @@ + /* ----------------------------------------------------------------------- +- prep_cif.c - Copyright (c) 1996, 1998, 2007 Red Hat, Inc. ++ prep_cif.c - Copyright (c) 2012 Anthony Green ++ Copyright (c) 1996, 1998, 2007 Red Hat, Inc. - FFI_ASSERT(cif != NULL); -- FFI_ASSERT((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)); -+ FFI_ASSERT(abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI); + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the +@@ -96,7 +97,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff + #ifndef X86_WIN32 + FFI_ASSERT((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)); + #else +- FFI_ASSERT(abi > FFI_FIRST_ABI && abi <= FFI_DEFAULT_ABI ++ FFI_ASSERT(abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI + || abi == FFI_THISCALL); + #endif - cif->abi = abi; - cif->arg_types = atypes; Index: libffi/src/s390/ffitarget.h =================================================================== --- libffi.orig/src/s390/ffitarget.h diff --git a/patches/fix-grammar b/patches/fix-grammar index 4911b92..efaf4c0 100644 --- a/patches/fix-grammar +++ b/patches/fix-grammar @@ -15,7 +15,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -102,6 +102,10 @@ +@@ -120,6 +120,10 @@ instructions. * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN. diff --git a/patches/fix-ppc32 b/patches/fix-ppc32 index e2699be..ad91ac7 100644 --- a/patches/fix-ppc32 +++ b/patches/fix-ppc32 @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -89,6 +89,11 @@ +@@ -107,6 +107,11 @@ Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. diff --git a/patches/fix-xfails b/patches/fix-xfails index 78e5264..2d37b2e 100644 --- a/patches/fix-xfails +++ b/patches/fix-xfails @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -95,7 +95,12 @@ +@@ -113,7 +113,12 @@ 2011-02-09 Anthony Green @@ -16,7 +16,7 @@ Index: libffi/ChangeLog 2011-02-09 Landon Fuller -@@ -115,6 +120,7 @@ +@@ -133,6 +138,7 @@ * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case. * build-ios.sh: New file. * fficonfig.h.in, configure, Makefile.in: Rebuilt. @@ -28,15 +28,14 @@ Index: libffi/src/prep_cif.c =================================================================== --- libffi.orig/src/prep_cif.c +++ libffi/src/prep_cif.c -@@ -1,5 +1,6 @@ +@@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------- -- prep_cif.c - Copyright (c) 1996, 1998, 2007 Red Hat, Inc. -+ prep_cif.c - Copyright (c) 2011 Anthony Green -+ Copyright (c) 1996, 1998, 2007 Red Hat, Inc. +- prep_cif.c - Copyright (c) 2012 Anthony Green ++ prep_cif.c - Copyright (c) 2011, 2012 Anthony Green + Copyright (c) 1996, 1998, 2007 Red Hat, Inc. Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the -@@ -26,6 +27,12 @@ +@@ -27,6 +27,12 @@ #include #include @@ -49,7 +48,7 @@ Index: libffi/src/prep_cif.c /* Round up to FFI_SIZEOF_ARG. */ #define STACK_ARG_SIZE(x) ALIGN(x, FFI_SIZEOF_ARG) -@@ -45,9 +52,13 @@ static ffi_status initialize_aggregate(f +@@ -46,9 +52,13 @@ static ffi_status initialize_aggregate(f ptr = &(arg->elements[0]); @@ -64,16 +63,21 @@ Index: libffi/src/prep_cif.c return FFI_BAD_TYPEDEF; /* Perform a sanity check on the argument type */ -@@ -93,7 +104,8 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff - ffi_type **ptr; +@@ -95,10 +105,11 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff FFI_ASSERT(cif != NULL); -- FFI_ASSERT(abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI); -+ if (! (abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI)) + #ifndef X86_WIN32 +- FFI_ASSERT((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)); ++ if ((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)) + return FFI_BAD_ABI; + #else +- FFI_ASSERT(abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI +- || abi == FFI_THISCALL); ++ if (abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI || abi == FFI_THISCALL) ++ return FFI_BAD_ABI; + #endif cif->abi = abi; - cif->arg_types = atypes; Index: libffi/src/x86/ffi64.c =================================================================== --- libffi.orig/src/x86/ffi64.c diff --git a/patches/fix_maxopt b/patches/fix_maxopt index d6cbd2e..1ad2032 100644 --- a/patches/fix_maxopt +++ b/patches/fix_maxopt @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -89,6 +89,11 @@ +@@ -107,6 +107,11 @@ Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. diff --git a/patches/hpux-mallinfo b/patches/hpux-mallinfo index 8a9536d..d96a132 100644 --- a/patches/hpux-mallinfo +++ b/patches/hpux-mallinfo @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,11 @@ +@@ -111,6 +111,11 @@ * configure: Regenerate. diff --git a/patches/interix b/patches/interix index 0c83b13..fac2a2e 100644 --- a/patches/interix +++ b/patches/interix @@ -64,7 +64,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -95,6 +95,17 @@ +@@ -113,6 +113,17 @@ 2011-02-09 Anthony Green diff --git a/patches/ios b/patches/ios index a50d8a5..fadbded 100644 --- a/patches/ios +++ b/patches/ios @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,29 @@ +@@ -111,6 +111,29 @@ * configure: Regenerate. @@ -311,7 +311,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -322,13 +322,23 @@ if test x$TARGET = xX86_WIN64; then +@@ -331,13 +331,23 @@ if test x$TARGET = xX86_WIN64; then fi fi diff --git a/patches/ios-fixes b/patches/ios-fixes index 502f46e..e0c89f1 100644 --- a/patches/ios-fixes +++ b/patches/ios-fixes @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -130,7 +130,7 @@ +@@ -148,7 +148,7 @@ * src/prep_cif.c (UNLIKELY, LIKELY): Define. (initialize_aggregate): Check for bad types. diff --git a/patches/irix b/patches/irix index 8c63ece..8d45db7 100644 --- a/patches/irix +++ b/patches/irix @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,14 @@ +@@ -111,6 +111,14 @@ * configure: Regenerate. diff --git a/patches/kfreebsd-mmap b/patches/kfreebsd-mmap index 7b801bc..09e715b 100644 --- a/patches/kfreebsd-mmap +++ b/patches/kfreebsd-mmap @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,11 @@ +@@ -59,6 +59,11 @@ * configure: Regenerate. @@ -18,7 +18,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -339,7 +339,7 @@ case "$target" in +@@ -348,7 +348,7 @@ case "$target" in [Cannot use PROT_EXEC on this target, so, we revert to alternative means]) ;; diff --git a/patches/ml64-safeseh b/patches/ml64-safeseh index d5c643f..34b0b5d 100644 --- a/patches/ml64-safeseh +++ b/patches/ml64-safeseh @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -233,6 +233,10 @@ +@@ -251,6 +251,10 @@ * src/prep_cif.c: Push stack space computation into src/x86/ffi.c for X86_ANY so return value space doesn't get added twice. diff --git a/patches/more-openbsd b/patches/more-openbsd index 1bf3e6e..61bcc57 100644 --- a/patches/more-openbsd +++ b/patches/more-openbsd @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -832,6 +832,11 @@ +@@ -850,6 +850,11 @@ * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. diff --git a/patches/msvcc-warning b/patches/msvcc-warning index c9d2691..876fe1b 100644 --- a/patches/msvcc-warning +++ b/patches/msvcc-warning @@ -55,7 +55,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -291,6 +291,11 @@ +@@ -309,6 +309,11 @@ * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. diff --git a/patches/powerpc-ffi-softfloat b/patches/powerpc-ffi-softfloat index 215a312..441c097 100644 --- a/patches/powerpc-ffi-softfloat +++ b/patches/powerpc-ffi-softfloat @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,12 @@ +@@ -59,6 +59,12 @@ * configure: Regenerate. diff --git a/patches/powerpc-sysv-without-string-ops b/patches/powerpc-sysv-without-string-ops index c647583..1748f56 100644 --- a/patches/powerpc-sysv-without-string-ops +++ b/patches/powerpc-sysv-without-string-ops @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,12 @@ +@@ -59,6 +59,12 @@ * configure: Regenerate. diff --git a/patches/ppc64-darwin b/patches/ppc64-darwin index f655ed9..37caa9c 100644 --- a/patches/ppc64-darwin +++ b/patches/ppc64-darwin @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,10 @@ +@@ -111,6 +111,10 @@ * configure: Regenerate. diff --git a/patches/remove-debug-code b/patches/remove-debug-code index 71990b8..49c6349 100644 --- a/patches/remove-debug-code +++ b/patches/remove-debug-code @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -65,6 +65,26 @@ +@@ -83,6 +83,26 @@ X 10.7. * configure: Rebuilt. diff --git a/patches/sparc-abi-check b/patches/sparc-abi-check index 1a3f19e..dfcb718 100644 --- a/patches/sparc-abi-check +++ b/patches/sparc-abi-check @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,11 @@ +@@ -111,6 +111,11 @@ * configure: Regenerate. diff --git a/patches/sparc-v8-aggregate-returns b/patches/sparc-v8-aggregate-returns index 87dfaf7..2e71dec 100644 --- a/patches/sparc-v8-aggregate-returns +++ b/patches/sparc-v8-aggregate-returns @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -93,6 +93,12 @@ +@@ -111,6 +111,12 @@ * configure: Regenerate. diff --git a/patches/stand-alone b/patches/stand-alone index 6c7aa8f..24db447 100644 --- a/patches/stand-alone +++ b/patches/stand-alone @@ -4094,7 +4094,7 @@ Index: libffi/configure ;; avr32*-*-*) -@@ -11450,7 +12171,7 @@ esac +@@ -11459,7 +12180,7 @@ esac if test $TARGETDIR = unknown; then @@ -4103,7 +4103,7 @@ Index: libffi/configure fi if test x$TARGET = xMIPS; then -@@ -11541,6 +12262,14 @@ else +@@ -11550,6 +12271,14 @@ else M68K_FALSE= fi @@ -4118,7 +4118,7 @@ Index: libffi/configure if test x$TARGET = xPOWERPC; then POWERPC_TRUE= POWERPC_FALSE='#' -@@ -11664,7 +12393,7 @@ fi +@@ -11673,7 +12402,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } @@ -4127,7 +4127,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -11777,7 +12506,7 @@ fi +@@ -11786,7 +12515,7 @@ fi for ac_func in memcpy do : ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy" @@ -4136,7 +4136,7 @@ Index: libffi/configure cat >>confdefs.h <<_ACEOF #define HAVE_MEMCPY 1 _ACEOF -@@ -11785,11 +12514,22 @@ _ACEOF +@@ -11794,11 +12523,22 @@ _ACEOF fi done @@ -4160,7 +4160,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -11822,7 +12562,7 @@ fi +@@ -11831,7 +12571,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } @@ -4169,7 +4169,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -11841,7 +12581,7 @@ else +@@ -11850,7 +12590,7 @@ else #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ @@ -4178,7 +4178,7 @@ Index: libffi/configure # endif # endif # endif -@@ -11885,7 +12625,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs +@@ -11894,7 +12634,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } @@ -4187,7 +4187,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -11912,8 +12652,7 @@ if test $ac_cv_os_cray = yes; then +@@ -11921,8 +12661,7 @@ if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -4197,7 +4197,7 @@ Index: libffi/configure cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func -@@ -11927,7 +12666,7 @@ fi +@@ -11936,7 +12675,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } @@ -4206,7 +4206,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : -@@ -11982,7 +12721,7 @@ fi +@@ -11991,7 +12730,7 @@ fi # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 $as_echo_n "checking size of double... " >&6; } @@ -4215,7 +4215,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : -@@ -11991,9 +12730,8 @@ else +@@ -12000,9 +12739,8 @@ else if test "$ac_cv_type_double" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -4227,7 +4227,7 @@ Index: libffi/configure else ac_cv_sizeof_double=0 fi -@@ -12016,7 +12754,7 @@ _ACEOF +@@ -12025,7 +12763,7 @@ _ACEOF # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 $as_echo_n "checking size of long double... " >&6; } @@ -4236,7 +4236,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : -@@ -12025,9 +12763,8 @@ else +@@ -12034,9 +12772,8 @@ else if test "$ac_cv_type_long_double" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -4248,7 +4248,7 @@ Index: libffi/configure else ac_cv_sizeof_long_double=0 fi -@@ -12061,7 +12798,7 @@ fi +@@ -12070,7 +12807,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } @@ -4257,7 +4257,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown -@@ -12279,14 +13016,14 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUI +@@ -12288,14 +13025,14 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUI ;; #( *) @@ -4274,7 +4274,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12322,7 +13059,7 @@ $as_echo "#define HAVE_AS_CFI_PSEUDO_OP +@@ -12331,7 +13068,7 @@ $as_echo "#define HAVE_AS_CFI_PSEUDO_OP if test x$TARGET = xSPARC; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5 $as_echo_n "checking assembler and linker support unaligned pc related relocs... " >&6; } @@ -4283,7 +4283,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12361,7 +13098,7 @@ $as_echo "#define HAVE_AS_SPARC_UA_PCREL +@@ -12370,7 +13107,7 @@ $as_echo "#define HAVE_AS_SPARC_UA_PCREL { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .register pseudo-op support" >&5 $as_echo_n "checking assembler .register pseudo-op support... " >&6; } @@ -4292,7 +4292,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12398,7 +13135,7 @@ fi +@@ -12407,7 +13144,7 @@ fi if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports pc related relocs" >&5 $as_echo_n "checking assembler supports pc related relocs... " >&6; } @@ -4301,7 +4301,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12419,7 +13156,7 @@ $as_echo "#define HAVE_AS_X86_PCREL 1" > +@@ -12428,7 +13165,7 @@ $as_echo "#define HAVE_AS_X86_PCREL 1" > { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .ascii pseudo-op support" >&5 $as_echo_n "checking assembler .ascii pseudo-op support... " >&6; } @@ -4310,7 +4310,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12454,7 +13191,7 @@ $as_echo "#define HAVE_AS_ASCII_PSEUDO_O +@@ -12463,7 +13200,7 @@ $as_echo "#define HAVE_AS_ASCII_PSEUDO_O { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .string pseudo-op support" >&5 $as_echo_n "checking assembler .string pseudo-op support... " >&6; } @@ -4319,7 +4319,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12499,7 +13236,7 @@ esac +@@ -12508,7 +13245,7 @@ esac if test x$TARGET = xX86_64; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports unwind section type" >&5 $as_echo_n "checking assembler supports unwind section type... " >&6; } @@ -4328,7 +4328,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12521,7 +13258,7 @@ fi +@@ -12530,7 +13267,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether .eh_frame section should be read-only" >&5 $as_echo_n "checking whether .eh_frame section should be read-only... " >&6; } @@ -4337,7 +4337,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12555,7 +13292,7 @@ fi +@@ -12564,7 +13301,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility(\"hidden\")))" >&5 $as_echo_n "checking for __attribute__((visibility(\"hidden\")))... " >&6; } @@ -4346,7 +4346,7 @@ Index: libffi/configure $as_echo_n "(cached) " >&6 else -@@ -12629,21 +13366,25 @@ $as_echo "#define USING_PURIFY 1" >>conf +@@ -12638,21 +13375,25 @@ $as_echo "#define USING_PURIFY 1" >>conf fi @@ -4385,7 +4385,7 @@ Index: libffi/configure if test "${multilib}" = "yes"; then multilib_arg="--enable-multilib" -@@ -12659,7 +13400,7 @@ ac_config_commands="$ac_config_commands +@@ -12668,7 +13409,7 @@ ac_config_commands="$ac_config_commands ac_config_links="$ac_config_links include/ffitarget.h:src/$TARGETDIR/ffitarget.h" @@ -4394,7 +4394,7 @@ Index: libffi/configure cat >confcache <<\_ACEOF -@@ -12726,10 +13467,21 @@ $as_echo "$as_me: WARNING: cache variabl +@@ -12735,10 +13476,21 @@ $as_echo "$as_me: WARNING: cache variabl :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then @@ -4418,7 +4418,7 @@ Index: libffi/configure else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} -@@ -12745,6 +13497,7 @@ DEFS=-DHAVE_CONFIG_H +@@ -12754,6 +13506,7 @@ DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= @@ -4426,7 +4426,7 @@ Index: libffi/configure for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' -@@ -12768,132 +13521,136 @@ else +@@ -12777,132 +13530,136 @@ else fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then @@ -4595,7 +4595,7 @@ Index: libffi/configure ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -@@ -12994,6 +13751,7 @@ fi +@@ -13003,6 +13760,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -4603,7 +4603,7 @@ Index: libffi/configure case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -@@ -13039,19 +13797,19 @@ export LANGUAGE +@@ -13048,19 +13806,19 @@ export LANGUAGE (unset CDPATH) >/dev/null 2>&1 && unset CDPATH @@ -4631,7 +4631,7 @@ Index: libffi/configure as_fn_exit $as_status } # as_fn_error -@@ -13247,7 +14005,7 @@ $as_echo X"$as_dir" | +@@ -13256,7 +14014,7 @@ $as_echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" @@ -4640,7 +4640,7 @@ Index: libffi/configure } # as_fn_mkdir_p -@@ -13300,8 +14058,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri +@@ -13309,8 +14067,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" @@ -4651,7 +4651,7 @@ Index: libffi/configure CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS -@@ -13342,6 +14100,7 @@ Usage: $0 [OPTION]... [TAG]... +@@ -13351,6 +14109,7 @@ Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit @@ -4659,7 +4659,7 @@ Index: libffi/configure -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files -@@ -13363,16 +14122,17 @@ $config_links +@@ -13372,16 +14131,17 @@ $config_links Configuration commands: $config_commands @@ -4682,7 +4682,7 @@ Index: libffi/configure This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -@@ -13390,11 +14150,16 @@ ac_need_defaults=: +@@ -13399,11 +14159,16 @@ ac_need_defaults=: while test $# != 0 do case $1 in @@ -4700,7 +4700,7 @@ Index: libffi/configure *) ac_option=$1 ac_optarg=$2 -@@ -13408,12 +14173,15 @@ do +@@ -13417,12 +14182,15 @@ do ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; @@ -4716,7 +4716,7 @@ Index: libffi/configure esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; -@@ -13426,7 +14194,7 @@ do +@@ -13435,7 +14203,7 @@ do ac_need_defaults=false;; --he | --h) # Conflict between --help and --header @@ -4725,7 +4725,7 @@ Index: libffi/configure Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -@@ -13435,7 +14203,7 @@ Try \`$0 --help' for more information."; +@@ -13444,7 +14212,7 @@ Try \`$0 --help' for more information."; ac_cs_silent=: ;; # This is an error. @@ -4734,7 +4734,7 @@ Index: libffi/configure Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" -@@ -13479,20 +14247,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ +@@ -13488,20 +14256,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ # # INIT-COMMANDS # @@ -4755,7 +4755,7 @@ Index: libffi/configure AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -@@ -13531,13 +14285,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ +@@ -13540,13 +14294,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' @@ -4776,7 +4776,7 @@ Index: libffi/configure STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -13552,14 +14313,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l +@@ -13561,14 +14322,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' @@ -4795,7 +4795,7 @@ Index: libffi/configure DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -13592,12 +14356,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod +@@ -13601,12 +14365,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' @@ -4809,7 +4809,7 @@ Index: libffi/configure file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -13652,8 +14416,13 @@ reload_flag \ +@@ -13661,8 +14425,13 @@ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ @@ -4823,7 +4823,7 @@ Index: libffi/configure STRIP \ RANLIB \ CC \ -@@ -13663,12 +14432,14 @@ lt_cv_sys_global_symbol_pipe \ +@@ -13672,12 +14441,14 @@ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ @@ -4839,7 +4839,7 @@ Index: libffi/configure DSYMUTIL \ NMEDIT \ LIPO \ -@@ -13684,7 +14455,6 @@ no_undefined_flag \ +@@ -13693,7 +14464,6 @@ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ @@ -4847,7 +4847,7 @@ Index: libffi/configure exclude_expsyms \ include_expsyms \ file_list_spec \ -@@ -13720,6 +14490,7 @@ module_cmds \ +@@ -13729,6 +14499,7 @@ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ @@ -4855,7 +4855,7 @@ Index: libffi/configure postinstall_cmds \ postuninstall_cmds \ finish_cmds \ -@@ -13765,7 +14536,6 @@ for ac_config_target in $ac_config_targe +@@ -13774,7 +14545,6 @@ for ac_config_target in $ac_config_targe do case $ac_config_target in "fficonfig.h") CONFIG_HEADERS="$CONFIG_HEADERS fficonfig.h" ;; @@ -4863,7 +4863,7 @@ Index: libffi/configure "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "include") CONFIG_COMMANDS="$CONFIG_COMMANDS include" ;; -@@ -13776,8 +14546,9 @@ do +@@ -13785,8 +14555,9 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; @@ -4874,7 +4874,7 @@ Index: libffi/configure esac done -@@ -13801,9 +14572,10 @@ fi +@@ -13810,9 +14581,10 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { @@ -4887,7 +4887,7 @@ Index: libffi/configure ' 0 trap 'as_fn_exit 1' 1 2 13 15 } -@@ -13811,12 +14583,13 @@ $debug || +@@ -13820,12 +14592,13 @@ $debug || { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && @@ -4903,7 +4903,7 @@ Index: libffi/configure # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. -@@ -13833,12 +14606,12 @@ if test "x$ac_cr" = x; then +@@ -13842,12 +14615,12 @@ if test "x$ac_cr" = x; then fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then @@ -4918,7 +4918,7 @@ Index: libffi/configure _ACEOF -@@ -13847,18 +14620,18 @@ _ACEOF +@@ -13856,18 +14629,18 @@ _ACEOF echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || @@ -4941,7 +4941,7 @@ Index: libffi/configure else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -@@ -13866,7 +14639,7 @@ done +@@ -13875,7 +14648,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -4950,7 +4950,7 @@ Index: libffi/configure _ACEOF sed -n ' h -@@ -13880,7 +14653,7 @@ s/'"$ac_delim"'$// +@@ -13889,7 +14662,7 @@ s/'"$ac_delim"'$// t delim :nl h @@ -4959,7 +4959,7 @@ Index: libffi/configure t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p -@@ -13894,7 +14667,7 @@ s/.\{148\}// +@@ -13903,7 +14676,7 @@ s/.\{148\}// t nl :delim h @@ -4968,7 +4968,7 @@ Index: libffi/configure t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p -@@ -13914,7 +14687,7 @@ t delim +@@ -13923,7 +14696,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK @@ -4977,7 +4977,7 @@ Index: libffi/configure for (key in S) S_is_set[key] = 1 FS = "" -@@ -13946,21 +14719,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/n +@@ -13955,21 +14728,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/n sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat @@ -5016,7 +5016,7 @@ Index: libffi/configure s/^[^=]*=[ ]*$// }' fi -@@ -13972,7 +14753,7 @@ fi # test -n "$CONFIG_FILES" +@@ -13981,7 +14762,7 @@ fi # test -n "$CONFIG_FILES" # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then @@ -5025,7 +5025,7 @@ Index: libffi/configure BEGIN { _ACEOF -@@ -13984,11 +14765,11 @@ _ACEOF +@@ -13993,11 +14774,11 @@ _ACEOF # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do @@ -5040,7 +5040,7 @@ Index: libffi/configure else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -@@ -14073,7 +14854,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ +@@ -14082,7 +14863,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -5049,7 +5049,7 @@ Index: libffi/configure fi # test -n "$CONFIG_HEADERS" -@@ -14086,7 +14867,7 @@ do +@@ -14095,7 +14876,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; @@ -5058,7 +5058,7 @@ Index: libffi/configure :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac -@@ -14105,7 +14886,7 @@ do +@@ -14114,7 +14895,7 @@ do for ac_f do case $ac_f in @@ -5067,7 +5067,7 @@ Index: libffi/configure *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. -@@ -14114,7 +14895,7 @@ do +@@ -14123,7 +14904,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || @@ -5076,7 +5076,7 @@ Index: libffi/configure esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" -@@ -14140,8 +14921,8 @@ $as_echo "$as_me: creating $ac_file" >&6 +@@ -14149,8 +14930,8 @@ $as_echo "$as_me: creating $ac_file" >&6 esac case $ac_tag in @@ -5087,7 +5087,7 @@ Index: libffi/configure esac ;; esac -@@ -14277,23 +15058,24 @@ s&@INSTALL@&$ac_INSTALL&;t t +@@ -14286,23 +15067,24 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " @@ -5122,7 +5122,7 @@ Index: libffi/configure ;; :H) # -@@ -14302,21 +15084,21 @@ which seems to be undefined. Please mak +@@ -14311,21 +15093,21 @@ which seems to be undefined. Please mak if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ @@ -5152,7 +5152,7 @@ Index: libffi/configure fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" -@@ -14370,19 +15152,19 @@ $as_echo X"$_am_arg" | +@@ -14379,19 +15161,19 @@ $as_echo X"$_am_arg" | $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then @@ -5175,7 +5175,7 @@ Index: libffi/configure fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -@@ -14392,14 +15174,6 @@ $as_echo "$as_me: executing $ac_file com +@@ -14401,14 +15183,6 @@ $as_echo "$as_me: executing $ac_file com case $ac_file$ac_mode in @@ -5190,7 +5190,7 @@ Index: libffi/configure "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval -@@ -14516,7 +15290,8 @@ $as_echo X"$file" | +@@ -14525,7 +15299,8 @@ $as_echo X"$file" | # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -5200,7 +5200,7 @@ Index: libffi/configure # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. -@@ -14619,19 +15394,42 @@ SP2NL=$lt_lt_SP2NL +@@ -14628,19 +15403,42 @@ SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP @@ -5244,7 +5244,7 @@ Index: libffi/configure # A symbol stripping program. STRIP=$lt_STRIP -@@ -14661,6 +15459,12 @@ global_symbol_to_c_name_address=$lt_lt_c +@@ -14670,6 +15468,12 @@ global_symbol_to_c_name_address=$lt_lt_c # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix @@ -5257,7 +5257,7 @@ Index: libffi/configure # The name of the directory that contains temporary libtool files. objdir=$objdir -@@ -14670,6 +15474,9 @@ MAGIC_CMD=$MAGIC_CMD +@@ -14679,6 +15483,9 @@ MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks @@ -5267,7 +5267,7 @@ Index: libffi/configure # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL -@@ -14784,12 +15591,12 @@ with_gcc=$GCC +@@ -14793,12 +15600,12 @@ with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag @@ -5283,7 +5283,7 @@ Index: libffi/configure # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static -@@ -14876,9 +15683,6 @@ inherit_rpath=$inherit_rpath +@@ -14885,9 +15692,6 @@ inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs @@ -5293,7 +5293,7 @@ Index: libffi/configure # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols -@@ -14894,6 +15698,9 @@ include_expsyms=$lt_include_expsyms +@@ -14903,6 +15707,9 @@ include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds @@ -5303,7 +5303,7 @@ Index: libffi/configure # Specify filename containing input files. file_list_spec=$lt_file_list_spec -@@ -14926,210 +15733,169 @@ ltmain="$ac_aux_dir/ltmain.sh" +@@ -14935,210 +15742,169 @@ ltmain="$ac_aux_dir/ltmain.sh" # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? @@ -5674,7 +5674,7 @@ Index: libffi/configure (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" -@@ -15149,7 +15915,7 @@ _ACEOF +@@ -15158,7 +15924,7 @@ _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || @@ -5683,7 +5683,7 @@ Index: libffi/configure # configure is writing to config.log, and then calls config.status. -@@ -15170,7 +15936,7 @@ if test "$no_create" != yes; then +@@ -15179,7 +15945,7 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. @@ -5739,7 +5739,7 @@ Index: libffi/configure.ac ;; avr32*-*-*) -@@ -195,6 +199,7 @@ AM_CONDITIONAL(ALPHA, test x$TARGET = xA +@@ -204,6 +208,7 @@ AM_CONDITIONAL(ALPHA, test x$TARGET = xA AM_CONDITIONAL(IA64, test x$TARGET = xIA64) AM_CONDITIONAL(M32R, test x$TARGET = xM32R) AM_CONDITIONAL(M68K, test x$TARGET = xM68K) @@ -5747,7 +5747,7 @@ Index: libffi/configure.ac AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC) AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX) AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN) -@@ -414,21 +419,25 @@ AC_ARG_ENABLE(purify-safety, +@@ -423,21 +428,25 @@ AC_ARG_ENABLE(purify-safety, AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.]) fi) @@ -5787,7 +5787,7 @@ Index: libffi/configure.ac if test "${multilib}" = "yes"; then multilib_arg="--enable-multilib" -@@ -444,6 +453,6 @@ test -d src/$TARGETDIR || mkdir src/$TAR +@@ -453,6 +462,6 @@ test -d src/$TARGETDIR || mkdir src/$TAR AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h) diff --git a/patches/stdcall-x86-closure-fix b/patches/stdcall-x86-closure-fix index 7f7eae8..159d51f 100644 --- a/patches/stdcall-x86-closure-fix +++ b/patches/stdcall-x86-closure-fix @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -225,6 +225,14 @@ +@@ -243,6 +243,14 @@ * testsuite/libffi.call/cls_longdouble.c: Likewise. * testsuite/libffi.call/huge_struct.c: Likewise. @@ -21,7 +21,7 @@ Index: libffi/src/prep_cif.c =================================================================== --- libffi.orig/src/prep_cif.c +++ libffi/src/prep_cif.c -@@ -110,7 +110,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff +@@ -116,7 +116,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff FFI_ASSERT_VALID_TYPE(cif->rtype); /* x86, x86-64 and s390 stack space allocation is handled in prep_machdep. */ @@ -30,7 +30,7 @@ Index: libffi/src/prep_cif.c /* Make space for the return structure pointer */ if (cif->rtype->type == FFI_TYPE_STRUCT #ifdef SPARC -@@ -131,7 +131,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff +@@ -137,7 +137,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff check after the initialization. */ FFI_ASSERT_VALID_TYPE(*ptr); diff --git a/patches/unlikely b/patches/unlikely index b4f6ac8..a4b24d0 100644 --- a/patches/unlikely +++ b/patches/unlikely @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -17,6 +17,11 @@ +@@ -35,6 +35,11 @@ * testsuite/libffi.call/struct1_win32.c: New test. * testsuite/libffi.call/struct2_win32.c: New test. diff --git a/patches/variadic b/patches/variadic index d3e09bc..745fc58 100644 --- a/patches/variadic +++ b/patches/variadic @@ -265,7 +265,7 @@ Index: libffi/src/prep_cif.c =================================================================== --- libffi.orig/src/prep_cif.c +++ libffi/src/prep_cif.c -@@ -90,20 +90,33 @@ static ffi_status initialize_aggregate(f +@@ -90,14 +90,27 @@ static ffi_status initialize_aggregate(f /* Perform machine independent ffi_cif preparation, then call machine dependent routine. */ @@ -292,8 +292,10 @@ Index: libffi/src/prep_cif.c + FFI_ASSERT((!isvariadic) || (nfixedargs >= 1)); + FFI_ASSERT(nfixedargs <= ntotalargs); + - if (! (abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI)) + #ifndef X86_WIN32 + if ((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)) return FFI_BAD_ABI; +@@ -108,7 +121,7 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff cif->abi = abi; cif->arg_types = atypes; @@ -302,7 +304,7 @@ Index: libffi/src/prep_cif.c cif->rtype = rtype; cif->flags = 0; -@@ -159,10 +172,31 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff +@@ -164,10 +177,31 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ff cif->bytes = bytes; /* Perform machine dependent cif processing */ @@ -572,7 +574,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,17 @@ +@@ -59,6 +59,17 @@ * configure: Regenerate. diff --git a/patches/win64-struct-args b/patches/win64-struct-args index faf6a99..b521ac8 100644 --- a/patches/win64-struct-args +++ b/patches/win64-struct-args @@ -51,7 +51,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -262,6 +262,14 @@ +@@ -280,6 +280,14 @@ * fficonfig.h.in: Regenerate. * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error. diff --git a/patches/win64-underscore b/patches/win64-underscore index 1193663..12b714b 100644 --- a/patches/win64-underscore +++ b/patches/win64-underscore @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -158,6 +158,13 @@ +@@ -176,6 +176,13 @@ (.eh_frame): Use FDE_ENCODING. (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE. @@ -20,7 +20,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -315,6 +315,13 @@ if test x$TARGET = xX86 || test x$TARGET +@@ -324,6 +324,13 @@ if test x$TARGET = xX86 || test x$TARGET fi fi @@ -924,7 +924,7 @@ Index: libffi/configure HAVE_LONG_DOUBLE ALLOCA PA64_HPUX_FALSE -@@ -13230,6 +13231,61 @@ $as_echo "#define HAVE_AS_STRING_PSEUDO_ +@@ -13239,6 +13240,61 @@ $as_echo "#define HAVE_AS_STRING_PSEUDO_ fi fi diff --git a/patches/windows-ce-arm b/patches/windows-ce-arm index 486d8ce..e786893 100644 --- a/patches/windows-ce-arm +++ b/patches/windows-ce-arm @@ -50,7 +50,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -41,6 +41,11 @@ +@@ -59,6 +59,11 @@ * configure: Regenerate. diff --git a/patches/x86_pcrel_test b/patches/x86_pcrel_test index ccaaa68..519a07e 100644 --- a/patches/x86_pcrel_test +++ b/patches/x86_pcrel_test @@ -2,7 +2,7 @@ Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog -@@ -100,6 +100,11 @@ +@@ -118,6 +118,11 @@ uintptr_t first. * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise. @@ -18,7 +18,7 @@ Index: libffi/configure =================================================================== --- libffi.orig/configure +++ libffi/configure -@@ -13146,10 +13146,10 @@ if ${libffi_cv_as_x86_pcrel+:} false; th +@@ -13155,10 +13155,10 @@ if ${libffi_cv_as_x86_pcrel+:} false; th $as_echo_n "(cached) " >&6 else @@ -36,7 +36,7 @@ Index: libffi/configure.ac =================================================================== --- libffi.orig/configure.ac +++ libffi/configure.ac -@@ -277,10 +277,10 @@ fi +@@ -286,10 +286,10 @@ fi if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then AC_CACHE_CHECK([assembler supports pc related relocs], libffi_cv_as_x86_pcrel, [ diff --git a/src/prep_cif.c b/src/prep_cif.c index 0e2e116..cc2fb74 100644 --- a/src/prep_cif.c +++ b/src/prep_cif.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------- - prep_cif.c - Copyright (c) 2011 Anthony Green + prep_cif.c - Copyright (c) 2011, 2012 Anthony Green Copyright (c) 1996, 1998, 2007 Red Hat, Inc. Permission is hereby granted, free of charge, to any person obtaining @@ -111,8 +111,13 @@ ffi_status FFI_HIDDEN ffi_prep_cif_core(ffi_cif *cif, ffi_abi abi, FFI_ASSERT((!isvariadic) || (nfixedargs >= 1)); FFI_ASSERT(nfixedargs <= ntotalargs); - if (! (abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI)) +#ifndef X86_WIN32 + if ((abi > FFI_FIRST_ABI) && (abi <= FFI_DEFAULT_ABI)) return FFI_BAD_ABI; +#else + if (abi > FFI_FIRST_ABI && abi < FFI_LAST_ABI || abi == FFI_THISCALL) + return FFI_BAD_ABI; +#endif cif->abi = abi; cif->arg_types = atypes; diff --git a/src/x86/ffi.c b/src/x86/ffi.c index c5f962c..9343c26 100644 --- a/src/x86/ffi.c +++ b/src/x86/ffi.c @@ -428,6 +428,8 @@ void FFI_HIDDEN ffi_closure_raw_SYSV (ffi_raw_closure *) #ifdef X86_WIN32 void FFI_HIDDEN ffi_closure_STDCALL (ffi_closure *) __attribute__ ((regparm(1))); +void FFI_HIDDEN ffi_closure_THISCALL (ffi_closure *) + __attribute__ ((regparm(1))); #endif #ifdef X86_WIN64 void FFI_HIDDEN ffi_closure_win64 (ffi_closure *); @@ -587,6 +589,33 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void **avalue, *(unsigned int*) &__tramp[6] = __dis; /* jmp __fun */ \ } +#define FFI_INIT_TRAMPOLINE_THISCALL(TRAMP,FUN,CTX,SIZE) \ +{ unsigned char *__tramp = (unsigned char*)(TRAMP); \ + unsigned int __fun = (unsigned int)(FUN); \ + unsigned int __ctx = (unsigned int)(CTX); \ + unsigned int __dis = __fun - (__ctx + 22); \ + unsigned short __size = (unsigned short)(SIZE); \ + *(unsigned int *) &__tramp[0] = 0x8324048b; /* mov (%esp), %eax */ \ + *(unsigned int *) &__tramp[4] = 0x4c890cec; /* sub $12, %esp */ \ + *(unsigned int *) &__tramp[8] = 0x04890424; /* mov %ecx, 4(%esp) */ \ + *(unsigned char*) &__tramp[12] = 0x24; /* mov %eax, (%esp) */ \ + *(unsigned char*) &__tramp[13] = 0xb8; \ + *(unsigned int *) &__tramp[14] = __size; /* mov __size, %eax */ \ + *(unsigned int *) &__tramp[18] = 0x08244c8d; /* lea 8(%esp), %ecx */ \ + *(unsigned int *) &__tramp[22] = 0x4802e8c1; /* shr $2, %eax ; dec %eax */ \ + *(unsigned short*) &__tramp[26] = 0x0b74; /* jz 1f */ \ + *(unsigned int *) &__tramp[28] = 0x8908518b; /* 2b: mov 8(%ecx), %edx */ \ + *(unsigned int *) &__tramp[32] = 0x04c18311; /* mov %edx, (%ecx) ; add $4, %ecx */ \ + *(unsigned char*) &__tramp[36] = 0x48; /* dec %eax */ \ + *(unsigned short*) &__tramp[37] = 0xf575; /* jnz 2b ; 1f: */ \ + *(unsigned char*) &__tramp[39] = 0xb8; \ + *(unsigned int*) &__tramp[40] = __ctx; /* movl __ctx, %eax */ \ + *(unsigned char *) &__tramp[44] = 0xe8; \ + *(unsigned int*) &__tramp[45] = __dis; /* call __fun */ \ + *(unsigned char*) &__tramp[49] = 0xc2; /* ret */ \ + *(unsigned short*) &__tramp[50] = (__size + 8); /* ret (__size + 8) */ \ + } + #define FFI_INIT_TRAMPOLINE_STDCALL(TRAMP,FUN,CTX,SIZE) \ { unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ @@ -629,6 +658,13 @@ ffi_prep_closure_loc (ffi_closure* closure, (void*)codeloc); } #ifdef X86_WIN32 + else if (cif->abi == FFI_THISCALL) + { + FFI_INIT_TRAMPOLINE_THISCALL (&closure->tramp[0], + &ffi_closure_THISCALL, + (void*)codeloc, + cif->bytes); + } else if (cif->abi == FFI_STDCALL) { FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0], diff --git a/src/x86/ffitarget.h b/src/x86/ffitarget.h index cfda21c..7c2b588 100644 --- a/src/x86/ffitarget.h +++ b/src/x86/ffitarget.h @@ -105,7 +105,7 @@ typedef enum ffi_abi { #define FFI_NATIVE_RAW_API 0 #else #ifdef X86_WIN32 -#define FFI_TRAMPOLINE_SIZE 13 +#define FFI_TRAMPOLINE_SIZE 52 #else #ifdef X86_WIN64 #define FFI_TRAMPOLINE_SIZE 29 diff --git a/src/x86/win32.S b/src/x86/win32.S index e472d62..e5c93ecf 100644 --- a/src/x86/win32.S +++ b/src/x86/win32.S @@ -170,6 +170,16 @@ ca_epilogue: ret ffi_call_win32 ENDP +ffi_closure_THISCALL PROC NEAR FORCEFRAME + push ebp + mov ebp, esp + sub esp, 40 + lea edx, [ebp -24] + mov [ebp - 12], edx /* resp */ + lea edx, [ebp + 12] /* account for stub return address on stack */ + jmp stub +ffi_closure_THISCALL ENDP + ffi_closure_SYSV PROC NEAR FORCEFRAME ;; the ffi_closure ctx is passed in eax by the trampoline. @@ -177,6 +187,7 @@ ffi_closure_SYSV PROC NEAR FORCEFRAME lea edx, [ebp - 24] mov [ebp - 12], edx ;; resp lea edx, [ebp + 8] +stub: mov [esp + 8], edx ;; args lea edx, [ebp - 12] mov [esp + 4], edx ;; &resp @@ -573,6 +584,19 @@ _ffi_call_win32: popl %ebp ret .ffi_call_win32_end: + .balign 16 + .globl _ffi_closure_THISCALL +#ifndef __OS2__ + .def _ffi_closure_THISCALL; .scl 2; .type 32; .endef +#endif +_ffi_closure_THISCALL: + pushl %ebp + movl %esp, %ebp + subl $40, %esp + leal -24(%ebp), %edx + movl %edx, -12(%ebp) /* resp */ + leal 12(%ebp), %edx /* account for stub return address on stack */ + jmp .stub .LFE1: # This assumes we are using gas. @@ -591,6 +615,7 @@ _ffi_closure_SYSV: leal -24(%ebp), %edx movl %edx, -12(%ebp) /* resp */ leal 8(%ebp), %edx +.stub: movl %edx, 4(%esp) /* args = __builtin_dwarf_cfa () */ leal -12(%ebp), %edx movl %edx, (%esp) /* &resp */ diff --git a/testsuite/libffi.call/closure_thiscall.c b/testsuite/libffi.call/closure_thiscall.c new file mode 100644 index 0000000..6c46f35 --- /dev/null +++ b/testsuite/libffi.call/closure_thiscall.c @@ -0,0 +1,64 @@ +/* Area: closure_call (thiscall convention) + Purpose: Check handling when caller expects thiscall callee + Limitations: none. + PR: none. + Originator: */ + +/* { dg-do run { target i?86-*-cygwin* i?86-*-mingw* } } */ +#include "ffitest.h" + +static void +closure_test_thiscall(ffi_cif* cif __UNUSED__, void* resp, void** args, + void* userdata) +{ + *(ffi_arg*)resp = + (int)*(int *)args[0] + (int)(*(int *)args[1]) + + (int)(*(int *)args[2]) + (int)(*(int *)args[3]) + + (int)(intptr_t)userdata; + + printf("%d %d %d %d: %d\n", + (int)*(int *)args[0], (int)(*(int *)args[1]), + (int)(*(int *)args[2]), (int)(*(int *)args[3]), + (int)*(ffi_arg *)resp); + +} + +typedef int (__thiscall *closure_test_type0)(int, int, int, int); + +int main (void) +{ + ffi_cif cif; + void *code; + ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code); + ffi_type * cl_arg_types[17]; + int res; + void* sp_pre; + void* sp_post; + char buf[1024]; + + cl_arg_types[0] = &ffi_type_uint; + cl_arg_types[1] = &ffi_type_uint; + cl_arg_types[2] = &ffi_type_uint; + cl_arg_types[3] = &ffi_type_uint; + cl_arg_types[4] = NULL; + + /* Initialize the cif */ + CHECK(ffi_prep_cif(&cif, FFI_THISCALL, 4, + &ffi_type_sint, cl_arg_types) == FFI_OK); + + CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_thiscall, + (void *) 3 /* userdata */, code) == FFI_OK); + + asm volatile (" movl %%esp,%0" : "=g" (sp_pre)); + res = (*(closure_test_type0)code)(0, 1, 2, 3); + asm volatile (" movl %%esp,%0" : "=g" (sp_post)); + /* { dg-output "0 1 2 3: 9" } */ + + printf("res: %d\n",res); + /* { dg-output "\nres: 9" } */ + + sprintf(buf, "mismatch: pre=%p vs post=%p", sp_pre, sp_post); + printf("stack pointer %s\n", (sp_pre == sp_post ? "match" : buf)); + /* { dg-output "\nstack pointer match" } */ + exit(0); +} -- 2.7.4