commit 4c56ad36ee0d1f8b6f1b2bc0d8fff1c9acd1a389
Author: Thomas Miedema <thomasmiedema@gmail.com>
Date:   Mon Jan 4 18:29:49 2016 +0100

    Build system: delete ghc-pwd
    
    On Windows, with msys2, `pwd` works (as can be seen by the use of `pwd`
    that slipped into the validate script), so there is really no need for
    `ghc-pwd` anymore.
    
    Test Plan: try it
    
    Reviewers: austin, bgamari, Phyx
    
    Reviewed By: Phyx
    
    Subscribers: Phyx, erikd
    
    Differential Revision: https://phabricator.haskell.org/D1731

diff --git a/aclocal.m4 b/aclocal.m4
index 8e97726..0c93de4 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1737,33 +1737,9 @@ AC_DEFUN([FP_CURSES],
 # Calculate absolute path to build tree
 # --------------------------------------------------------------
 
-AC_DEFUN([FP_INTREE_GHC_PWD],[
-AC_MSG_NOTICE(Building in-tree ghc-pwd)
-    dnl This would be
-    dnl     make -C utils/ghc-pwd clean && make -C utils/ghc-pwd
-    dnl except we don't want to have to know what make is called. Sigh.
-    rm -rf utils/ghc-pwd/dist-boot
-    mkdir  utils/ghc-pwd/dist-boot
-    dnl If special linker flags are needed to build things, then allow
-    dnl the user to pass them in via LDFLAGS.
-    changequote(, )dnl
-    GHC_LDFLAGS=`perl -e 'foreach (@ARGV) { print "-optl$_ " }' -- $LDFLAGS`
-    changequote([, ])dnl
-    if ! "$WithGhc" $GHC_LDFLAGS -v0 -no-user-$GHC_PACKAGE_DB_FLAG -hidir utils/ghc-pwd/dist-boot -odir utils/ghc-pwd/dist-boot -stubdir utils/ghc-pwd/dist-boot --make utils/ghc-pwd/Main.hs -o utils/ghc-pwd/dist-boot/ghc-pwd
-    then
-        AC_MSG_ERROR([Building ghc-pwd failed])
-    fi
-
-    GHC_PWD=utils/ghc-pwd/dist-boot/ghc-pwd
-])
-
-AC_DEFUN([FP_BINDIST_GHC_PWD],[
-    GHC_PWD=utils/ghc-pwd/dist-install/build/tmp/ghc-pwd-bindist
-])
-
 AC_DEFUN([FP_FIND_ROOT],[
 AC_MSG_CHECKING(for path to top of build tree)
-    hardtop=`$GHC_PWD`
+    hardtop=`pwd`
 
     dnl Remove common automounter nonsense
     hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|'`
diff --git a/configure.ac b/configure.ac
index 042b417..ab82bb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,6 +26,8 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [8.1], [glasgow-haske
 # checkout), then we ship a file 'VERSION' containing the full version
 # when the source distribution was created.
 
+FP_FIND_ROOT
+
 if test ! -f mk/config.h.in; then
    echo "mk/config.h.in doesn't exist: perhaps you haven't run 'perl boot'?"
    exit 1
@@ -258,10 +260,6 @@ AC_ARG_WITH(hc,
 )
 AC_SUBST(WithHc)
 
-# This uses GHC, so put it after the "GHC is required" check above:
-FP_INTREE_GHC_PWD
-FP_FIND_ROOT
-
 fail() {
     echo >&2
     echo "$1" >&2
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index 0f68a52..4d57cd8 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -6,7 +6,6 @@ dnl
 
 AC_INIT([The Glorious Glasgow Haskell Compilation System], [@ProjectVersion@], [glasgow-haskell-bugs@haskell.org], [ghc])
 
-FP_BINDIST_GHC_PWD
 FP_FIND_ROOT
 
 dnl--------------------------------------------------------------------
diff --git a/ghc.mk b/ghc.mk
index ba708a1..3ccc496 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -516,7 +516,6 @@ $(foreach pkg,$(PACKAGES_STAGE1),$(eval $(call fixed_pkg_dep,$(pkg),dist-install
 # the stage1 packages, so we have to make sure those packages get configured
 # and registered before we can start with these. Note that they don't depend on
 # eachother, so we can configure them in parallel.
-utils/ghc-pwd/dist-install/package-data.mk: $(fixed_pkg_prev)
 utils/ghc-cabal/dist-install/package-data.mk: $(fixed_pkg_prev)
 utils/hpc/dist-install/package-data.mk: $(fixed_pkg_prev)
 utils/ghc-pkg/dist-install/package-data.mk: $(fixed_pkg_prev)
@@ -660,7 +659,6 @@ BUILD_DIRS += utils/testremove
 BUILD_DIRS += utils/ghctags
 BUILD_DIRS += utils/check-api-annotations
 BUILD_DIRS += utils/dll-split
-BUILD_DIRS += utils/ghc-pwd
 BUILD_DIRS += utils/ghc-cabal
 BUILD_DIRS += utils/hpc
 BUILD_DIRS += utils/runghc
@@ -1020,7 +1018,6 @@ $(eval $(call bindist-list,.,\
     mk/config.mk.in \
     $(INPLACE_BIN)/mkdirhier \
     utils/ghc-cabal/dist-install/build/tmp/ghc-cabal \
-    utils/ghc-pwd/dist-install/build/tmp/ghc-pwd \
     $(BINDIST_WRAPPERS) \
     $(BINDIST_PERL_SOURCES) \
     $(BINDIST_LIBS) \
@@ -1366,9 +1363,6 @@ distclean : clean
 # Internal files generated by ./configure for itself.
 	$(call removeFiles,config.cache config.status config.log)
 
-# ./configure build ghc-pwd in utils/ghc-pwd/dist-boot, so clean it up.
-	$(call removeTrees,utils/ghc-pwd/dist-boot)
-
 # The root Makefile makes .old versions of some files that configure
 # generates, so we clean those too.
 	$(call removeFiles,mk/config.mk.old)
diff --git a/utils/ghc-pwd/Main.hs b/utils/ghc-pwd/Main.hs
deleted file mode 100644
index 91a5606..0000000
--- a/utils/ghc-pwd/Main.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-
-module Main where
-
-import System.Directory
-import System.Environment
-import System.Exit
-import System.IO
-
-main :: IO ()
-main = do
-    args <- getArgs
-    case args of
-        [] -> do d <- getCurrentDirectory
-                 putStr $ map forwardifySlashes d
-        _ -> do hPutStrLn stderr ("Bad args: " ++ show args)
-                hPutStrLn stderr "Usage: ghc-pwd"
-                exitFailure
-
-forwardifySlashes :: Char -> Char
-forwardifySlashes '\\' = '/'
-forwardifySlashes c = c
-
diff --git a/utils/ghc-pwd/Setup.hs b/utils/ghc-pwd/Setup.hs
deleted file mode 100644
index 9a994af..0000000
--- a/utils/ghc-pwd/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/utils/ghc-pwd/ghc.mk b/utils/ghc-pwd/ghc.mk
deleted file mode 100644
index ac6bc76..0000000
--- a/utils/ghc-pwd/ghc.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-
-utils/ghc-pwd_USES_CABAL = YES
-utils/ghc-pwd_PACKAGE    = ghc-pwd
-utils/ghc-pwd_dist-install_INSTALL_INPLACE = YES
-utils/ghc-pwd_dist-install_WANT_BINDIST_WRAPPER = YES
-utils/ghc-pwd_dist-install_PROGNAME = ghc-pwd
-
-$(eval $(call build-prog,utils/ghc-pwd,dist-install,1))
-
