diff --git a/README.rst b/README.rst
index 6b33b91497a9e76c9ff6f3167b59ab3688d97d0f..6befc89f41ae60994a5e7032820601977c75a99d 100644
--- a/README.rst
+++ b/README.rst
@@ -12,4 +12,4 @@ Build with:
 
 .. code::
 
-   cabal new-build -w /path/to/ghc/HEAD/_build/stage1/bin/ghc
+   cabal build -w /path/to/ghc/HEAD/_build/stage1/bin/ghc
diff --git a/ghc-api-compat.cabal b/ghc-api-compat.cabal
index 636f93867e0041a0d35eab7c73cc029f9ca302a8..f24cd2abd1a3b52fc72cda966c746aa02b03a3e1 100644
--- a/ghc-api-compat.cabal
+++ b/ghc-api-compat.cabal
@@ -87,6 +87,37 @@ library
          , GHC.HsToCore.PmCheck.Ppr       as PmPpr
          , GHC.HsToCore.PmCheck.Types     as PmTypes
 
+   if impl(ghc >= 9.0) && impl (ghc < 9.2)
+      reexported-modules:
+           GHC.Rename.Doc                 as RnHsDoc
+         , GHC.Utils.Encoding             as Encoding
+         , GHC.Core.Map                   as CoreMap
+         , GHC.Core.Ppr.TyThing           as PprTyThing
+         , GHC.Driver.Types               as HscTypes
+         , GHC.Driver.Finder              as Finder
+         , GHC.CoreToByteCode             as ByteCodeGen
+         , GHC.Runtime.Linker.Types       as LinkerTypes
+         , GHC.Runtime.Linker             as Linker
+         , GHC.SysTools.FileCleanup       as FileCleanup
+         , GHC.SysTools.ExtraObj          as SysTools.ExtraObj
+         , GHC.Cmm.Monad                  as CmmMonad
+         , GHC.Builtin.RebindableNames
+
+   if impl(ghc >= 9.2)
+      hs-source-dirs:   src
+      exposed-modules:
+           CoreMap
+           HscTypes
+      reexported-modules:
+           GHC.Types.TyThing.Ppr          as PprTyThing
+         , GHC.Unit.Finder                as Finder
+         , GHC.StgToByteCode              as ByteCodeGen
+         , GHC.Linker.Types               as LinkerTypes
+         , GHC.Linker                     as Linker
+         , GHC.Utils.TmpFs                as FileCleanup
+         , GHC.Linker.ExtraObj            as SysTools.ExtraObj
+         , GHC.Cmm.Parser.Monad           as CmmMonad
+
    if impl(ghc >= 9.0)
       hs-source-dirs:   src
       exposed-modules:  Outputable
@@ -95,7 +126,6 @@ library
          , GHC.Rename.Env                 as RnEnv
          , GHC.Rename.Expr                as RnExpr
          , GHC.Rename.Fixity              as RnFixity
-         , GHC.Rename.Doc                 as RnHsDoc
          , GHC.Rename.Names               as RnNames
          , GHC.Rename.Pat                 as RnPat
          , GHC.Rename.Module              as RnSource
@@ -107,7 +137,6 @@ library
          , GHC.Builtin.Names              as PrelNames
          , GHC.Builtin.Names.TH           as THNames
          , GHC.Builtin.PrimOps            as PrimOp
-         , GHC.Builtin.RebindableNames
          , GHC.Builtin.Types              as TysWiredIn
          , GHC.Builtin.Types.Literals     as TcTypeNats
          , GHC.Builtin.Types.Prim         as TysPrims
@@ -162,7 +191,6 @@ library
          , GHC.Cmm.Lint                   as CmmLint
          , GHC.Cmm.Liveness               as CmmLive
          , GHC.Cmm.MachOp                 as CmmMachOp
-         , GHC.Cmm.Monad                  as CmmMonad
          , GHC.Cmm.Node                   as CmmNode
          , GHC.Cmm.Opt                    as CmmOpt
          , GHC.Cmm.Pipeline               as CmmPipeline
@@ -256,8 +284,6 @@ library
          , GHC.SysTools.Ar                as Ar
          , GHC.SysTools.BaseDir           as SysTools.BaseDir
          , GHC.SysTools.Elf               as Elf
-         , GHC.SysTools.ExtraObj          as SysTools.ExtraObj
-         , GHC.SysTools.FileCleanup       as FileCleanup
          , GHC.SysTools.Info              as SysTools.Info
          , GHC.SysTools.Process           as SysTools.Process
          , GHC.SysTools.Tasks             as SysTools.Tasks
@@ -289,8 +315,6 @@ library
 
          , GHC.Runtime.Debugger           as Debugger
          , GHC.Runtime.Interpreter        as GHCi
-         , GHC.Runtime.Linker             as Linker
-         , GHC.Runtime.Linker.Types       as LinkerTypes
          , GHC.Runtime.Loader             as DynamicLoading
          , GHC.Runtime.Eval               as InteractiveEval
          , GHC.Runtime.Eval.Types         as InteractiveEvalTypes
@@ -303,8 +327,6 @@ library
          , GHC.ByteCode.Linker            as ByteCodeLink
          , GHC.ByteCode.Types             as ByteCodeTypes
 
