diff --git a/ghc-api-compat.cabal b/ghc-api-compat.cabal
--- a/ghc-api-compat.cabal
+++ b/ghc-api-compat.cabal
@@ -1,5 +1,5 @@
 name:                ghc-api-compat
-version:             8.10.7
+version:             9.0.1
 synopsis:            GHC-API compatibility helpers
 description:
    GHC codebase is a moving target. This package provides
@@ -18,14 +18,17 @@
 
 library
    build-depends:
-      ghc == 8.10.5 || == 8.10.6 || == 8.10.7
-      , base < 5.0
+      ghc == 9.0.*, base < 5.0
    default-language:    Haskell2010
 
+   hs-source-dirs:   src
+   exposed-modules:  Outputable DynFlags
+   build-depends:
+      containers >= 0.6.0 && <= 0.6.5
+
    reexported-modules:
            GHC.Platform.AArch64           as CodeGen.Platform.ARM64
-         , GHC.Hs.Types                   as HsTypes
-         , GHC.Hs.PlaceHolder             as PlaceHolder
+
          , GHC.Hs.Binds                   as HsBinds
          , GHC.Hs.Decls                   as HsDecls
          , GHC.Hs.Doc                     as HsDoc
@@ -74,3 +77,391 @@
          , GHC.HsToCore.PmCheck.Oracle    as PmOracle
          , GHC.HsToCore.PmCheck.Ppr       as PmPpr
          , GHC.HsToCore.PmCheck.Types     as PmTypes
