ports/lang/ghc/patches/patch-compiler_GHC_Linker_Loader_hs

44 lines
1.8 KiB
Text

Collected c41c478eb9003eaa9fc8081a0039652448124f5d (and a bit
6563cd2473a309b135eb8f950adf28b9f3d8e5c2) out of ghc repository
to be removed in ghc 9.4 era.
Index: compiler/GHC/Linker/Loader.hs
--- compiler/GHC/Linker/Loader.hs.orig
+++ compiler/GHC/Linker/Loader.hs
@@ -587,12 +587,16 @@ dieWith dflags span msg = throwGhcExceptionIO (Program
checkNonStdWay :: DynFlags -> Interp -> SrcSpan -> IO (Maybe FilePath)
-checkNonStdWay dflags interp srcspan
+checkNonStdWay _dflags interp _srcspan
| ExternalInterp {} <- interpInstance interp = return Nothing
-- with -fexternal-interpreter we load the .o files, whatever way
-- they were built. If they were built for a non-std way, then
-- we will use the appropriate variant of the iserv binary to load them.
+-- #if-guard the following equations otherwise the pattern match checker will
+-- complain that they are redundant.
+#if defined(HAVE_INTERNAL_INTERPRETER)
+checkNonStdWay dflags _interp srcspan
| hostFullWays == targetFullWays = return Nothing
-- Only if we are compiling with the same ways as GHC is built
-- with, can we dynamically load those object files. (see #3604)
@@ -607,8 +611,8 @@ checkNonStdWay dflags interp srcspan
"" -> ""
tag -> tag ++ "_"
-normalObjectSuffix :: String
-normalObjectSuffix = phaseInputExt StopLn
+ normalObjectSuffix :: String
+ normalObjectSuffix = phaseInputExt StopLn
failNonStd :: DynFlags -> SrcSpan -> IO (Maybe FilePath)
failNonStd dflags srcspan = dieWith dflags srcspan $
@@ -628,6 +632,7 @@ failNonStd dflags srcspan = dieWith dflags srcspan $
| hostIsDynamic = text "with -dynamic"
| hostIsProfiled = text "with -prof"
| otherwise = text "the normal way"
+#endif
getLinkDeps :: HscEnv -> HomePackageTable
-> LoaderState