+diff -Nur libffi-3.0.6/Makefile.am build/Makefile.am
+--- libffi-3.0.6/Makefile.am 2008-02-21 13:36:18.000000000 +0000
++++ build/Makefile.am 2009-01-23 17:56:09.000000000 +0000
+@@ -165,7 +165,7 @@
+
+ AM_CFLAGS = -Wall -g -fexceptions
+
+-libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
++libffi_la_LDFLAGS = $(LIBFFI_LDFLAGS) -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+
+ AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
+ AM_CCASFLAGS = $(AM_CPPFLAGS)
+diff -Nur libffi-3.0.6/configure.ac build/configure.ac
+--- libffi-3.0.6/configure.ac 2008-07-17 13:57:33.000000000 +0100
++++ build/configure.ac 2009-01-23 17:56:09.000000000 +0000
+@@ -26,6 +26,20 @@
+
+ AM_PROG_AS
+ AM_PROG_CC_C_O
++
++AC_LIBTOOL_WIN32_DLL
++AC_SUBST(LIBFFI_DLL,0)
++
++case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ if test "$enable_shared" = yes; then
++ LIBFFI_LDFLAGS="-no-undefined -Wl,--export-all-symbols"
++ LIBFFI_DLL=1
++ fi
++ ;;
++esac
++AC_SUBST(LIBFFI_LDFLAGS)
++
+ AC_PROG_LIBTOOL
+
+ AM_MAINTAINER_MODE
+diff -Nur libffi-3.0.6/include/ffi.h.in build/include/ffi.h.in
+--- libffi-3.0.6/include/ffi.h.in 2008-04-03 19:57:34.000000000 +0100
++++ build/include/ffi.h.in 2009-01-23 17:56:09.000000000 +0000