+
+         , 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
+
+         , GHC.Rename.Bind                as RnBinds
+         , GHC.Rename.Env                 as RnEnv
+         , GHC.Rename.Expr                as RnExpr
+         , GHC.Rename.Fixity              as RnFixity
+         , GHC.Rename.Names               as RnNames
+         , GHC.Rename.Pat                 as RnPat
+         , GHC.Rename.Module              as RnSource
+         , GHC.Rename.Splice              as RnSplice
+         , GHC.Rename.HsType              as RnTypes
+         , GHC.Rename.Unbound             as RnUnbound
+         , GHC.Rename.Utils               as RnUtils
+
+         , GHC.Builtin.Names              as PrelNames
+         , GHC.Builtin.Names.TH           as THNames
+         , GHC.Builtin.PrimOps            as PrimOp
+         , GHC.Builtin.Types              as TysWiredIn
+         , GHC.Builtin.Types.Literals     as TcTypeNats
+         , GHC.Builtin.Types.Prim         as TysPrims
+         , GHC.Builtin.Uniques            as KnownUniques
+         , GHC.Builtin.Utils              as PrelInfo
+
+         , GHC.Types.Annotations          as Annotations
+         , GHC.Types.Avail                as Avail
+         , GHC.Types.Basic                as Basic
+         , GHC.Types.Basic                as BasicTypes
+         , GHC.Types.CostCentre           as CostCentre
+         , GHC.Types.CostCentre.State     as CostCentreState
+         , GHC.Types.Cpr                  as Cpr
+         , GHC.Types.Demand               as Demand
+         , GHC.Types.FieldLabel           as FieldLabel
+         , GHC.Types.ForeignCall          as ForeignCall
+         , GHC.Types.Id                   as Id
+         , GHC.Types.Id.Info              as Info
+         , GHC.Types.Id.Make              as Make
+         , GHC.Types.Literal              as Literal
+         , GHC.Types.Name                 as Name
+         , GHC.Types.Name.Cache           as NameCache
+         , GHC.Types.Name.Env             as NameEnv
+         , GHC.Types.Name.Occurrence      as OccName
+         , GHC.Types.Name.Reader          as RdrName
+         , GHC.Types.Name.Set             as NameSet
+         , GHC.Types.Name.Shape           as NameShape
+         , GHC.Types.RepType              as RepType
+         , GHC.Types.SrcLoc               as SrcLoc
+         , GHC.Types.Unique               as Unique
+         , GHC.Types.Unique.DFM           as UniqDFM
+         , GHC.Types.Unique.DSet          as UniqDSet
+         , GHC.Types.Unique.FM            as UniqFM
+         , GHC.Types.Unique.Set           as UniqSet
+         , GHC.Types.Unique.Supply        as UniqSupply
+         , GHC.Types.Var                  as Var
+         , GHC.Types.Var.Env              as VarEnv
+         , GHC.Types.Var.Set              as VarSet
+
+         , GHC.Cmm.BlockId                as BlockId
+         , GHC.Cmm.CLabel                 as CLabel
+         , GHC.Cmm.CallConv               as CmmCallConv
+         , GHC.Cmm.CommonBlockElim        as CmmCommonBlockElim
+         , GHC.Cmm.ContFlowOpt            as CmmContFlowOpt
+         , GHC.Cmm.Expr                   as CmmExpr
+         , GHC.Cmm                        as Cmm
+         , GHC.Cmm.Switch                 as CmmSwitch
+         , GHC.Cmm.Switch.Implement       as CmmImplementSwitchPlans
+         , GHC.Cmm.Info                   as CmmInfo
+         , GHC.Cmm.Info.Build             as CmmBuildInfoTables
+         , GHC.Cmm.LayoutStack            as CmmLayoutStack
+         , GHC.Cmm.Lint                   as CmmLint
+         , GHC.Cmm.Liveness               as CmmLive
+         , GHC.Cmm.MachOp                 as CmmMachOp
+         , GHC.Cmm.Node                   as CmmNode
+         , GHC.Cmm.Opt                    as CmmOpt
+         , GHC.Cmm.Pipeline               as CmmPipeline
+         , GHC.Cmm.ProcPoint              as CmmProcPoint
+         , GHC.Cmm.Sink                   as CmmSink
+         , GHC.Cmm.Type                   as CmmType
+         , GHC.Cmm.Utils                  as CmmUtils
+         , GHC.Cmm.DebugBlock             as Debug
+         , GHC.Cmm.Dataflow.Block         as Hoopl.Block
+         , GHC.Cmm.Dataflow.Collections   as Hoopl.Collections
+         , GHC.Cmm.Dataflow               as Hoopl.Dataflow
+         , GHC.Cmm.Dataflow.Graph         as Hoopl.Graph
+         , GHC.Cmm.Dataflow.Label         as Hoopl.Label
+         , GHC.Cmm.Graph                  as MkGraph
+         , GHC.Cmm.Ppr.Decl               as PprCmmDecl
+         , GHC.Cmm.Ppr.Expr               as PprCmmExpr
+         , GHC.Cmm.Ppr                    as PprCmm
+         , GHC.Cmm.Lexer                  as CmmLex
+         , GHC.Cmm.Parser                 as CmmParse
+
+         , GHC.CmmToC                     as PprC
+
+         , GHC.Data.Bag                   as Bag
+         , GHC.Data.Bitmap                as BitMap
+         , GHC.Data.BooleanFormula        as BooleanFormula
+         , GHC.Data.EnumSet               as EnumSet
+         , GHC.Data.FastMutInt            as FastMutInt
+         , GHC.Data.FastString            as FastString
+         , GHC.Data.FastString.Env        as FastStringEnv
+         , GHC.Data.FiniteMap             as FiniteMap
+         , GHC.Data.Graph.Base            as GraphBase
+         , GHC.Data.Graph.Color           as GraphColor
+         , GHC.Data.Graph.Directed        as DiGraph
+         , GHC.Data.Graph.Ops             as GraphOps
+         , GHC.Data.Graph.Ppr             as GraphPpr
+         , GHC.Data.Graph.UnVar           as UnVarGraph
+         , GHC.Data.IOEnv                 as IOEnv
+         , GHC.Data.List.SetOps           as ListSetOpts
+         , GHC.Data.Maybe                 as Maybes
+         , GHC.Data.OrdList               as OrdList
+         , GHC.Data.Pair                  as Pair
+         , GHC.Data.Stream                as Stream
+         , GHC.Data.StringBuffer          as StringBuffer
+         , GHC.Data.TrieMap               as TrieMap
+
+         , GHC.Unit.State                 as Packages
+         , GHC.Unit.Info                  as PackageConfig
+         , GHC.Unit.Module                as Module
+
+         , GHC.Hs.Type                    as HsTypes
+
+         , GHC.HsToCore                   as Desugar
+         , GHC.HsToCore.Coverage          as Coverage
+         , GHC.HsToCore.Arrows            as DsArrows
+         , GHC.HsToCore.Binds             as DsBinds
+         , GHC.HsToCore.Foreign.Call      as DsCCall
+         , GHC.HsToCore.Foreign.Decl      as DsForeign
+         , GHC.HsToCore.Expr              as DsExpr
+         , GHC.HsToCore.GuardedRHSs       as DsGRHSs
+         , GHC.HsToCore.ListComp          as DsListComp
+         , GHC.HsToCore.Quote             as DsMeta
+         , GHC.HsToCore.Monad             as DsMonad
+         , GHC.HsToCore.Usage             as DsUsage
+         , GHC.HsToCore.Utils             as DsUtils
+         , GHC.HsToCore.Docs              as ExtractDocs
+         , GHC.HsToCore.Match             as Match
+         , GHC.HsToCore.Match.Constructor as MatchCon
+         , GHC.HsToCore.Match.Literal     as MatchLit
+
+         , GHC.Stg.Pipeline               as SimplStg
+         , GHC.Stg.CSE                    as StgCse
+         , GHC.Stg.Stats                  as StgStats
+         , GHC.Stg.Unarise                as UnariseStg
+         , GHC.Stg.FVs                    as StgFVs
+         , GHC.Stg.Lint                   as StgLint
+         , GHC.Stg.Subst                  as StgSubst
+         , GHC.Stg.Syntax                 as StgSyn
+
+         -- Expose as two modules as they apparently got merged
+         , GHC.Settings                   as Settings
+         , GHC.Settings                   as ToolSettings
+         , GHC.Settings.Config            as Config
+         , GHC.Settings.Constants         as Constants
+         , GHC.Settings.IO                as SysTools.Settings
+
+         , GHC.Stg.Lift                   as StgLiftLams
+         , GHC.Stg.Lift.Analysis          as StgLiftLams.Analysis
+         , GHC.Stg.Lift.Monad             as StgLiftLams.LiftM
+
+         , GHC.SysTools                   as SysTools
+         , GHC.SysTools.Ar                as Ar
+         , GHC.SysTools.BaseDir           as SysTools.BaseDir
+         , GHC.SysTools.Elf               as Elf
+         , GHC.SysTools.Info              as SysTools.Info
+         , GHC.SysTools.Process           as SysTools.Process
+         , GHC.SysTools.Tasks             as SysTools.Tasks
+         , GHC.SysTools.Terminal          as SysTools.Terminal
+
+         , GHC.CoreToStg                  as CoreToStg
+         , GHC.CoreToStg.Prep             as CorePrep
+
+         , GHC.Iface.Binary               as BinIface
+         , GHC.Iface.Env                  as IfaceEnv
+         , GHC.Iface.Syntax               as IfaceSyn
+         , GHC.Iface.Type                 as IfaceType
+         , GHC.Iface.Load                 as LoadIface
+         , GHC.Iface.Make                 as MkIface
+         , GHC.Iface.Recomp
+         , GHC.Iface.Rename               as RnModIface
+         , GHC.Iface.Tidy                 as TidyPgm
+
+         , GHC.Iface.Ext.Ast              as HieAst
+         , GHC.Iface.Ext.Binary           as HieBin
+         , GHC.Iface.Ext.Debug            as HieDebug
+         , GHC.Iface.Ext.Types            as HieTypes
+         , GHC.Iface.Ext.Utils            as HieUtils
+
+         , GHC.IfaceToCore                as TcIface
+         , GHC.CoreToIface                as ToIface
+
+         , GHC.Data.Bitmap                as Bitmap
+
+         , GHC.Runtime.Debugger           as Debugger
+         , GHC.Runtime.Interpreter        as GHCi
+         , GHC.Runtime.Loader             as DynamicLoading
+         , GHC.Runtime.Eval               as InteractiveEval
+         , GHC.Runtime.Eval.Types         as InteractiveEvalTypes
+         , GHC.Runtime.Heap.Layout        as SMRep
+         , GHC.Runtime.Heap.Inspect       as RtClosureInspect
+
+         , GHC.ByteCode.Asm               as ByteCodeAsm
+         , GHC.ByteCode.Instr             as ByteCodeInstr
+         , GHC.ByteCode.InfoTable         as ByteCodeItbls
+         , GHC.ByteCode.Linker            as ByteCodeLink
+         , GHC.ByteCode.Types             as ByteCodeTypes
+
+         , GHC.Llvm.MetaData              as Llvm.MetaData
+         , GHC.Llvm.Ppr                   as Llvm.PpLlvm
+         , GHC.Llvm.Types                 as Llvm.Types
+         , GHC.Llvm.Syntax                as Llvm.AbsSyn
+         , GHC.Llvm                       as Llvm
+         , GHC.CmmToLlvm                  as LlvmCodeGen
+         , GHC.CmmToLlvm.Mangler          as LlvmMangler
+         , GHC.CmmToLlvm.Base             as LlvmCodeGen.Base
+         , GHC.CmmToLlvm.CodeGen          as LlvmCodeGen.CodeGen
+         , GHC.CmmToLlvm.Data             as LlvmCodeGen.Data
+         , GHC.CmmToLlvm.Ppr              as LlvmCodeGen.Ppr
+         , GHC.CmmToLlvm.Regs             as LlvmCodeGen.Regs
+         , GHC.Driver.Backpack.Syntax     as BkpSyn
+         , GHC.Driver.Backpack            as DriverBkp
+         , GHC.Driver.CmdLine             as CmdLineParser
+         , GHC.Driver.CodeOutput          as CodeOutput
+         , GHC.Driver.MakeFile            as DriverMkDepend
+         , GHC.Driver.Main                as HscMain
+         , GHC.Driver.Make                as GhcMake
+         , GHC.Driver.Hooks               as Hooks
+        --  , GHC.Driver.Session             as DynFlags
+         , GHC.Driver.Phases              as DriverPhases
+         , GHC.Driver.Pipeline            as DriverPipeline
+         , GHC.Driver.Pipeline.Monad      as PipelineMonad
+         , GHC.Driver.Plugins             as Plugins
+         , GHC.Driver.Monad               as GhcMonad
+         , GHC.Prelude                    as GhcPrelude
+         , GHC.Plugins                    as GhcPlugins
+         , GHC                            as GHC
+         , GHC.CmmToAsm                          as AsmCodeGen
+         , GHC.CmmToAsm.BlockLayout              as BlockLayout
+         , GHC.CmmToAsm.CFG                      as CFG
+         , GHC.CmmToAsm.CFG.Dominators           as Dominators
+         , GHC.CmmToAsm.CPrim                    as CPrim
+         , GHC.CmmToAsm.Dwarf.Constants          as Dwarf.Constants
+         , GHC.CmmToAsm.Dwarf                    as Dwarf
+         , GHC.CmmToAsm.Dwarf.Types              as Dwarf.Types
+         , GHC.CmmToAsm.Format                   as Format
+         , GHC.CmmToAsm.Instr                    as Instruction
+         , GHC.CmmToAsm.Monad                    as NCGMonad
+         , GHC.CmmToAsm.PIC                      as PIC
+         , GHC.CmmToAsm.Ppr                      as PprBase
+         , GHC.CmmToAsm.Reg.Graph.Base           as RegAlloc.Graph.ArchBase
+         , GHC.CmmToAsm.Reg.Graph.X86            as RegAlloc.Graph.ArchX86
+         , GHC.CmmToAsm.Reg.Graph.Coalesce       as RegAlloc.Graph.Coalesce
+         , GHC.CmmToAsm.Reg.Graph                as RegAlloc.Graph.Main
+         , GHC.CmmToAsm.Reg.Graph.SpillClean     as RegAlloc.Graph.SpillClean
+         , GHC.CmmToAsm.Reg.Graph.SpillCost      as RegAlloc.Graph.SpillCost
+         , GHC.CmmToAsm.Reg.Graph.Spill          as RegAlloc.Graph.Spill
+         , GHC.CmmToAsm.Reg.Graph.Stats          as RegAlloc.Graph.Stats
+         , GHC.CmmToAsm.Reg.Graph.TrivColorable  as RegAlloc.Graph.TrivColorable
+         , GHC.CmmToAsm.Reg.Linear.Base          as RegAlloc.Linear.Base
+         , GHC.CmmToAsm.Reg.Linear.JoinToTargets as RegAlloc.Linear.JoinToTargets
+         , GHC.CmmToAsm.Reg.Linear               as RegAlloc.Linear.Main
+         , GHC.CmmToAsm.Reg.Linear.StackMap      as RegAlloc.Linear.StackMap
+         , GHC.CmmToAsm.Reg.Linear.State         as RegAlloc.Linear.State
+         , GHC.CmmToAsm.Reg.Linear.Stats         as RegAlloc.Linear.Stats
+         , GHC.CmmToAsm.Reg.Linear.FreeRegs      as RegAlloc.Linear.FreeRegs
+         , GHC.CmmToAsm.Reg.Linear.PPC           as RegAlloc.Linear.PPC.FreeRegs
+         , GHC.CmmToAsm.Reg.Linear.SPARC         as RegAlloc.Linear.SPARC.FreeRegs
+         , GHC.CmmToAsm.Reg.Linear.X86_64        as RegAlloc.Linear.X86_64.FreeRegs
+         , GHC.CmmToAsm.Reg.Linear.X86           as RegAlloc.Linear.X86.FreeRegs
+         , GHC.Platform.Reg                      as Reg
+         , GHC.Platform.Reg.Class                as RegClass
+         , GHC.CmmToAsm.Reg.Liveness             as RegAlloc.Liveness
+         , GHC.CmmToAsm.Reg.Target               as TargetReg
+         , GHC.CmmToAsm.PPC.CodeGen              as PPC.CodeGen
+         , GHC.CmmToAsm.PPC.Cond                 as PPC.Cond
+         , GHC.CmmToAsm.PPC.Instr                as PPC.Instr
+         , GHC.CmmToAsm.PPC.Ppr                  as PPC.Ppr
+         , GHC.CmmToAsm.PPC.RegInfo              as PPC.RegInfo
+         , GHC.CmmToAsm.PPC.Regs                 as PPC.Regs
+         , GHC.CmmToAsm.SPARC.AddrMode           as SPARC.AddrMode
+         , GHC.CmmToAsm.SPARC.Base               as SPARC.Base
+         , GHC.CmmToAsm.SPARC.CodeGen.Amode      as SPARC.CodeGen.Amode
+         , GHC.CmmToAsm.SPARC.CodeGen.Base       as SPARC.CodeGen.Base
+         , GHC.CmmToAsm.SPARC.CodeGen.CondCode   as SPARC.CodeGen.CondCode
+         , GHC.CmmToAsm.SPARC.CodeGen.Expand     as SPARC.CodeGen.Expand
+         , GHC.CmmToAsm.SPARC.CodeGen.Gen32      as SPARC.CodeGen.Gen32
+         , GHC.CmmToAsm.SPARC.CodeGen.Gen64      as SPARC.CodeGen.Gen64
+         , GHC.CmmToAsm.SPARC.CodeGen            as SPARC.CodeGen
+         , GHC.CmmToAsm.SPARC.CodeGen.Sanity     as SPARC.CodeGen.Sanity
+         , GHC.CmmToAsm.SPARC.Cond               as SPARC.Cond
+         , GHC.CmmToAsm.SPARC.Imm                as SPARC.Imm
+         , GHC.CmmToAsm.SPARC.Instr              as SPARC.Instr
+         , GHC.CmmToAsm.SPARC.Ppr                as SPARC.Ppr
+         , GHC.CmmToAsm.SPARC.Regs               as SPARC.Regs
+         , GHC.CmmToAsm.SPARC.ShortcutJump       as SPARC.ShortcutJump
+         , GHC.CmmToAsm.SPARC.Stack              as SPARC.Stack
+         , GHC.CmmToAsm.X86.CodeGen              as X86.CodeGen
+         , GHC.CmmToAsm.X86.Cond                 as X86.Cond
+         , GHC.CmmToAsm.X86.Instr                as X86.Instr
+         , GHC.CmmToAsm.X86.Ppr                  as X86.Ppr
+         , GHC.CmmToAsm.X86.RegInfo              as X86.RegInfo
+         , GHC.CmmToAsm.X86.Regs                 as X86.Regs
+
+         , GHC.Core                              as CoreSyn
+         , GHC.Core.Class                        as Class
+         , GHC.Core.Coercion                     as Coercion
+         , GHC.Core.Coercion.Axiom               as CoAxion
+         , GHC.Core.Coercion.Opt                 as OptCoercion
+         , GHC.Core.ConLike                      as ConLike
+         , GHC.Core.DataCon                      as DataCon
+         , GHC.Core.FVs                          as CoreFVs
+         , GHC.Core.FamInstEnv                   as FamInstEnv
+         , GHC.Core.InstEnv                      as InstEnv
+         , GHC.Core.Lint                         as CoreLint
+         , GHC.Core.Make                         as MkCore
+         , GHC.Core.Multiplicity
+
+         , GHC.Core.Opt.Arity                    as CoreArity
+         , GHC.Core.Opt.Monad                    as CoreMonad
+
+         , GHC.Core.PatSyn                       as PatSyn
+         , GHC.Core.Ppr                          as PprCore
+         , GHC.Core.Predicate                    as Predicate
+         , GHC.Core.Rules                        as Rules
+         , GHC.Core.Seq                          as CoreSeq
+         , GHC.Core.SimpleOpt                    as CoreOpt
+         , GHC.Core.Stats                        as CoreStats
+         , GHC.Core.Subst                        as CoreSubst
+         , GHC.Core.Tidy                         as CoreTidy
+
+         , GHC.Core.TyCo.FVs                     as TyCoFVs
+         , GHC.Core.TyCo.Ppr                     as TyCoPpr
+         , GHC.Core.TyCo.Rep                     as TyCoRep
+         , GHC.Core.TyCo.Subst                   as TyCoSubst
+         , GHC.Core.TyCo.Tidy                    as TyCoTidy
+
+         , GHC.Core.TyCon                        as TyCon
+         , GHC.Core.Type                         as Type
+         , GHC.Core.Unfold                       as CoreUnfold
+         , GHC.Core.Unify                        as Unify
+         , GHC.Core.UsageEnv
+         , GHC.Core.Utils                        as CoreUtils
+
+         , GHC.Utils.Asm                         as AsmUtils
+         , GHC.Utils.Binary                      as Binary
+         , GHC.Utils.BufHandle                   as BufWrite
+         , GHC.Utils.CliOption                   as CliOption
+         , GHC.Utils.Error                       as ErrUtils
+         , GHC.Utils.Exception                   as Exception
+         , GHC.Utils.FV                          as FV
+         , GHC.Utils.Fingerprint                 as Fingerprint
+         , GHC.Utils.IO.Unsafe                   as FastFunctions
+         , GHC.Utils.Json                        as Json
+         , GHC.Utils.Lexeme                      as Lexeme
+         , GHC.Utils.Misc                        as Util
+         , GHC.Utils.Monad                       as MonadUtils
+         , GHC.Utils.Monad.State                 as State
+         -- Customly exposed
+         -- , GHC.Utils.Outputable                  as Outputable
+         , GHC.Utils.Panic                       as Panic
+         , GHC.Utils.Panic.Plain                 as PlainPanic
+         , GHC.Utils.Ppr                         as Pretty
+         , GHC.Utils.Ppr.Colour                  as PprColour
+
+         , GHC.Parser                            as Parser
+         , GHC.Parser.CharClass                  as CType
+         , GHC.Parser.Header                     as HeaderInfo
+         , GHC.Parser.Lexer                      as Lexer
+         , GHC.Parser.PostProcess                as RdrHsSyn
+
+         , GHC.Tc.Types                          as TcRnTypes
+         , GHC.Tc.Utils.Zonk                     as TcHsSyn
+         , GHC.Tc.Utils.Env                      as TcEnv
+         , GHC.Tc.Utils.Monad                   as TcRnMonad
+         , GHC.Driver.Backend
diff --git a/src/DynFlags.hs b/src/DynFlags.hs
new file mode 100644
--- /dev/null
+++ b/src/DynFlags.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE CPP #-}
+module DynFlags
+  ( module GHC.Driver.Session,
+    Way(..),
+    wayRTSOnly,
+    wayGeneralFlags,
+    wayUnsetGeneralFlags,
+    buildTag,
+    dynamicGhc,
+    hostFullWays,
+    interpWays,
+  )
+where
+
+import Data.Set (Set)
+import GHC.Driver.Session
+#if MIN_VERSION_GLASGOW_HASKELL(9,2,0,0)
+import GHC.Platform.Ways
+#else
+import GHC.Driver.Ways
+#endif
+
+buildTag :: DynFlags -> String
+buildTag = waysBuildTag . ways
+
+dynamicGhc :: Bool
+dynamicGhc = hostIsDynamic
+
+interpWays :: Set Way
+interpWays = hostFullWays
diff --git a/src/Outputable.hs b/src/Outputable.hs
new file mode 100644
--- /dev/null
+++ b/src/Outputable.hs
@@ -0,0 +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
+#if !MIN_VERSION_GLASGOW_HASKELL(9,0,0,0)
+import GHC.Driver.Session (initSDocContext)
+#endif