-         , GHC.CoreToByteCode             as ByteCodeGen
-
          , GHC.Llvm.MetaData              as Llvm.MetaData
          , GHC.Llvm.Ppr                   as Llvm.PpLlvm
          , GHC.Llvm.Types                 as Llvm.Types
@@ -321,7 +343,6 @@ library
          , GHC.Driver.Backpack            as DriverBkp
          , GHC.Driver.CmdLine             as CmdLineParser
          , GHC.Driver.CodeOutput          as CodeOutput
-         , GHC.Driver.Finder              as Finder
          , GHC.Driver.MakeFile            as DriverMkDepend
          , GHC.Driver.Main                as HscMain
          , GHC.Driver.Make                as GhcMake
@@ -332,7 +353,6 @@ library
          , GHC.Driver.Pipeline.Monad      as PipelineMonad
          , GHC.Driver.Plugins             as Plugins
          , GHC.Driver.Monad               as GhcMonad
-         , GHC.Driver.Types               as HscTypes
          , GHC.Prelude                    as GhcPrelude
          , GHC.Plugins                    as GhcPlugins
          , GHC                            as GHC
@@ -415,7 +435,6 @@ library
          , GHC.Core.InstEnv                      as InstEnv
          , GHC.Core.Lint                         as CoreLint
          , GHC.Core.Make                         as MkCore
-         , GHC.Core.Map                          as CoreMap
          , GHC.Core.Multiplicity
 
          , GHC.Core.Opt.Arity                    as CoreArity
@@ -423,7 +442,6 @@ library
 
          , GHC.Core.PatSyn                       as PatSyn
          , GHC.Core.Ppr                          as PprCore
-         , GHC.Core.Ppr.TyThing                  as PprTyThing
          , GHC.Core.Predicate                    as Predicate
          , GHC.Core.Rules                        as Rules
          , GHC.Core.Seq                          as CoreSeq
@@ -449,7 +467,6 @@ library
          , GHC.Utils.Binary                      as Binary
          , GHC.Utils.BufHandle                   as BufWrite
          , GHC.Utils.CliOption                   as CliOption
-         , GHC.Utils.Encoding                    as Encoding
          , GHC.Utils.Error                       as ErrUtils
          , GHC.Utils.Exception                   as Exception
          , GHC.Utils.FV                          as FV
diff --git a/src/CoreMap.hs b/src/CoreMap.hs
new file mode 100644
index 0000000000000000000000000000000000000000..c4c55be9262dd4f7ee51532ae22a0875b6caa541
--- /dev/null
+++ b/src/CoreMap.hs
@@ -0,0 +1,8 @@
+module CoreMap
+  ( module GHC.Core.Map.Expr
+  , module GHC.Core.Map.Type
+  )
+where
+
+import GHC.Core.Map.Expr
+import GHC.Core.Map.Type
diff --git a/src/HscTypes.hs b/src/HscTypes.hs
new file mode 100644
index 0000000000000000000000000000000000000000..1a3d158d4373d26d67521a728771462fe441e48a
--- /dev/null
+++ b/src/HscTypes.hs
@@ -0,0 +1,32 @@
+module HscTypes
+  ( module X
+  )
+where
+
+import GHC.Driver.Env.Types           as X
+import GHC.Unit.Finder.Types          as X
+import GHC.Unit.Module.Status         as X
+import GHC.Unit.Module.Graph          as X
+import GHC.Unit.Module.ModDetails     as X
+import GHC.Unit.Module.ModGuts        as X
+import GHC.Unit.Module.ModSummary     as X
+import GHC.Unit.Home.ModInfo          as X
+import GHC.Unit.Module.ModIface       as X
+import GHC.Unit.Module.Warnings       as X
+import GHC.Unit.Types                 as X
+import GHC.Types.SourceFile           as X
+import GHC.Types.Fixity.Env           as X
+import GHC.Types.Target               as X
+import GHC.Types.Meta                 as X
+import GHC.Types.TyThing              as X
+import GHC.Types.TypeEnv              as X
+import GHC.Types.HpcInfo              as X
+import GHC.Types.SourceError          as X
+import GHC.Driver.Env                 as X
+import GHC.Runtime.Context            as X
+import GHC.Linker.Types               as X
+import GHC.ByteCode.Types             as X
+import GHC.Types.SafeHaskell          as X
+import GHC.Types.CompleteMatch        as X
+import GHC.Hs                         as X
+import GHC.Iface.Ext.Fields           as X
diff --git a/src/Outputable.hs b/src/Outputable.hs
index eede817716f88132a1b83b29c4d7bc4fc4cda35b..25b9c857ec470534c57e87c260e1a5509162ef4f 100644
--- a/src/Outputable.hs
+++ b/src/Outputable.hs
@@ -1,7 +1,14 @@
+{-# LANGUAGE CPP #-}
+
 module Outputable
     ( module GHC.Utils.Outputable
+#if !MIN_VERSION_GLASGOW_HASKELL(9,0,0,0)
+    -- now exported again from Outputable
     , initSDocContext
+#endif
     ) where
 
 import GHC.Utils.Outputable
-import GHC.Driver.Session (initSDocContext)
\ No newline at end of file
+#if !MIN_VERSION_GLASGOW_HASKELL(9,0,0,0)
+import GHC.Driver.Session (initSDocContext)
+#endif