summaryrefslogtreecommitdiff
path: root/.gitlab/gen_ci.hs
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/gen_ci.hs')
-rwxr-xr-x.gitlab/gen_ci.hs25
1 files changed, 16 insertions, 9 deletions
diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs
index 2e927f4f26..b9c809b271 100755
--- a/.gitlab/gen_ci.hs
+++ b/.gitlab/gen_ci.hs
@@ -130,6 +130,7 @@ data BuildConfig
, fullyStatic :: Bool
, tablesNextToCode :: Bool
, threadSanitiser :: Bool
+ , noSplitSections :: Bool
}
-- Extra arguments to pass to ./configure due to the BuildConfig
@@ -146,13 +147,14 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts
opts = [Llvm | llvmBootstrap] ++
[Dwarf | withDwarf] ++
[FullyStatic | fullyStatic] ++
- [ThreadSanitiser | threadSanitiser]
+ [ThreadSanitiser | threadSanitiser] ++
+ [NoSplitSections | noSplitSections, buildFlavour == Release ]
data Flavour = Flavour BaseFlavour [FlavourTrans]
-data FlavourTrans = Llvm | Dwarf | FullyStatic | ThreadSanitiser
+data FlavourTrans = Llvm | Dwarf | FullyStatic | ThreadSanitiser | NoSplitSections
-data BaseFlavour = Release | Validate | SlowValidate
+data BaseFlavour = Release | Validate | SlowValidate deriving Eq
-----------------------------------------------------------------------------
-- Build Configs
@@ -174,8 +176,12 @@ vanilla = BuildConfig
, fullyStatic = False
, tablesNextToCode = True
, threadSanitiser = False
+ , noSplitSections = False
}
+splitSectionsBroken :: BuildConfig -> BuildConfig
+splitSectionsBroken bc = bc { noSplitSections = True }
+
nativeInt :: BuildConfig
nativeInt = vanilla { bignumBackend = Native }
@@ -290,6 +296,7 @@ flavourString (Flavour base trans) = baseString base ++ concatMap (("+" ++) . fl
flavourString Dwarf = "debug_info"
flavourString FullyStatic = "fully_static"
flavourString ThreadSanitiser = "thread_sanitizer"
+ flavourString NoSplitSections = "no_split_sections"
-- The path to the docker image (just for linux builders)
dockerImage :: Arch -> Opsys -> Maybe String
@@ -792,24 +799,24 @@ jobs = Map.fromList $ concatMap flattenJobGroup $
, disableValidate (standardBuilds Amd64 (Linux Debian11))
-- We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19
-- not being at EOL until April 2023 and they still need tinfo5.
- , disableValidate (standardBuilds Amd64 (Linux Debian9))
+ , disableValidate (standardBuildsWithConfig Amd64 (Linux Debian9) (splitSectionsBroken vanilla))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu2004))
- , disableValidate (standardBuilds Amd64 (Linux Centos7))
+ , disableValidate (standardBuildsWithConfig Amd64 (Linux Centos7) (splitSectionsBroken vanilla))
-- Fedora33 job is always built with perf so there's one job in the normal
-- validate pipeline which is built with perf.
, (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig)
-- This job is only for generating head.hackage docs
, hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf)
- , fastCI (standardBuilds Amd64 Windows)
- , disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt)
+ , fastCI (standardBuildsWithConfig Amd64 Windows (splitSectionsBroken vanilla))
+ , disableValidate (standardBuildsWithConfig Amd64 Windows (splitSectionsBroken nativeInt))
, standardBuilds Amd64 Darwin
, allowFailureGroup (addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD13))
, standardBuilds AArch64 Darwin
, standardBuilds AArch64 (Linux Debian10)
, disableValidate (standardBuildsWithConfig AArch64 (Linux Debian10) llvm)
- , standardBuilds I386 (Linux Debian9)
- , standardBuildsWithConfig Amd64 (Linux Alpine) static
+ , standardBuildsWithConfig I386 (Linux Debian9) (splitSectionsBroken vanilla)
+ , standardBuildsWithConfig Amd64 (Linux Alpine) (splitSectionsBroken static)
, disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine) staticNativeInt))
, validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Emulator "qemu-aarch64 -L /usr/aarch64-linux-gnu") Nothing)
, validateBuilds Amd64 (Linux Debian11) (crossConfig "js-unknown-ghcjs" NoEmulatorNeeded (Just "emconfigure")