diff --git a/ghc-api-compat.cabal b/ghc-api-compat.cabal
index f24cd2abd1a3b52fc72cda966c746aa02b03a3e1..be92e24e17eb13a55ab19169593605fc1bcd6c19 100644
--- a/ghc-api-compat.cabal
+++ b/ghc-api-compat.cabal
@@ -120,7 +120,9 @@ library
 
    if impl(ghc >= 9.0)
       hs-source-dirs:   src
-      exposed-modules:  Outputable
+      exposed-modules:  Outputable DynFlags
+      build-depends: 
+         containers >= 0.6.0 && <= 0.6.5
       reexported-modules:
            GHC.Rename.Bind                as RnBinds
          , GHC.Rename.Env                 as RnEnv
@@ -347,7 +349,7 @@ library
          , GHC.Driver.Main                as HscMain
          , GHC.Driver.Make                as GhcMake
          , GHC.Driver.Hooks               as Hooks
-         , GHC.Driver.Session             as DynFlags
+        --  , GHC.Driver.Session             as DynFlags
          , GHC.Driver.Phases              as DriverPhases
          , GHC.Driver.Pipeline            as DriverPipeline
          , GHC.Driver.Pipeline.Monad      as PipelineMonad
diff --git a/src/DynFlags.hs b/src/DynFlags.hs
new file mode 100644
index 0000000000000000000000000000000000000000..cadb25b4c5f0594844f80d52fde1fe77a47556b5
--- /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