diff --git a/compiler/GHC/Hs/Doc.hs b/compiler/GHC/Hs/Doc.hs
--- a/compiler/GHC/Hs/Doc.hs
+++ b/compiler/GHC/Hs/Doc.hs
@@ -21,7 +21,7 @@
   , emptyArgDocMap
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs
--- a/compiler/GHC/Hs/Expr.hs
+++ b/compiler/GHC/Hs/Expr.hs
@@ -18,7 +18,7 @@
 -- | Abstract Haskell syntax for expressions.
 module GHC.Hs.Expr where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 -- friends:
 import GhcPrelude
diff --git a/compiler/GHC/Hs/Lit.hs b/compiler/GHC/Hs/Lit.hs
--- a/compiler/GHC/Hs/Lit.hs
+++ b/compiler/GHC/Hs/Lit.hs
@@ -17,7 +17,7 @@
 
 module GHC.Hs.Lit where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/GHC/Hs/Types.hs b/compiler/GHC/Hs/Types.hs
--- a/compiler/GHC/Hs/Types.hs
+++ b/compiler/GHC/Hs/Types.hs
@@ -70,7 +70,7 @@
         hsTypeNeedsParens, parenthesizeHsType, parenthesizeHsContext
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/GHC/Hs/Utils.hs b/compiler/GHC/Hs/Utils.hs
--- a/compiler/GHC/Hs/Utils.hs
+++ b/compiler/GHC/Hs/Utils.hs
@@ -95,7 +95,7 @@
   lStmtsImplicits, hsValBindsImplicits, lPatImplicits
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/GHC/HsToCore/PmCheck/Types.hs b/compiler/GHC/HsToCore/PmCheck/Types.hs
--- a/compiler/GHC/HsToCore/PmCheck/Types.hs
+++ b/compiler/GHC/HsToCore/PmCheck/Types.hs
@@ -32,7 +32,7 @@
         VarInfo(..), TmState(..), TyState(..), Delta(..), initDelta
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/GhclibHsVersions.h b/compiler/GhclibHsVersions.h
new file mode 100644
--- /dev/null
+++ b/compiler/GhclibHsVersions.h
@@ -0,0 +1,56 @@
+#pragma once
+
+-- For GHC_STAGE
+#include "ghcplatform.h"
+
+#if 0
+
+IMPORTANT!  If you put extra tabs/spaces in these macro definitions,
+you will screw up the layout where they are used in case expressions!
+
+(This is cpp-dependent, of course)
+
+#endif
+
+#define GLOBAL_VAR(name,value,ty)  \
+{-# NOINLINE name #-};             \
+name :: IORef (ty);                \
+name = Util.global (value);
+
+#define GLOBAL_VAR_M(name,value,ty) \
+{-# NOINLINE name #-};              \
+name :: IORef (ty);                 \
+name = Util.globalM (value);
+
+
+#define SHARED_GLOBAL_VAR(name,accessor,saccessor,value,ty) \
+{-# NOINLINE name #-};                                      \
+name :: IORef (ty);                                         \
+name = Util.sharedGlobal (value) (accessor);                \
+foreign import ccall unsafe saccessor                       \
+  accessor :: Ptr (IORef a) -> IO (Ptr (IORef a));
+
+#define SHARED_GLOBAL_VAR_M(name,accessor,saccessor,value,ty)  \
+{-# NOINLINE name #-};                                         \
+name :: IORef (ty);                                            \
+name = Util.sharedGlobalM (value) (accessor);                  \
+foreign import ccall unsafe saccessor                          \
+  accessor :: Ptr (IORef a) -> IO (Ptr (IORef a));
+
+
+#define ASSERT(e)      if debugIsOn && not (e) then (assertPanic __FILE__ __LINE__) else
+#define ASSERT2(e,msg) if debugIsOn && not (e) then (assertPprPanic __FILE__ __LINE__ (msg)) else
+#define WARN( e, msg ) (warnPprTrace (e) __FILE__ __LINE__ (msg)) $
+
+-- Examples:   Assuming   flagSet :: String -> m Bool
+--
+--    do { c   <- getChar; MASSERT( isUpper c ); ... }
+--    do { c   <- getChar; MASSERT2( isUpper c, text "Bad" ); ... }
+--    do { str <- getStr;  ASSERTM( flagSet str ); .. }
+--    do { str <- getStr;  ASSERTM2( flagSet str, text "Bad" ); .. }
+--    do { str <- getStr;  WARNM2( flagSet str, text "Flag is set" ); .. }
+#define MASSERT(e)      ASSERT(e) return ()
+#define MASSERT2(e,msg) ASSERT2(e,msg) return ()
+#define ASSERTM(e)      do { bool <- e; MASSERT(bool) }
+#define ASSERTM2(e,msg) do { bool <- e; MASSERT2(bool,msg) }
+#define WARNM2(e,msg)   do { bool <- e; WARN(bool, msg) return () }
diff --git a/compiler/HsVersions.h b/compiler/HsVersions.h
deleted file mode 100644
--- a/compiler/HsVersions.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-
--- For GHC_STAGE
-#include "ghcplatform.h"
-
-#if 0
-
-IMPORTANT!  If you put extra tabs/spaces in these macro definitions,
-you will screw up the layout where they are used in case expressions!
-
-(This is cpp-dependent, of course)
-
-#endif
-
-#define GLOBAL_VAR(name,value,ty)  \
-{-# NOINLINE name #-};             \
-name :: IORef (ty);                \
-name = Util.global (value);
-
-#define GLOBAL_VAR_M(name,value,ty) \
-{-# NOINLINE name #-};              \
-name :: IORef (ty);                 \
-name = Util.globalM (value);
-
-
-#define SHARED_GLOBAL_VAR(name,accessor,saccessor,value,ty) \
-{-# NOINLINE name #-};                                      \
-name :: IORef (ty);                                         \
-name = Util.sharedGlobal (value) (accessor);                \
-foreign import ccall unsafe saccessor                       \
-  accessor :: Ptr (IORef a) -> IO (Ptr (IORef a));
-
-#define SHARED_GLOBAL_VAR_M(name,accessor,saccessor,value,ty)  \
-{-# NOINLINE name #-};                                         \
-name :: IORef (ty);                                            \
-name = Util.sharedGlobalM (value) (accessor);                  \
-foreign import ccall unsafe saccessor                          \
-  accessor :: Ptr (IORef a) -> IO (Ptr (IORef a));
-
-
-#define ASSERT(e)      if debugIsOn && not (e) then (assertPanic __FILE__ __LINE__) else
-#define ASSERT2(e,msg) if debugIsOn && not (e) then (assertPprPanic __FILE__ __LINE__ (msg)) else
-#define WARN( e, msg ) (warnPprTrace (e) __FILE__ __LINE__ (msg)) $
-
--- Examples:   Assuming   flagSet :: String -> m Bool
---
---    do { c   <- getChar; MASSERT( isUpper c ); ... }
---    do { c   <- getChar; MASSERT2( isUpper c, text "Bad" ); ... }
---    do { str <- getStr;  ASSERTM( flagSet str ); .. }
---    do { str <- getStr;  ASSERTM2( flagSet str, text "Bad" ); .. }
---    do { str <- getStr;  WARNM2( flagSet str, text "Flag is set" ); .. }
-#define MASSERT(e)      ASSERT(e) return ()
-#define MASSERT2(e,msg) ASSERT2(e,msg) return ()
-#define ASSERTM(e)      do { bool <- e; MASSERT(bool) }
-#define ASSERTM2(e,msg) do { bool <- e; MASSERT2(bool,msg) }
-#define WARNM2(e,msg)   do { bool <- e; WARN(bool, msg) return () }
diff --git a/compiler/basicTypes/Avail.hs b/compiler/basicTypes/Avail.hs
--- a/compiler/basicTypes/Avail.hs
+++ b/compiler/basicTypes/Avail.hs
@@ -4,7 +4,7 @@
 -- (c) The University of Glasgow
 --
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 module Avail (
     Avails,
diff --git a/compiler/basicTypes/ConLike.hs b/compiler/basicTypes/ConLike.hs
--- a/compiler/basicTypes/ConLike.hs
+++ b/compiler/basicTypes/ConLike.hs
@@ -24,7 +24,7 @@
         , conLikeIsInfix
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/DataCon.hs b/compiler/basicTypes/DataCon.hs
--- a/compiler/basicTypes/DataCon.hs
+++ b/compiler/basicTypes/DataCon.hs
@@ -59,7 +59,7 @@
         promoteDataCon
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/Demand.hs b/compiler/basicTypes/Demand.hs
--- a/compiler/basicTypes/Demand.hs
+++ b/compiler/basicTypes/Demand.hs
@@ -59,7 +59,7 @@
 
      ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/Id.hs b/compiler/basicTypes/Id.hs
--- a/compiler/basicTypes/Id.hs
+++ b/compiler/basicTypes/Id.hs
@@ -114,7 +114,7 @@
 
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/IdInfo.hs b/compiler/basicTypes/IdInfo.hs
--- a/compiler/basicTypes/IdInfo.hs
+++ b/compiler/basicTypes/IdInfo.hs
@@ -80,7 +80,7 @@
         isNeverLevPolyIdInfo
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/Literal.hs b/compiler/basicTypes/Literal.hs
--- a/compiler/basicTypes/Literal.hs
+++ b/compiler/basicTypes/Literal.hs
@@ -47,7 +47,7 @@
         , nullAddrLit, rubbishLit, float2DoubleLit, double2FloatLit
         ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/MkId.hs b/compiler/basicTypes/MkId.hs
--- a/compiler/basicTypes/MkId.hs
+++ b/compiler/basicTypes/MkId.hs
@@ -35,7 +35,7 @@
         module PrelRules
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/NameCache.hs b/compiler/basicTypes/NameCache.hs
--- a/compiler/basicTypes/NameCache.hs
+++ b/compiler/basicTypes/NameCache.hs
@@ -20,7 +20,7 @@
 import Outputable
 import PrelNames
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 {-
 
diff --git a/compiler/basicTypes/NameEnv.hs b/compiler/basicTypes/NameEnv.hs
--- a/compiler/basicTypes/NameEnv.hs
+++ b/compiler/basicTypes/NameEnv.hs
@@ -32,7 +32,7 @@
         depAnal
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/NameSet.hs b/compiler/basicTypes/NameSet.hs
--- a/compiler/basicTypes/NameSet.hs
+++ b/compiler/basicTypes/NameSet.hs
@@ -31,7 +31,7 @@
         findUses, duDefs, duUses, allUses
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/PatSyn.hs b/compiler/basicTypes/PatSyn.hs
--- a/compiler/basicTypes/PatSyn.hs
+++ b/compiler/basicTypes/PatSyn.hs
@@ -22,7 +22,7 @@
         updatePatSynIds, pprPatSynType
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/RdrName.hs b/compiler/basicTypes/RdrName.hs
--- a/compiler/basicTypes/RdrName.hs
+++ b/compiler/basicTypes/RdrName.hs
@@ -68,7 +68,7 @@
         starInfo
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/Unique.hs b/compiler/basicTypes/Unique.hs
--- a/compiler/basicTypes/Unique.hs
+++ b/compiler/basicTypes/Unique.hs
@@ -67,7 +67,7 @@
         dataConWorkerUnique, dataConTyRepNameUnique
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 #include "Unique.h"
 
 import GhcPrelude
diff --git a/compiler/basicTypes/Var.hs b/compiler/basicTypes/Var.hs
--- a/compiler/basicTypes/Var.hs
+++ b/compiler/basicTypes/Var.hs
@@ -85,7 +85,7 @@
 
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/basicTypes/VarSet.hs b/compiler/basicTypes/VarSet.hs
--- a/compiler/basicTypes/VarSet.hs
+++ b/compiler/basicTypes/VarSet.hs
@@ -43,7 +43,7 @@
         dVarSetToVarSet,
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreArity.hs b/compiler/coreSyn/CoreArity.hs
--- a/compiler/coreSyn/CoreArity.hs
+++ b/compiler/coreSyn/CoreArity.hs
@@ -16,7 +16,7 @@
         exprBotStrictness_maybe
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreFVs.hs b/compiler/coreSyn/CoreFVs.hs
--- a/compiler/coreSyn/CoreFVs.hs
+++ b/compiler/coreSyn/CoreFVs.hs
@@ -57,7 +57,7 @@
         freeVarsOfAnn
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreMap.hs b/compiler/coreSyn/CoreMap.hs
--- a/compiler/coreSyn/CoreMap.hs
+++ b/compiler/coreSyn/CoreMap.hs
@@ -35,7 +35,7 @@
    (>.>), (|>), (|>>),
  ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreOpt.hs b/compiler/coreSyn/CoreOpt.hs
--- a/compiler/coreSyn/CoreOpt.hs
+++ b/compiler/coreSyn/CoreOpt.hs
@@ -18,7 +18,7 @@
         pushCoArg, pushCoValArg, pushCoTyArg, collectBindersPushingCo
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreSubst.hs b/compiler/coreSyn/CoreSubst.hs
--- a/compiler/coreSyn/CoreSubst.hs
+++ b/compiler/coreSyn/CoreSubst.hs
@@ -33,7 +33,7 @@
 
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 
 import GhcPrelude
diff --git a/compiler/coreSyn/CoreSyn.hs b/compiler/coreSyn/CoreSyn.hs
--- a/compiler/coreSyn/CoreSyn.hs
+++ b/compiler/coreSyn/CoreSyn.hs
@@ -95,7 +95,7 @@
         isBuiltinRule, isLocalRule, isAutoRule,
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreTidy.hs b/compiler/coreSyn/CoreTidy.hs
--- a/compiler/coreSyn/CoreTidy.hs
+++ b/compiler/coreSyn/CoreTidy.hs
@@ -12,7 +12,7 @@
         tidyExpr, tidyRules, tidyUnfolding
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreUnfold.hs b/compiler/coreSyn/CoreUnfold.hs
--- a/compiler/coreSyn/CoreUnfold.hs
+++ b/compiler/coreSyn/CoreUnfold.hs
@@ -40,7 +40,7 @@
         exprIsConApp_maybe, exprIsLiteral_maybe
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/CoreUtils.hs b/compiler/coreSyn/CoreUtils.hs
--- a/compiler/coreSyn/CoreUtils.hs
+++ b/compiler/coreSyn/CoreUtils.hs
@@ -57,7 +57,7 @@
         isJoinBind
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/coreSyn/MkCore.hs b/compiler/coreSyn/MkCore.hs
--- a/compiler/coreSyn/MkCore.hs
+++ b/compiler/coreSyn/MkCore.hs
@@ -50,7 +50,7 @@
         tYPE_ERROR_ID, aBSENT_SUM_FIELD_ERROR_ID
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/iface/BinFingerprint.hs b/compiler/iface/BinFingerprint.hs
--- a/compiler/iface/BinFingerprint.hs
+++ b/compiler/iface/BinFingerprint.hs
@@ -8,7 +8,7 @@
   , putNameLiterally
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/iface/IfaceSyn.hs b/compiler/iface/IfaceSyn.hs
--- a/compiler/iface/IfaceSyn.hs
+++ b/compiler/iface/IfaceSyn.hs
@@ -40,7 +40,7 @@
         AltPpr(..), ShowSub(..), ShowHowMuch(..), showToIface, showToHeader
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/iface/IfaceType.hs b/compiler/iface/IfaceType.hs
--- a/compiler/iface/IfaceType.hs
+++ b/compiler/iface/IfaceType.hs
@@ -57,7 +57,7 @@
         mkIfaceTySubst, substIfaceTyVar, substIfaceAppArgs, inDomIfaceTySubst
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/iface/ToIface.hs b/compiler/iface/ToIface.hs
--- a/compiler/iface/ToIface.hs
+++ b/compiler/iface/ToIface.hs
@@ -43,7 +43,7 @@
     , toIfaceVar
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/CmdLineParser.hs b/compiler/main/CmdLineParser.hs
--- a/compiler/main/CmdLineParser.hs
+++ b/compiler/main/CmdLineParser.hs
@@ -24,7 +24,7 @@
       deprecate
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/DriverPhases.hs b/compiler/main/DriverPhases.hs
--- a/compiler/main/DriverPhases.hs
+++ b/compiler/main/DriverPhases.hs
@@ -38,7 +38,7 @@
    isSourceFilename
  ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -245,7 +245,7 @@
         CfgWeights(..), backendMaintainsCfg
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/ErrUtils.hs b/compiler/main/ErrUtils.hs
--- a/compiler/main/ErrUtils.hs
+++ b/compiler/main/ErrUtils.hs
@@ -58,7 +58,7 @@
         traceCmd
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/HeaderInfo.hs b/compiler/main/HeaderInfo.hs
--- a/compiler/main/HeaderInfo.hs
+++ b/compiler/main/HeaderInfo.hs
@@ -18,7 +18,7 @@
                   , optionsErrorMsgs,
                     checkProcessArgsResult ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/HscTypes.hs b/compiler/main/HscTypes.hs
--- a/compiler/main/HscTypes.hs
+++ b/compiler/main/HscTypes.hs
@@ -151,7 +151,7 @@
         mkCompleteMatchMap, extendCompleteMatchMap
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/PackageConfig.hs b/compiler/main/PackageConfig.hs
--- a/compiler/main/PackageConfig.hs
+++ b/compiler/main/PackageConfig.hs
@@ -28,7 +28,7 @@
         pprPackageConfig,
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs
--- a/compiler/main/Packages.hs
+++ b/compiler/main/Packages.hs
@@ -63,7 +63,7 @@
     )
 where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/main/SysTools/BaseDir.hs b/compiler/main/SysTools/BaseDir.hs
--- a/compiler/main/SysTools/BaseDir.hs
+++ b/compiler/main/SysTools/BaseDir.hs
@@ -17,7 +17,7 @@
   , tryFindTopDir
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/parser/Ctype.hs b/compiler/parser/Ctype.hs
--- a/compiler/parser/Ctype.hs
+++ b/compiler/parser/Ctype.hs
@@ -14,7 +14,7 @@
         , hexDigit, octDecDigit
         ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/parser/RdrHsSyn.hs b/compiler/parser/RdrHsSyn.hs
--- a/compiler/parser/RdrHsSyn.hs
+++ b/compiler/parser/RdrHsSyn.hs
@@ -142,7 +142,7 @@
 import qualified Data.Monoid as Monoid
 import Data.Data       ( dataTypeOf, fromConstr, dataTypeConstrs )
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 
 {- **********************************************************************
diff --git a/compiler/prelude/KnownUniques.hs b/compiler/prelude/KnownUniques.hs
--- a/compiler/prelude/KnownUniques.hs
+++ b/compiler/prelude/KnownUniques.hs
@@ -24,7 +24,7 @@
     , mkCTupleDataConUnique
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/prelude/PrelNames.hs b/compiler/prelude/PrelNames.hs
--- a/compiler/prelude/PrelNames.hs
+++ b/compiler/prelude/PrelNames.hs
@@ -155,7 +155,7 @@
                                 -- So many that we export them all
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/prelude/PrelRules.hs b/compiler/prelude/PrelRules.hs
--- a/compiler/prelude/PrelRules.hs
+++ b/compiler/prelude/PrelRules.hs
@@ -23,7 +23,7 @@
    )
 where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/prelude/PrimOp.hs b/compiler/prelude/PrimOp.hs
--- a/compiler/prelude/PrimOp.hs
+++ b/compiler/prelude/PrimOp.hs
@@ -23,7 +23,7 @@
         PrimCall(..)
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/prelude/TysPrim.hs b/compiler/prelude/TysPrim.hs
--- a/compiler/prelude/TysPrim.hs
+++ b/compiler/prelude/TysPrim.hs
@@ -87,7 +87,7 @@
 #include "primop-vector-tys-exports.hs-incl"
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/prelude/TysWiredIn.hs b/compiler/prelude/TysWiredIn.hs
--- a/compiler/prelude/TysWiredIn.hs
+++ b/compiler/prelude/TysWiredIn.hs
@@ -127,7 +127,7 @@
 
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/simplCore/OccurAnal.hs b/compiler/simplCore/OccurAnal.hs
--- a/compiler/simplCore/OccurAnal.hs
+++ b/compiler/simplCore/OccurAnal.hs
@@ -17,7 +17,7 @@
         occurAnalysePgm, occurAnalyseExpr, occurAnalyseExpr_NoBinderSwap
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/simplStg/RepType.hs b/compiler/simplStg/RepType.hs
--- a/compiler/simplStg/RepType.hs
+++ b/compiler/simplStg/RepType.hs
@@ -21,7 +21,7 @@
     slotPrimRep, primRepSlot
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/specialise/Rules.hs b/compiler/specialise/Rules.hs
--- a/compiler/specialise/Rules.hs
+++ b/compiler/specialise/Rules.hs
@@ -26,7 +26,7 @@
         lookupRule, mkRule, roughTopNames
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/typecheck/Constraint.hs b/compiler/typecheck/Constraint.hs
--- a/compiler/typecheck/Constraint.hs
+++ b/compiler/typecheck/Constraint.hs
@@ -71,7 +71,7 @@
   )
   where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/typecheck/TcEvidence.hs b/compiler/typecheck/TcEvidence.hs
--- a/compiler/typecheck/TcEvidence.hs
+++ b/compiler/typecheck/TcEvidence.hs
@@ -47,7 +47,7 @@
   tcCoercionRole,
   unwrapIP, wrapIP
   ) where
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/typecheck/TcOrigin.hs b/compiler/typecheck/TcOrigin.hs
--- a/compiler/typecheck/TcOrigin.hs
+++ b/compiler/typecheck/TcOrigin.hs
@@ -21,7 +21,7 @@
 
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/typecheck/TcRnTypes.hs b/compiler/typecheck/TcRnTypes.hs
--- a/compiler/typecheck/TcRnTypes.hs
+++ b/compiler/typecheck/TcRnTypes.hs
@@ -82,7 +82,7 @@
         lookupRoleAnnot, getRoleAnnots
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/typecheck/TcType.hs b/compiler/typecheck/TcType.hs
--- a/compiler/typecheck/TcType.hs
+++ b/compiler/typecheck/TcType.hs
@@ -187,7 +187,7 @@
 
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 -- friends:
 import GhcPrelude
diff --git a/compiler/types/Class.hs b/compiler/types/Class.hs
--- a/compiler/types/Class.hs
+++ b/compiler/types/Class.hs
@@ -21,7 +21,7 @@
         isAbstractClass,
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/CoAxiom.hs b/compiler/types/CoAxiom.hs
--- a/compiler/types/CoAxiom.hs
+++ b/compiler/types/CoAxiom.hs
@@ -49,7 +49,7 @@
 import Data.Array
 import Data.List ( mapAccumL )
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 {-
 Note [Coercion axiom branches]
diff --git a/compiler/types/Coercion.hs b/compiler/types/Coercion.hs
--- a/compiler/types/Coercion.hs
+++ b/compiler/types/Coercion.hs
@@ -114,7 +114,7 @@
         simplifyArgsWorker
        ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import {-# SOURCE #-} ToIface (toIfaceTyCon, tidyToIfaceTcArgs)
 
diff --git a/compiler/types/FamInstEnv.hs b/compiler/types/FamInstEnv.hs
--- a/compiler/types/FamInstEnv.hs
+++ b/compiler/types/FamInstEnv.hs
@@ -37,7 +37,7 @@
         flattenTys
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/InstEnv.hs b/compiler/types/InstEnv.hs
--- a/compiler/types/InstEnv.hs
+++ b/compiler/types/InstEnv.hs
@@ -29,7 +29,7 @@
         isOverlappable, isOverlapping, isIncoherent
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/OptCoercion.hs b/compiler/types/OptCoercion.hs
--- a/compiler/types/OptCoercion.hs
+++ b/compiler/types/OptCoercion.hs
@@ -4,7 +4,7 @@
 
 module OptCoercion ( optCoercion, checkAxInstCo ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/TyCoRep.hs b/compiler/types/TyCoRep.hs
--- a/compiler/types/TyCoRep.hs
+++ b/compiler/types/TyCoRep.hs
@@ -65,7 +65,7 @@
         typeSize, coercionSize, provSize
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
@@ -273,7 +273,7 @@
       checker can handle it; see #16185
 
       For now we use the CPP macro #define FunTy FFunTy _
-      (see HsVersions.h) to allow pattern matching on a
+      (see GhclibHsVersions.h) to allow pattern matching on a
       (positional) FunTy constructor.
 
 {-# COMPLETE FunTy, TyVarTy, AppTy, TyConApp
diff --git a/compiler/types/TyCoSubst.hs b/compiler/types/TyCoSubst.hs
--- a/compiler/types/TyCoSubst.hs
+++ b/compiler/types/TyCoSubst.hs
@@ -50,7 +50,7 @@
         checkValidSubst, isValidTCvSubst,
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/TyCon.hs b/compiler/types/TyCon.hs
--- a/compiler/types/TyCon.hs
+++ b/compiler/types/TyCon.hs
@@ -131,7 +131,7 @@
 
 ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/Type.hs b/compiler/types/Type.hs
--- a/compiler/types/Type.hs
+++ b/compiler/types/Type.hs
@@ -214,7 +214,7 @@
         isKindLevPoly
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/types/Unify.hs b/compiler/types/Unify.hs
--- a/compiler/types/Unify.hs
+++ b/compiler/types/Unify.hs
@@ -24,7 +24,7 @@
         liftCoMatch
    ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/Binary.hs b/compiler/utils/Binary.hs
--- a/compiler/utils/Binary.hs
+++ b/compiler/utils/Binary.hs
@@ -62,7 +62,7 @@
    putDictionary, getDictionary, putFS,
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/Digraph.hs b/compiler/utils/Digraph.hs
--- a/compiler/utils/Digraph.hs
+++ b/compiler/utils/Digraph.hs
@@ -25,7 +25,7 @@
         EdgeType(..), classifyEdges
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 ------------------------------------------------------------------------------
 -- A version of the graph algorithms described in:
diff --git a/compiler/utils/FastFunctions.hs b/compiler/utils/FastFunctions.hs
--- a/compiler/utils/FastFunctions.hs
+++ b/compiler/utils/FastFunctions.hs
@@ -8,7 +8,7 @@
     inlinePerformIO,
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude ()
 
diff --git a/compiler/utils/FastString.hs b/compiler/utils/FastString.hs
--- a/compiler/utils/FastString.hs
+++ b/compiler/utils/FastString.hs
@@ -95,7 +95,7 @@
         lengthPS
        ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude as Prelude
 
diff --git a/compiler/utils/Fingerprint.hs b/compiler/utils/Fingerprint.hs
--- a/compiler/utils/Fingerprint.hs
+++ b/compiler/utils/Fingerprint.hs
@@ -21,7 +21,7 @@
         getFileHash
    ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/ListSetOps.hs b/compiler/utils/ListSetOps.hs
--- a/compiler/utils/ListSetOps.hs
+++ b/compiler/utils/ListSetOps.hs
@@ -21,7 +21,7 @@
         getNth
    ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/Pair.hs b/compiler/utils/Pair.hs
--- a/compiler/utils/Pair.hs
+++ b/compiler/utils/Pair.hs
@@ -8,7 +8,7 @@
 
 module Pair ( Pair(..), unPair, toPair, swap, pLiftFst, pLiftSnd ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/PlainPanic.hs b/compiler/utils/PlainPanic.hs
--- a/compiler/utils/PlainPanic.hs
+++ b/compiler/utils/PlainPanic.hs
@@ -25,7 +25,7 @@
   , progName
   ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import Config
 import Exception
diff --git a/compiler/utils/StringBuffer.hs b/compiler/utils/StringBuffer.hs
--- a/compiler/utils/StringBuffer.hs
+++ b/compiler/utils/StringBuffer.hs
@@ -44,7 +44,7 @@
         parseUnsignedInteger,
        ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/compiler/utils/Util.hs b/compiler/utils/Util.hs
--- a/compiler/utils/Util.hs
+++ b/compiler/utils/Util.hs
@@ -128,7 +128,7 @@
         overrideWith,
     ) where
 
-#include "HsVersions.h"
+#include "GhclibHsVersions.h"
 
 import GhcPrelude
 
diff --git a/ghc-lib-parser.cabal b/ghc-lib-parser.cabal
--- a/ghc-lib-parser.cabal
+++ b/ghc-lib-parser.cabal
@@ -1,7 +1,7 @@
 cabal-version: >=1.22
 build-type: Simple
 name: ghc-lib-parser
-version: 8.10.1.20200412
+version: 8.10.1.20200518
 license: BSD3
 license-file: LICENSE
 category: Development
@@ -48,9 +48,9 @@
     includes/MachDeps.h
     includes/stg/MachRegs.h
     includes/CodeGen.Platform.hs
-    compiler/HsVersions.h
+    compiler/GhclibHsVersions.h
     compiler/Unique.h
-tested-with: GHC==8.8.2, GHC==8.6.5, GHC==8.4.4
+tested-with: GHC==8.10.1, GHC==8.8.2, GHC==8.6.5, GHC==8.4.4
 source-repository head
     type: git
     location: git@github.com:digital-asset/ghc-lib.git
