diff options
Diffstat (limited to 'lang/ghc96/files')
-rw-r--r-- | lang/ghc96/files/UserSettings.hs | 75 | ||||
-rw-r--r-- | lang/ghc96/files/patch-hadrian_hadrian.cabal | 15 | ||||
-rw-r--r-- | lang/ghc96/files/patch-hadrian_src_Hadrian_Haskell_Cabal_Parse.hs | 13 |
3 files changed, 103 insertions, 0 deletions
diff --git a/lang/ghc96/files/UserSettings.hs b/lang/ghc96/files/UserSettings.hs new file mode 100644 index 000000000000..01d8b0187f06 --- /dev/null +++ b/lang/ghc96/files/UserSettings.hs @@ -0,0 +1,75 @@ +-- Ensure we don't expose any unfoldings to guarantee quick rebuilds +{-# OPTIONS_GHC -O0 #-} + +-- If you want to customise your build you should copy this file from +-- hadrian/src/UserSettings.hs to hadrian/UserSettings.hs and edit your copy. +-- If you don't copy the file your changes will be tracked by git and you can +-- accidentally commit them. +-- +-- See doc/user-settings.md for instructions, and src/Flavour.hs for auxiliary +-- functions for manipulating flavours. +-- Please update doc/user-settings.md when committing changes to this file. +module UserSettings ( + userFlavours, userPackages, userDefaultFlavour, + verboseCommand, buildProgressColour, successColour, finalStage + ) where + +import qualified Data.Set as Set +import Flavour.Type +import Expression +import {-# SOURCE #-} Settings.Default + +-- See doc/user-settings.md for instructions. +-- Please update doc/user-settings.md when committing changes to this file. + +-- | Name of the default flavour, i.e the one used when no --flavour=<name> +-- argument is passed to Hadrian. +userDefaultFlavour :: String +userDefaultFlavour = "default" + +-- | User-defined build flavours. See 'userFlavour' as an example. +userFlavours :: [Flavour] +userFlavours = [userFlavour] -- Add more build flavours if need be. + +-- | This is an example user-defined build flavour. Feel free to modify it and +-- use by passing @--flavour=user@ from the command line. +userFlavour :: Flavour +userFlavour = defaultFlavour { + name = "ports" + , libraryWays = Set.difference <$> defaultLibraryWays <*> pure ws + , dynamicGhcPrograms = pure %%DYNAMIC%% +-- , ghcProfiled = %%PROFILE%% + } + where + ws = Set.fromList $ concat [ + if %%DYNAMIC%% then [] else [dynamic] + , if %%PROFILE%% then [] else [profiling]] + +-- | Add user-defined packages. Note, this only lets Hadrian know about the +-- existence of a new package; to actually build it you need to create a new +-- build flavour, modifying the list of packages that are built by default. +userPackages :: [Package] +userPackages = [] + +-- | Set to 'True' to print full command lines during the build process. Note: +-- this is a 'Predicate', hence you can enable verbose output only for certain +-- targets, e.g.: @verboseCommand = package ghcPrim@. +verboseCommand :: Predicate +verboseCommand = do + verbosity <- expr getVerbosity + return $ verbosity >= Verbose + +-- | Set colour for build progress messages (e.g. executing a build command). +buildProgressColour :: BuildProgressColour +buildProgressColour = mkBuildProgressColour (Dull Magenta) + +-- | Set colour for success messages (e.g. a package is built successfully). +successColour :: SuccessColour +successColour = mkSuccessColour (Dull Green) + +-- | Stop after building the StageN compiler. +-- For example, setting the 'finalStage' to 'Stage1' will just build the +-- 'Stage1' compiler. Setting it to 'Stage3' will build the 'Stage3' +-- compiler. Setting it to 'Stage0' will mean nothing gets built at all. +finalStage :: Stage +finalStage = Stage2 diff --git a/lang/ghc96/files/patch-hadrian_hadrian.cabal b/lang/ghc96/files/patch-hadrian_hadrian.cabal new file mode 100644 index 000000000000..7994110951d4 --- /dev/null +++ b/lang/ghc96/files/patch-hadrian_hadrian.cabal @@ -0,0 +1,15 @@ +Hack the bounds to avoid re-rolling the bootstrap compiler. +The bound was added due to https://gitlab.haskell.org/ghc/ghc/-/issues/24382 +but we somehow doesn't seem to be affected by this + +--- hadrian/hadrian.cabal.orig 2025-03-02 13:05:33 UTC ++++ hadrian/hadrian.cabal +@@ -155,7 +155,7 @@ executable hadrian + , containers >= 0.5 && < 0.7 + -- N.B. directory >=1.3.9 as earlier versions are + -- afflicted by #24382. +- , directory >= 1.3.9.0 && < 1.4 ++ , directory < 1.4 + , extra >= 1.4.7 + , filepath + , time diff --git a/lang/ghc96/files/patch-hadrian_src_Hadrian_Haskell_Cabal_Parse.hs b/lang/ghc96/files/patch-hadrian_src_Hadrian_Haskell_Cabal_Parse.hs new file mode 100644 index 000000000000..528e592425f4 --- /dev/null +++ b/lang/ghc96/files/patch-hadrian_src_Hadrian_Haskell_Cabal_Parse.hs @@ -0,0 +1,13 @@ +--- hadrian/src/Hadrian/Haskell/Cabal/Parse.hs.orig 2025-03-02 13:05:33 UTC ++++ hadrian/src/Hadrian/Haskell/Cabal/Parse.hs +@@ -321,8 +321,8 @@ write_inplace_conf pkg_path res_path pd lbi = do + pkg_name = C.display (C.pkgName (CP.sourcePackageId installedPkgInfo)) + final_ipi = installedPkgInfo { + Installed.includeDirs = concatMap fixupIncludeDir (Installed.includeDirs installedPkgInfo), +- Installed.libraryDirs = [ build_dir ], +- Installed.libraryDynDirs = [ build_dir ], ++ Installed.libraryDirs = [ build_dir ] ++ Installed.libraryDirs installedPkgInfo, ++ Installed.libraryDynDirs = [ build_dir ] ++ Installed.libraryDynDirs installedPkgInfo, + Installed.dataDir = "${pkgroot}/../../../../" ++ pkg_path, + Installed.haddockHTMLs = [build_dir ++ "/doc/html/" ++ C.display (CP.sourcePackageId installedPkgInfo)], + Installed.haddockInterfaces = [build_dir ++ "/doc/html/" ++ pkg_name ++ "/" ++ pkg_name ++ ".haddock"], |