diff --git a/build-cabal.sh b/build-cabal.sh
index e0b07649091b6ccc07bff4c615fd2427d6c2a03a..47c42f11725076fe4c3d44999320e31ae777fe7c 100755
--- a/build-cabal.sh
+++ b/build-cabal.sh
@@ -3,5 +3,8 @@
 set -e
 out=_cabal_out
 dir=libraries/Cabal/Cabal
-time _build/stage1/bin/ghc -O -hidir $out -odir $out -i$dir $dir/Setup.hs +RTS -s -RTS $@
+if [[ -z "$GHC" ]]; then
+  GHC="_build/stage1/bin/ghc"
+fi
+time $GHC -O -hidir $out -odir $out -i$dir $dir/Setup.hs +RTS -s -RTS $@
 rm -R $out
diff --git a/default.nix b/default.nix
index 64580a0dd71855a552ea741dd15b4d35b683c2ef..650e5a3cb65e04ed3232e32853ecf123f93ce358 100644
--- a/default.nix
+++ b/default.nix
@@ -30,6 +30,7 @@ let
           --prefix PATH : ${haskellPackages.fast-tags}/bin
         makeWrapper ${./diff-submodules.py} $out/bin/diff-submodules \
           --prefix PATH : ${python3}/bin
+        makeWrapper ${./build-cabal.sh} $out/bin/build-cabal
 
         makeWrapper ${./rts_stats.py} $out/bin/rts-stats
         makeWrapper ${./ghc_perf.py} $out/bin/ghc-perf