diff --git a/plugins.cabal b/plugins.cabal
--- a/plugins.cabal
+++ b/plugins.cabal
@@ -1,5 +1,5 @@
 name:               plugins
-version:            1.6.1
+version:            1.6.2
 homepage:           https://github.com/stepcut/plugins
 synopsis:           Dynamic linking for Haskell and C objects
 description:        Dynamic linking and runtime evaluation of Haskell,
diff --git a/src/System/Plugins/Env.hs b/src/System/Plugins/Env.hs
--- a/src/System/Plugins/Env.hs
+++ b/src/System/Plugins/Env.hs
@@ -78,7 +78,13 @@
   Way(WayDyn), dynamicGhc, ways,
 #endif
   defaultDynFlags, initDynFlags)
-import SysTools (initSysTools, initLlvmConfig)
+import SysTools ( initSysTools
+#if MIN_VERSION_ghc(8,10,1)
+                , lazyInitLlvmConfig
+#else
+                , initLlvmConfig
+#endif
+  )
 
 import Distribution.Package hiding (
 #if MIN_VERSION_ghc(7,6,0)
@@ -104,6 +110,11 @@
 
 import qualified Data.Map as M
 import qualified Data.Set as S
+
+#if !MIN_VERSION_ghc(8,10,1)
+lazyInitLlvmConfig = initLlvmConfig
+#endif
+
 --
 -- and map Data.Map terms to FiniteMap terms
 --
@@ -493,10 +504,10 @@
                 -- real packages.
 #if MIN_VERSION_ghc(8,8,1)
                 settings <- initSysTools (libdir)
-                llvmConfig <- initLlvmConfig (libdir)
+                llvmConfig <- lazyInitLlvmConfig (libdir)
 #else
                 settings <- initSysTools (Just libdir)
-                llvmConfig <- initLlvmConfig (Just libdir)
+                llvmConfig <- lazyInitLlvmConfig (Just libdir)
 #endif
                 dflags <- initDynFlags $ defaultDynFlags settings llvmConfig
                 libs <- mapM (findHSlib
diff --git a/src/System/Plugins/Load.hs b/src/System/Plugins/Load.hs
--- a/src/System/Plugins/Load.hs
+++ b/src/System/Plugins/Load.hs
@@ -104,8 +104,14 @@
 #else
 import DynFlags                 (defaultDynFlags, initDynFlags)
 import GHC.Paths                (libdir)
-import SysTools                 (initSysTools, initLlvmConfig)
+import SysTools                 ( initSysTools
+#if MIN_VERSION_ghc(8,10,1)
+                                , lazyInitLlvmConfig
+#else
+                                , initLlvmConfig
 #endif
+                                )
+#endif
 import GHC.Ptr                  ( Ptr(..), nullPtr )
 #if !MIN_VERSION_ghc(7,4,1)
 import GHC.Exts                 ( addrToHValue# )
@@ -120,6 +126,10 @@
 #endif
 import System.IO                ( hClose )
 
+#if !MIN_VERSION_ghc(8,10,1)
+lazyInitLlvmConfig = initLlvmConfig
+#endif
+
 ifaceModuleName = moduleNameString . moduleName . mi_module
 
 readBinIface' :: FilePath -> IO ModIface
@@ -128,10 +138,10 @@
 #if MIN_VERSION_ghc(7,2,0)
 #if MIN_VERSION_ghc(8,8,1)
     mySettings <- initSysTools (libdir) -- how should we really set the top dir?
-    llvmConfig <- initLlvmConfig (libdir)
+    llvmConfig <- lazyInitLlvmConfig (libdir)
 #else
     mySettings <- initSysTools (Just libdir) -- how should we really set the top dir?
-    llvmConfig <- initLlvmConfig (Just libdir)
+    llvmConfig <- lazyInitLlvmConfig (Just libdir)
 #endif
     dflags <- initDynFlags (defaultDynFlags mySettings llvmConfig)
     e <- newHscEnv dflags
