Index: ghc-7.0.3/rts/ghc.mk
===================================================================
--- ghc-7.0.3.orig/rts/ghc.mk	2011-04-09 17:12:53.000000000 +0530
+++ ghc-7.0.3/rts/ghc.mk	2011-04-09 17:12:55.000000000 +0530
@@ -457,15 +457,13 @@
 
 $(eval $(call build-dependencies,rts,dist,1))
 
-$(rts_dist_depfile_c_asm) : libffi/dist-install/build/ffi.h $(DTRACEPROBES_H)
-
 #-----------------------------------------------------------------------------
 # libffi stuff
 
-rts_CC_OPTS     += -Ilibffi/build/include
-rts_HC_OPTS     += -Ilibffi/build/include
-rts_HSC2HS_OPTS += -Ilibffi/build/include
-rts_LD_OPTS     += -Llibffi/build/include
+rts_CC_OPTS     += $(shell pkg-config --cflags libffi)
+rts_HC_OPTS     += $(shell pkg-config --cflags libffi)
+rts_HSC2HS_OPTS += $(shell pkg-config --cflags libffi)
+rts_LD_OPTS     += $(shell pkg-config --libs libffi)
 
 # -----------------------------------------------------------------------------
 # compile dtrace probes if dtrace is supported
Index: ghc-7.0.3/rts/package.conf.in
===================================================================
--- ghc-7.0.3.orig/rts/package.conf.in	2011-04-09 17:12:53.000000000 +0530
+++ ghc-7.0.3/rts/package.conf.in	2011-04-09 17:12:55.000000000 +0530
@@ -24,8 +24,9 @@
 hs-libraries:   "HSrts"
 
 extra-libraries:
+				"ffi"
 #ifdef HAVE_LIBM
-                		"m"		/* for ldexp() */
+			      , "m"		/* for ldexp() */
 #endif
 #ifdef HAVE_LIBRT
 			      , "rt"
@@ -55,7 +56,6 @@
 #endif
 
 includes:		Stg.h
-depends:	 	builtin_ffi
 hugs-options:
 cc-options:
 
Index: ghc-7.0.3/ghc.mk
===================================================================
--- ghc-7.0.3.orig/ghc.mk	2011-04-09 17:12:53.000000000 +0530
+++ ghc-7.0.3/ghc.mk	2011-04-09 17:12:55.000000000 +0530
@@ -439,7 +439,6 @@
 # add the final two package.conf dependencies: ghc-prim depends on RTS,
 # and RTS depends on libffi.
 libraries/ghc-prim/dist-install/package-data.mk : rts/package.conf.inplace
-rts/package.conf.inplace : libffi/package.conf.inplace
 endif
 
 # --------------------------------
@@ -454,11 +453,6 @@
 endif
 BOOT_LIBS = $(foreach lib,$(STAGE0_PACKAGES),$(libraries/$(lib)_dist-boot_v_LIB))
 
-OTHER_LIBS = libffi/dist-install/build/libHSffi$(v_libsuf) libffi/dist-install/build/HSffi.o
-ifeq "$(BuildSharedLibs)" "YES"
-OTHER_LIBS  += libffi/dist-install/build/libHSffi$(dyn_libsuf)
-endif
-
 # ----------------------------------------
 # Special magic for the ghc-prim package
 
@@ -583,7 +577,6 @@
    driver/ghci \
    driver/ghc \
    driver/haddock \
-   libffi \
    includes \
    rts
 
@@ -941,11 +934,10 @@
 
 # Now we can do the installation
 install_packages: install_libexecs
-install_packages: libffi/package.conf.install rts/package.conf.install
+install_packages: rts/package.conf.install
 	$(call INSTALL_DIR,"$(DESTDIR)$(topdir)")
 	"$(RM)" $(RM_OPTS_REC) "$(INSTALLED_PACKAGE_CONF)"
 	$(call INSTALL_DIR,"$(INSTALLED_PACKAGE_CONF)")
-	"$(INSTALLED_GHC_PKG_REAL)" --force --global-conf "$(INSTALLED_PACKAGE_CONF)" update libffi/package.conf.install
 	"$(INSTALLED_GHC_PKG_REAL)" --force --global-conf "$(INSTALLED_PACKAGE_CONF)" update rts/package.conf.install
 	$(foreach p, $(INSTALLED_PKG_DIRS),                           \
 	    $(call make-command,                                      \
@@ -1027,7 +1019,7 @@
 unix-binary-dist-prep:
 	"$(RM)" $(RM_OPTS_REC) bindistprep/
 	"$(MKDIRHIER)" $(BIN_DIST_PREP_DIR)
-	set -e; for i in packages LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done
+	set -e; for i in packages LICENSE compiler ghc rts libraries utils docs includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done
 	echo "HADDOCK_DOCS       = $(HADDOCK_DOCS)"       >> $(BIN_DIST_MK)
 	echo "LATEX_DOCS         = $(LATEX_DOCS)"         >> $(BIN_DIST_MK)
 	echo "BUILD_DOCBOOK_HTML = $(BUILD_DOCBOOK_HTML)" >> $(BIN_DIST_MK)
@@ -1106,7 +1098,7 @@
 #
 # Files to include in source distributions
 #
-SRC_DIST_DIRS = mk rules docs distrib bindisttest libffi includes utils docs rts compiler ghc driver libraries ghc-tarballs
+SRC_DIST_DIRS = mk rules docs distrib bindisttest includes utils docs rts compiler ghc driver libraries ghc-tarballs
 SRC_DIST_FILES += \
 	configure.ac config.guess config.sub configure \
 	aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \
