Cheng Shao pushed to branch wip/ubsan at Glasgow Haskell Compiler / GHC
Commits:
-
30675d8a
by Cheng Shao at 2025-11-08T19:04:34+01:00
-
3c311c11
by Cheng Shao at 2025-11-08T19:21:40+01:00
-
f89f309b
by Cheng Shao at 2025-11-08T19:26:14+01:00
11 changed files:
- .gitlab-ci.yml
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- configure.ac
- hadrian/doc/flavours.md
- hadrian/src/Flavour.hs
- rts/rts.cabal
- testsuite/driver/testglobals.py
- testsuite/driver/testlib.py
Changes:
| ... | ... | @@ -11,7 +11,7 @@ variables: |
| 11 | 11 | GIT_SSL_NO_VERIFY: "1"
|
| 12 | 12 | |
| 13 | 13 | # Commit of ghc/ci-images repository from which to pull Docker images
|
| 14 | - DOCKER_REV: a97d5c67d803c6b3811c6cccdf33dc8e9d7eafe3
|
|
| 14 | + DOCKER_REV: 73a36525413f808b902980ce2edccd759f2ae9b8
|
|
| 15 | 15 | |
| 16 | 16 | # Sequential version number of all cached things.
|
| 17 | 17 | # Bump to invalidate GitLab CI cache.
|
| ... | ... | @@ -444,14 +444,14 @@ hadrian-ghc-in-ghci: |
| 444 | 444 | hadrian-multi:
|
| 445 | 445 | stage: testing
|
| 446 | 446 | needs:
|
| 447 | - - job: x86_64-linux-fedora42-release
|
|
| 447 | + - job: x86_64-linux-fedora43-release
|
|
| 448 | 448 | optional: true
|
| 449 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 449 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 450 | 450 | optional: true
|
| 451 | - - job: release-x86_64-linux-fedora42-release
|
|
| 451 | + - job: release-x86_64-linux-fedora43-release
|
|
| 452 | 452 | optional: true
|
| 453 | 453 | dependencies: null
|
| 454 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 454 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 455 | 455 | before_script:
|
| 456 | 456 | # workaround for docker permissions
|
| 457 | 457 | - sudo chown ghc:ghc -R .
|
| ... | ... | @@ -471,7 +471,7 @@ hadrian-multi: |
| 471 | 471 | - ls
|
| 472 | 472 | - |
|
| 473 | 473 | mkdir tmp
|
| 474 | - tar -xf ghc-x86_64-linux-fedora42-release.tar.xz -C tmp
|
|
| 474 | + tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 475 | 475 | pushd tmp/ghc-*/
|
| 476 | 476 | ./configure --prefix=$root
|
| 477 | 477 | make install
|
| ... | ... | @@ -533,17 +533,17 @@ test-cabal-reinstall-x86_64-linux-deb10: |
| 533 | 533 | abi-test-nightly:
|
| 534 | 534 | stage: full-build
|
| 535 | 535 | needs:
|
| 536 | - - job: nightly-x86_64-linux-fedora42-release-hackage
|
|
| 537 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 536 | + - job: nightly-x86_64-linux-fedora43-release-hackage
|
|
| 537 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 538 | 538 | tags:
|
| 539 | 539 | - x86_64-linux
|
| 540 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 540 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 541 | 541 | dependencies: null
|
| 542 | 542 | before_script:
|
| 543 | 543 | - mkdir -p normal
|
| 544 | 544 | - mkdir -p hackage
|
| 545 | - - tar -xf ghc-x86_64-linux-fedora42-release.tar.xz -C normal/
|
|
| 546 | - - tar -xf ghc-x86_64-linux-fedora42-release-hackage_docs.tar.xz -C hackage/
|
|
| 545 | + - tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C normal/
|
|
| 546 | + - tar -xf ghc-x86_64-linux-fedora43-release-hackage_docs.tar.xz -C hackage/
|
|
| 547 | 547 | script:
|
| 548 | 548 | - .gitlab/ci.sh compare_interfaces_of "normal/ghc-*" "hackage/ghc-*"
|
| 549 | 549 | artifacts:
|
| ... | ... | @@ -620,9 +620,9 @@ doc-tarball: |
| 620 | 620 | hackage-doc-tarball:
|
| 621 | 621 | stage: packaging
|
| 622 | 622 | needs:
|
| 623 | - - job: nightly-x86_64-linux-fedora42-release-hackage
|
|
| 623 | + - job: nightly-x86_64-linux-fedora43-release-hackage
|
|
| 624 | 624 | optional: true
|
| 625 | - - job: release-x86_64-linux-fedora42-release-hackage
|
|
| 625 | + - job: release-x86_64-linux-fedora43-release-hackage
|
|
| 626 | 626 | optional: true
|
| 627 | 627 | - job: source-tarball
|
| 628 | 628 | tags:
|
| ... | ... | @@ -639,7 +639,7 @@ hackage-doc-tarball: |
| 639 | 639 | - hackage_docs
|
| 640 | 640 | before_script:
|
| 641 | 641 | - tar -xf ghc-*[0-9]-src.tar.xz
|
| 642 | - - tar -xf ghc-x86_64-linux-fedora42-release.tar.xz -C ghc*/
|
|
| 642 | + - tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C ghc*/
|
|
| 643 | 643 | script:
|
| 644 | 644 | - cd ghc*/
|
| 645 | 645 | - mv .gitlab/rel_eng/upload_ghc_libs.py .
|
| ... | ... | @@ -765,7 +765,7 @@ test-bootstrap: |
| 765 | 765 | # Triggering jobs in the ghc/head.hackage project requires that we have a job
|
| 766 | 766 | # token for that repository. Furthermore the head.hackage CI job must have
|
| 767 | 767 | # access to an unprivileged access token with the ability to query the ghc/ghc
|
| 768 | -# project such that it can find the job ID of the fedora42 job for the current
|
|
| 768 | +# project such that it can find the job ID of the fedora43 job for the current
|
|
| 769 | 769 | # pipeline.
|
| 770 | 770 | #
|
| 771 | 771 | # hackage-lint: Can be triggered on any MR, normal validate pipeline or nightly build.
|
| ... | ... | @@ -852,7 +852,7 @@ nightly-hackage-lint: |
| 852 | 852 | |
| 853 | 853 | nightly-hackage-perf:
|
| 854 | 854 | needs:
|
| 855 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 855 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 856 | 856 | optional: true
|
| 857 | 857 | artifacts: false
|
| 858 | 858 | - job: nightly-aarch64-linux-deb12-validate
|
| ... | ... | @@ -871,7 +871,7 @@ nightly-hackage-perf: |
| 871 | 871 | |
| 872 | 872 | release-hackage-lint:
|
| 873 | 873 | needs:
|
| 874 | - - job: release-x86_64-linux-fedora42-release
|
|
| 874 | + - job: release-x86_64-linux-fedora43-release
|
|
| 875 | 875 | optional: true
|
| 876 | 876 | artifacts: false
|
| 877 | 877 | - job: release-aarch64-linux-deb12-release+no_split_sections
|
| ... | ... | @@ -957,13 +957,13 @@ perf-nofib: |
| 957 | 957 | allow_failure: true
|
| 958 | 958 | stage: testing
|
| 959 | 959 | needs:
|
| 960 | - - job: x86_64-linux-fedora42-release
|
|
| 960 | + - job: x86_64-linux-fedora43-release
|
|
| 961 | 961 | optional: true
|
| 962 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 962 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 963 | 963 | optional: true
|
| 964 | - - job: release-x86_64-linux-fedora42-release
|
|
| 964 | + - job: release-x86_64-linux-fedora43-release
|
|
| 965 | 965 | optional: true
|
| 966 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 966 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 967 | 967 | rules:
|
| 968 | 968 | - when: never
|
| 969 | 969 | - *full-ci
|
| ... | ... | @@ -976,7 +976,7 @@ perf-nofib: |
| 976 | 976 | - root=$(pwd)/ghc
|
| 977 | 977 | - |
|
| 978 | 978 | mkdir tmp
|
| 979 | - tar -xf ../ghc-x86_64-linux-fedora42-release.tar.xz -C tmp
|
|
| 979 | + tar -xf ../ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 980 | 980 | pushd tmp/ghc-*/
|
| 981 | 981 | ./configure --prefix=$root
|
| 982 | 982 | make install
|
| ... | ... | @@ -1000,14 +1000,14 @@ perf-nofib: |
| 1000 | 1000 | perf:
|
| 1001 | 1001 | stage: testing
|
| 1002 | 1002 | needs:
|
| 1003 | - - job: x86_64-linux-fedora42-release
|
|
| 1003 | + - job: x86_64-linux-fedora43-release
|
|
| 1004 | 1004 | optional: true
|
| 1005 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 1005 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 1006 | 1006 | optional: true
|
| 1007 | - - job: release-x86_64-linux-fedora42-release
|
|
| 1007 | + - job: release-x86_64-linux-fedora43-release
|
|
| 1008 | 1008 | optional: true
|
| 1009 | 1009 | dependencies: null
|
| 1010 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 1010 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 1011 | 1011 | tags:
|
| 1012 | 1012 | - x86_64-linux-perf
|
| 1013 | 1013 | before_script:
|
| ... | ... | @@ -1017,7 +1017,7 @@ perf: |
| 1017 | 1017 | - root=$(pwd)/ghc
|
| 1018 | 1018 | - |
|
| 1019 | 1019 | mkdir tmp
|
| 1020 | - tar -xf ghc-x86_64-linux-fedora42-release.tar.xz -C tmp
|
|
| 1020 | + tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 1021 | 1021 | pushd tmp/ghc-*/
|
| 1022 | 1022 | ./configure --prefix=$root
|
| 1023 | 1023 | make install
|
| ... | ... | @@ -1041,14 +1041,14 @@ perf: |
| 1041 | 1041 | abi-test:
|
| 1042 | 1042 | stage: testing
|
| 1043 | 1043 | needs:
|
| 1044 | - - job: x86_64-linux-fedora42-release
|
|
| 1044 | + - job: x86_64-linux-fedora43-release
|
|
| 1045 | 1045 | optional: true
|
| 1046 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 1046 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 1047 | 1047 | optional: true
|
| 1048 | - - job: release-x86_64-linux-fedora42-release
|
|
| 1048 | + - job: release-x86_64-linux-fedora43-release
|
|
| 1049 | 1049 | optional: true
|
| 1050 | 1050 | dependencies: null
|
| 1051 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 1051 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 1052 | 1052 | rules:
|
| 1053 | 1053 | - if: $CI_MERGE_REQUEST_ID
|
| 1054 | 1054 | - if: '$CI_COMMIT_BRANCH == "master"'
|
| ... | ... | @@ -1059,7 +1059,7 @@ abi-test: |
| 1059 | 1059 | - root=$(pwd)/ghc
|
| 1060 | 1060 | - |
|
| 1061 | 1061 | mkdir tmp
|
| 1062 | - tar -xf ghc-x86_64-linux-fedora42-release.tar.xz -C tmp
|
|
| 1062 | + tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 1063 | 1063 | pushd tmp/ghc-*/
|
| 1064 | 1064 | ./configure --prefix=$root
|
| 1065 | 1065 | make install
|
| ... | ... | @@ -1214,7 +1214,7 @@ ghcup-metadata-nightly: |
| 1214 | 1214 | extends: .ghcup-metadata
|
| 1215 | 1215 | # Explicit needs for validate pipeline because we only need certain bindists
|
| 1216 | 1216 | needs:
|
| 1217 | - - job: nightly-x86_64-linux-fedora42-release
|
|
| 1217 | + - job: nightly-x86_64-linux-fedora43-release
|
|
| 1218 | 1218 | artifacts: false
|
| 1219 | 1219 | - job: nightly-x86_64-linux-ubuntu24_04-validate
|
| 1220 | 1220 | artifacts: false
|
| ... | ... | @@ -1265,7 +1265,7 @@ ghcup-metadata-nightly: |
| 1265 | 1265 | # Update the ghcup metadata with information about this nightly pipeline
|
| 1266 | 1266 | ghcup-metadata-nightly-push:
|
| 1267 | 1267 | stage: deploy
|
| 1268 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV"
|
|
| 1268 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 1269 | 1269 | dependencies: null
|
| 1270 | 1270 | tags:
|
| 1271 | 1271 | - x86_64-linux
|
| ... | ... | @@ -82,7 +82,7 @@ The generated names for the jobs is important as there are a few downstream cons |
| 82 | 82 | of the jobs artifacts. Therefore some care should be taken if changing the generated
|
| 83 | 83 | names of jobs to update these other places.
|
| 84 | 84 | |
| 85 | -1. fedora42 jobs are required by head.hackage
|
|
| 85 | +1. fedora43 jobs are required by head.hackage
|
|
| 86 | 86 | 2. The fetch-gitlab release utility pulls release artifacts from the
|
| 87 | 87 | 3. The ghc-head-from script downloads release artifacts based on a pipeline change.
|
| 88 | 88 | 4. Some subsequent CI jobs have explicit dependencies (for example docs-tarball, perf, perf-nofib)
|
| ... | ... | @@ -118,7 +118,7 @@ data LinuxDistro |
| 118 | 118 | | Debian11Js
|
| 119 | 119 | | Debian10
|
| 120 | 120 | | Debian9
|
| 121 | - | Fedora42
|
|
| 121 | + | Fedora43
|
|
| 122 | 122 | | Ubuntu2404LoongArch64
|
| 123 | 123 | | Ubuntu2404
|
| 124 | 124 | | Ubuntu2204
|
| ... | ... | @@ -161,6 +161,7 @@ data BuildConfig |
| 161 | 161 | , hostFullyStatic :: Bool
|
| 162 | 162 | , tablesNextToCode :: Bool
|
| 163 | 163 | , threadSanitiser :: Bool
|
| 164 | + , ubsan :: Bool
|
|
| 164 | 165 | , noSplitSections :: Bool
|
| 165 | 166 | , validateNonmovingGc :: Bool
|
| 166 | 167 | , textWithSIMDUTF :: Bool
|
| ... | ... | @@ -186,6 +187,7 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts |
| 186 | 187 | [FullyStatic | fullyStatic] ++
|
| 187 | 188 | [HostFullyStatic | hostFullyStatic] ++
|
| 188 | 189 | [ThreadSanitiser | threadSanitiser] ++
|
| 190 | + [UBSan | ubsan] ++
|
|
| 189 | 191 | [NoSplitSections | noSplitSections, buildFlavour == Release ] ++
|
| 190 | 192 | [BootNonmovingGc | validateNonmovingGc ] ++
|
| 191 | 193 | [TextWithSIMDUTF | textWithSIMDUTF]
|
| ... | ... | @@ -198,6 +200,7 @@ data FlavourTrans = |
| 198 | 200 | | FullyStatic
|
| 199 | 201 | | HostFullyStatic
|
| 200 | 202 | | ThreadSanitiser
|
| 203 | + | UBSan
|
|
| 201 | 204 | | NoSplitSections
|
| 202 | 205 | | BootNonmovingGc
|
| 203 | 206 | | TextWithSIMDUTF
|
| ... | ... | @@ -226,6 +229,7 @@ vanilla = BuildConfig |
| 226 | 229 | , hostFullyStatic = False
|
| 227 | 230 | , tablesNextToCode = True
|
| 228 | 231 | , threadSanitiser = False
|
| 232 | + , ubsan = False
|
|
| 229 | 233 | , noSplitSections = False
|
| 230 | 234 | , validateNonmovingGc = False
|
| 231 | 235 | , textWithSIMDUTF = False
|
| ... | ... | @@ -279,6 +283,9 @@ llvm = vanilla { llvmBootstrap = True } |
| 279 | 283 | tsan :: BuildConfig
|
| 280 | 284 | tsan = vanilla { threadSanitiser = True }
|
| 281 | 285 | |
| 286 | +enableUBSan :: BuildConfig
|
|
| 287 | +enableUBSan = vanilla { ubsan = True }
|
|
| 288 | + |
|
| 282 | 289 | noTntc :: BuildConfig
|
| 283 | 290 | noTntc = vanilla { tablesNextToCode = False }
|
| 284 | 291 | |
| ... | ... | @@ -318,7 +325,7 @@ distroName Debian12Riscv = "deb12-riscv" |
| 318 | 325 | distroName Debian12Wine = "deb12-wine"
|
| 319 | 326 | distroName Debian10 = "deb10"
|
| 320 | 327 | distroName Debian9 = "deb9"
|
| 321 | -distroName Fedora42 = "fedora42"
|
|
| 328 | +distroName Fedora43 = "fedora43"
|
|
| 322 | 329 | distroName Ubuntu2404LoongArch64 = "ubuntu24_04-loongarch"
|
| 323 | 330 | distroName Ubuntu1804 = "ubuntu18_04"
|
| 324 | 331 | distroName Ubuntu2004 = "ubuntu20_04"
|
| ... | ... | @@ -373,6 +380,7 @@ flavourString (Flavour base trans) = base_string base ++ concatMap (("+" ++) . f |
| 373 | 380 | flavour_string FullyStatic = "fully_static"
|
| 374 | 381 | flavour_string HostFullyStatic = "host_fully_static"
|
| 375 | 382 | flavour_string ThreadSanitiser = "thread_sanitizer_cmm"
|
| 383 | + flavour_string UBSan = "ubsan"
|
|
| 376 | 384 | flavour_string NoSplitSections = "no_split_sections"
|
| 377 | 385 | flavour_string BootNonmovingGc = "boot_nonmoving_gc"
|
| 378 | 386 | flavour_string TextWithSIMDUTF = "text_simdutf"
|
| ... | ... | @@ -1196,13 +1204,17 @@ rhel_x86 = |
| 1196 | 1204 | |
| 1197 | 1205 | fedora_x86 :: [JobGroup Job]
|
| 1198 | 1206 | fedora_x86 =
|
| 1199 | - [ -- Fedora42 job is always built with perf so there's one job in the normal
|
|
| 1207 | + [ -- Fedora43 job is always built with perf so there's one job in the normal
|
|
| 1200 | 1208 | -- validate pipeline which is built with perf.
|
| 1201 | - fastCI (standardBuildsWithConfig Amd64 (Linux Fedora42) releaseConfig)
|
|
| 1209 | + fastCI (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig)
|
|
| 1202 | 1210 | -- This job is only for generating head.hackage docs
|
| 1203 | - , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora42) releaseConfig))
|
|
| 1204 | - , disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora42) dwarf)
|
|
| 1205 | - , disableValidate (standardBuilds Amd64 (Linux Fedora42))
|
|
| 1211 | + , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig))
|
|
| 1212 | + , disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) dwarf)
|
|
| 1213 | + , disableValidate (standardBuilds Amd64 (Linux Fedora43))
|
|
| 1214 | + -- For UBSan jobs, only enable for validate/nightly pipelines.
|
|
| 1215 | + -- Also disable docs since it's not the point for UBSan jobs.
|
|
| 1216 | + , modifyJobs (setVariable "HADRIAN_ARGS" "--docs=none") $
|
|
| 1217 | + validateBuilds Amd64 (Linux Fedora43) enableUBSan
|
|
| 1206 | 1218 | ]
|
| 1207 | 1219 | where
|
| 1208 | 1220 | hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
|
| ... | ... | @@ -1364,7 +1376,7 @@ platform_mapping = Map.map go combined_result |
| 1364 | 1376 | , "x86_64-linux-deb11-validate"
|
| 1365 | 1377 | , "x86_64-linux-deb12-validate"
|
| 1366 | 1378 | , "x86_64-linux-deb10-validate+debug_info"
|
| 1367 | - , "x86_64-linux-fedora42-release"
|
|
| 1379 | + , "x86_64-linux-fedora43-release"
|
|
| 1368 | 1380 | , "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
|
| 1369 | 1381 | , "x86_64-windows-validate"
|
| 1370 | 1382 | , "aarch64-linux-deb12-validate"
|
| ... | ... | @@ -1379,13 +1391,13 @@ platform_mapping = Map.map go combined_result |
| 1379 | 1391 | , "nightly-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate"
|
| 1380 | 1392 | , "nightly-x86_64-linux-alpine3_12-validate+fully_static"
|
| 1381 | 1393 | , "nightly-x86_64-linux-deb10-validate"
|
| 1382 | - , "nightly-x86_64-linux-fedora42-release"
|
|
| 1394 | + , "nightly-x86_64-linux-fedora43-release"
|
|
| 1383 | 1395 | , "nightly-x86_64-windows-validate"
|
| 1384 | 1396 | , "release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections"
|
| 1385 | 1397 | , "release-x86_64-linux-deb10-release"
|
| 1386 | 1398 | , "release-x86_64-linux-deb11-release"
|
| 1387 | 1399 | , "release-x86_64-linux-deb12-release"
|
| 1388 | - , "release-x86_64-linux-fedora42-release"
|
|
| 1400 | + , "release-x86_64-linux-fedora43-release"
|
|
| 1389 | 1401 | , "release-x86_64-windows-release"
|
| 1390 | 1402 | ]
|
| 1391 | 1403 |
| ... | ... | @@ -2942,7 +2942,7 @@ |
| 2942 | 2942 | "XZ_OPT": "-9"
|
| 2943 | 2943 | }
|
| 2944 | 2944 | },
|
| 2945 | - "nightly-x86_64-linux-fedora42-release": {
|
|
| 2945 | + "nightly-x86_64-linux-fedora43-release": {
|
|
| 2946 | 2946 | "after_script": [
|
| 2947 | 2947 | ".gitlab/ci.sh save_cache",
|
| 2948 | 2948 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -2953,7 +2953,7 @@ |
| 2953 | 2953 | "artifacts": {
|
| 2954 | 2954 | "expire_in": "8 weeks",
|
| 2955 | 2955 | "paths": [
|
| 2956 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 2956 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 2957 | 2957 | "junit.xml",
|
| 2958 | 2958 | "unexpected-test-output.tar.gz"
|
| 2959 | 2959 | ],
|
| ... | ... | @@ -2963,14 +2963,14 @@ |
| 2963 | 2963 | "when": "always"
|
| 2964 | 2964 | },
|
| 2965 | 2965 | "cache": {
|
| 2966 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 2966 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 2967 | 2967 | "paths": [
|
| 2968 | 2968 | "cabal-cache",
|
| 2969 | 2969 | "toolchain"
|
| 2970 | 2970 | ]
|
| 2971 | 2971 | },
|
| 2972 | 2972 | "dependencies": [],
|
| 2973 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 2973 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 2974 | 2974 | "needs": [
|
| 2975 | 2975 | {
|
| 2976 | 2976 | "artifacts": false,
|
| ... | ... | @@ -2996,16 +2996,16 @@ |
| 2996 | 2996 | ],
|
| 2997 | 2997 | "variables": {
|
| 2998 | 2998 | "BIGNUM_BACKEND": "gmp",
|
| 2999 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 2999 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 3000 | 3000 | "BUILD_FLAVOUR": "release",
|
| 3001 | 3001 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3002 | 3002 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3003 | 3003 | "RUNTEST_ARGS": "",
|
| 3004 | - "TEST_ENV": "x86_64-linux-fedora42-release",
|
|
| 3004 | + "TEST_ENV": "x86_64-linux-fedora43-release",
|
|
| 3005 | 3005 | "XZ_OPT": "-9"
|
| 3006 | 3006 | }
|
| 3007 | 3007 | },
|
| 3008 | - "nightly-x86_64-linux-fedora42-release-hackage": {
|
|
| 3008 | + "nightly-x86_64-linux-fedora43-release-hackage": {
|
|
| 3009 | 3009 | "after_script": [
|
| 3010 | 3010 | ".gitlab/ci.sh save_cache",
|
| 3011 | 3011 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -3016,7 +3016,7 @@ |
| 3016 | 3016 | "artifacts": {
|
| 3017 | 3017 | "expire_in": "8 weeks",
|
| 3018 | 3018 | "paths": [
|
| 3019 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 3019 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 3020 | 3020 | "junit.xml",
|
| 3021 | 3021 | "unexpected-test-output.tar.gz"
|
| 3022 | 3022 | ],
|
| ... | ... | @@ -3026,14 +3026,14 @@ |
| 3026 | 3026 | "when": "always"
|
| 3027 | 3027 | },
|
| 3028 | 3028 | "cache": {
|
| 3029 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 3029 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 3030 | 3030 | "paths": [
|
| 3031 | 3031 | "cabal-cache",
|
| 3032 | 3032 | "toolchain"
|
| 3033 | 3033 | ]
|
| 3034 | 3034 | },
|
| 3035 | 3035 | "dependencies": [],
|
| 3036 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 3036 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 3037 | 3037 | "needs": [
|
| 3038 | 3038 | {
|
| 3039 | 3039 | "artifacts": false,
|
| ... | ... | @@ -3059,17 +3059,17 @@ |
| 3059 | 3059 | ],
|
| 3060 | 3060 | "variables": {
|
| 3061 | 3061 | "BIGNUM_BACKEND": "gmp",
|
| 3062 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 3062 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 3063 | 3063 | "BUILD_FLAVOUR": "release",
|
| 3064 | 3064 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3065 | 3065 | "HADRIAN_ARGS": "--haddock-for-hackage",
|
| 3066 | 3066 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3067 | 3067 | "RUNTEST_ARGS": "",
|
| 3068 | - "TEST_ENV": "x86_64-linux-fedora42-release",
|
|
| 3068 | + "TEST_ENV": "x86_64-linux-fedora43-release",
|
|
| 3069 | 3069 | "XZ_OPT": "-9"
|
| 3070 | 3070 | }
|
| 3071 | 3071 | },
|
| 3072 | - "nightly-x86_64-linux-fedora42-validate": {
|
|
| 3072 | + "nightly-x86_64-linux-fedora43-validate": {
|
|
| 3073 | 3073 | "after_script": [
|
| 3074 | 3074 | ".gitlab/ci.sh save_cache",
|
| 3075 | 3075 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -3080,7 +3080,7 @@ |
| 3080 | 3080 | "artifacts": {
|
| 3081 | 3081 | "expire_in": "8 weeks",
|
| 3082 | 3082 | "paths": [
|
| 3083 | - "ghc-x86_64-linux-fedora42-validate.tar.xz",
|
|
| 3083 | + "ghc-x86_64-linux-fedora43-validate.tar.xz",
|
|
| 3084 | 3084 | "junit.xml",
|
| 3085 | 3085 | "unexpected-test-output.tar.gz"
|
| 3086 | 3086 | ],
|
| ... | ... | @@ -3090,14 +3090,14 @@ |
| 3090 | 3090 | "when": "always"
|
| 3091 | 3091 | },
|
| 3092 | 3092 | "cache": {
|
| 3093 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 3093 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 3094 | 3094 | "paths": [
|
| 3095 | 3095 | "cabal-cache",
|
| 3096 | 3096 | "toolchain"
|
| 3097 | 3097 | ]
|
| 3098 | 3098 | },
|
| 3099 | 3099 | "dependencies": [],
|
| 3100 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 3100 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 3101 | 3101 | "needs": [
|
| 3102 | 3102 | {
|
| 3103 | 3103 | "artifacts": false,
|
| ... | ... | @@ -3123,16 +3123,16 @@ |
| 3123 | 3123 | ],
|
| 3124 | 3124 | "variables": {
|
| 3125 | 3125 | "BIGNUM_BACKEND": "gmp",
|
| 3126 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-validate",
|
|
| 3126 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate",
|
|
| 3127 | 3127 | "BUILD_FLAVOUR": "validate",
|
| 3128 | 3128 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3129 | 3129 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3130 | 3130 | "RUNTEST_ARGS": "",
|
| 3131 | - "TEST_ENV": "x86_64-linux-fedora42-validate",
|
|
| 3131 | + "TEST_ENV": "x86_64-linux-fedora43-validate",
|
|
| 3132 | 3132 | "XZ_OPT": "-9"
|
| 3133 | 3133 | }
|
| 3134 | 3134 | },
|
| 3135 | - "nightly-x86_64-linux-fedora42-validate+debug_info": {
|
|
| 3135 | + "nightly-x86_64-linux-fedora43-validate+debug_info": {
|
|
| 3136 | 3136 | "after_script": [
|
| 3137 | 3137 | ".gitlab/ci.sh save_cache",
|
| 3138 | 3138 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -3143,7 +3143,7 @@ |
| 3143 | 3143 | "artifacts": {
|
| 3144 | 3144 | "expire_in": "8 weeks",
|
| 3145 | 3145 | "paths": [
|
| 3146 | - "ghc-x86_64-linux-fedora42-validate+debug_info.tar.xz",
|
|
| 3146 | + "ghc-x86_64-linux-fedora43-validate+debug_info.tar.xz",
|
|
| 3147 | 3147 | "junit.xml",
|
| 3148 | 3148 | "unexpected-test-output.tar.gz"
|
| 3149 | 3149 | ],
|
| ... | ... | @@ -3153,14 +3153,14 @@ |
| 3153 | 3153 | "when": "always"
|
| 3154 | 3154 | },
|
| 3155 | 3155 | "cache": {
|
| 3156 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 3156 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 3157 | 3157 | "paths": [
|
| 3158 | 3158 | "cabal-cache",
|
| 3159 | 3159 | "toolchain"
|
| 3160 | 3160 | ]
|
| 3161 | 3161 | },
|
| 3162 | 3162 | "dependencies": [],
|
| 3163 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 3163 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 3164 | 3164 | "needs": [
|
| 3165 | 3165 | {
|
| 3166 | 3166 | "artifacts": false,
|
| ... | ... | @@ -3186,12 +3186,76 @@ |
| 3186 | 3186 | ],
|
| 3187 | 3187 | "variables": {
|
| 3188 | 3188 | "BIGNUM_BACKEND": "gmp",
|
| 3189 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-validate+debug_info",
|
|
| 3189 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate+debug_info",
|
|
| 3190 | 3190 | "BUILD_FLAVOUR": "validate+debug_info",
|
| 3191 | 3191 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3192 | 3192 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 3193 | 3193 | "RUNTEST_ARGS": "",
|
| 3194 | - "TEST_ENV": "x86_64-linux-fedora42-validate+debug_info",
|
|
| 3194 | + "TEST_ENV": "x86_64-linux-fedora43-validate+debug_info",
|
|
| 3195 | + "XZ_OPT": "-9"
|
|
| 3196 | + }
|
|
| 3197 | + },
|
|
| 3198 | + "nightly-x86_64-linux-fedora43-validate+ubsan": {
|
|
| 3199 | + "after_script": [
|
|
| 3200 | + ".gitlab/ci.sh save_cache",
|
|
| 3201 | + ".gitlab/ci.sh save_test_output",
|
|
| 3202 | + ".gitlab/ci.sh clean",
|
|
| 3203 | + "cat ci_timings.txt"
|
|
| 3204 | + ],
|
|
| 3205 | + "allow_failure": false,
|
|
| 3206 | + "artifacts": {
|
|
| 3207 | + "expire_in": "8 weeks",
|
|
| 3208 | + "paths": [
|
|
| 3209 | + "ghc-x86_64-linux-fedora43-validate+ubsan.tar.xz",
|
|
| 3210 | + "junit.xml",
|
|
| 3211 | + "unexpected-test-output.tar.gz"
|
|
| 3212 | + ],
|
|
| 3213 | + "reports": {
|
|
| 3214 | + "junit": "junit.xml"
|
|
| 3215 | + },
|
|
| 3216 | + "when": "always"
|
|
| 3217 | + },
|
|
| 3218 | + "cache": {
|
|
| 3219 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 3220 | + "paths": [
|
|
| 3221 | + "cabal-cache",
|
|
| 3222 | + "toolchain"
|
|
| 3223 | + ]
|
|
| 3224 | + },
|
|
| 3225 | + "dependencies": [],
|
|
| 3226 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 3227 | + "needs": [
|
|
| 3228 | + {
|
|
| 3229 | + "artifacts": false,
|
|
| 3230 | + "job": "hadrian-ghc-in-ghci"
|
|
| 3231 | + }
|
|
| 3232 | + ],
|
|
| 3233 | + "rules": [
|
|
| 3234 | + {
|
|
| 3235 | + "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
|
|
| 3236 | + "when": "on_success"
|
|
| 3237 | + }
|
|
| 3238 | + ],
|
|
| 3239 | + "script": [
|
|
| 3240 | + "sudo chown ghc:ghc -R .",
|
|
| 3241 | + ".gitlab/ci.sh setup",
|
|
| 3242 | + ".gitlab/ci.sh configure",
|
|
| 3243 | + ".gitlab/ci.sh build_hadrian",
|
|
| 3244 | + ".gitlab/ci.sh test_hadrian"
|
|
| 3245 | + ],
|
|
| 3246 | + "stage": "full-build",
|
|
| 3247 | + "tags": [
|
|
| 3248 | + "x86_64-linux"
|
|
| 3249 | + ],
|
|
| 3250 | + "variables": {
|
|
| 3251 | + "BIGNUM_BACKEND": "gmp",
|
|
| 3252 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate+ubsan",
|
|
| 3253 | + "BUILD_FLAVOUR": "validate+ubsan",
|
|
| 3254 | + "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
| 3255 | + "HADRIAN_ARGS": "--docs=none",
|
|
| 3256 | + "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
| 3257 | + "RUNTEST_ARGS": "",
|
|
| 3258 | + "TEST_ENV": "x86_64-linux-fedora43-validate+ubsan",
|
|
| 3195 | 3259 | "XZ_OPT": "-9"
|
| 3196 | 3260 | }
|
| 3197 | 3261 | },
|
| ... | ... | @@ -4808,7 +4872,7 @@ |
| 4808 | 4872 | "XZ_OPT": "-9"
|
| 4809 | 4873 | }
|
| 4810 | 4874 | },
|
| 4811 | - "release-x86_64-linux-fedora42-release": {
|
|
| 4875 | + "release-x86_64-linux-fedora43-release": {
|
|
| 4812 | 4876 | "after_script": [
|
| 4813 | 4877 | ".gitlab/ci.sh save_cache",
|
| 4814 | 4878 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -4819,7 +4883,7 @@ |
| 4819 | 4883 | "artifacts": {
|
| 4820 | 4884 | "expire_in": "1 year",
|
| 4821 | 4885 | "paths": [
|
| 4822 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 4886 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 4823 | 4887 | "junit.xml",
|
| 4824 | 4888 | "unexpected-test-output.tar.gz"
|
| 4825 | 4889 | ],
|
| ... | ... | @@ -4829,14 +4893,14 @@ |
| 4829 | 4893 | "when": "always"
|
| 4830 | 4894 | },
|
| 4831 | 4895 | "cache": {
|
| 4832 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 4896 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 4833 | 4897 | "paths": [
|
| 4834 | 4898 | "cabal-cache",
|
| 4835 | 4899 | "toolchain"
|
| 4836 | 4900 | ]
|
| 4837 | 4901 | },
|
| 4838 | 4902 | "dependencies": [],
|
| 4839 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 4903 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 4840 | 4904 | "needs": [
|
| 4841 | 4905 | {
|
| 4842 | 4906 | "artifacts": false,
|
| ... | ... | @@ -4862,17 +4926,17 @@ |
| 4862 | 4926 | ],
|
| 4863 | 4927 | "variables": {
|
| 4864 | 4928 | "BIGNUM_BACKEND": "gmp",
|
| 4865 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 4929 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 4866 | 4930 | "BUILD_FLAVOUR": "release",
|
| 4867 | 4931 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4868 | 4932 | "IGNORE_PERF_FAILURES": "all",
|
| 4869 | 4933 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4870 | 4934 | "RUNTEST_ARGS": "",
|
| 4871 | - "TEST_ENV": "x86_64-linux-fedora42-release",
|
|
| 4935 | + "TEST_ENV": "x86_64-linux-fedora43-release",
|
|
| 4872 | 4936 | "XZ_OPT": "-9"
|
| 4873 | 4937 | }
|
| 4874 | 4938 | },
|
| 4875 | - "release-x86_64-linux-fedora42-release+debug_info": {
|
|
| 4939 | + "release-x86_64-linux-fedora43-release+debug_info": {
|
|
| 4876 | 4940 | "after_script": [
|
| 4877 | 4941 | ".gitlab/ci.sh save_cache",
|
| 4878 | 4942 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -4883,7 +4947,7 @@ |
| 4883 | 4947 | "artifacts": {
|
| 4884 | 4948 | "expire_in": "1 year",
|
| 4885 | 4949 | "paths": [
|
| 4886 | - "ghc-x86_64-linux-fedora42-release+debug_info.tar.xz",
|
|
| 4950 | + "ghc-x86_64-linux-fedora43-release+debug_info.tar.xz",
|
|
| 4887 | 4951 | "junit.xml",
|
| 4888 | 4952 | "unexpected-test-output.tar.gz"
|
| 4889 | 4953 | ],
|
| ... | ... | @@ -4893,14 +4957,14 @@ |
| 4893 | 4957 | "when": "always"
|
| 4894 | 4958 | },
|
| 4895 | 4959 | "cache": {
|
| 4896 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 4960 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 4897 | 4961 | "paths": [
|
| 4898 | 4962 | "cabal-cache",
|
| 4899 | 4963 | "toolchain"
|
| 4900 | 4964 | ]
|
| 4901 | 4965 | },
|
| 4902 | 4966 | "dependencies": [],
|
| 4903 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 4967 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 4904 | 4968 | "needs": [
|
| 4905 | 4969 | {
|
| 4906 | 4970 | "artifacts": false,
|
| ... | ... | @@ -4926,17 +4990,17 @@ |
| 4926 | 4990 | ],
|
| 4927 | 4991 | "variables": {
|
| 4928 | 4992 | "BIGNUM_BACKEND": "gmp",
|
| 4929 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release+debug_info",
|
|
| 4993 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release+debug_info",
|
|
| 4930 | 4994 | "BUILD_FLAVOUR": "release+debug_info",
|
| 4931 | 4995 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4932 | 4996 | "IGNORE_PERF_FAILURES": "all",
|
| 4933 | 4997 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4934 | 4998 | "RUNTEST_ARGS": "",
|
| 4935 | - "TEST_ENV": "x86_64-linux-fedora42-release+debug_info",
|
|
| 4999 | + "TEST_ENV": "x86_64-linux-fedora43-release+debug_info",
|
|
| 4936 | 5000 | "XZ_OPT": "-9"
|
| 4937 | 5001 | }
|
| 4938 | 5002 | },
|
| 4939 | - "release-x86_64-linux-fedora42-release-hackage": {
|
|
| 5003 | + "release-x86_64-linux-fedora43-release-hackage": {
|
|
| 4940 | 5004 | "after_script": [
|
| 4941 | 5005 | ".gitlab/ci.sh save_cache",
|
| 4942 | 5006 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -4947,7 +5011,7 @@ |
| 4947 | 5011 | "artifacts": {
|
| 4948 | 5012 | "expire_in": "1 year",
|
| 4949 | 5013 | "paths": [
|
| 4950 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 5014 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 4951 | 5015 | "junit.xml",
|
| 4952 | 5016 | "unexpected-test-output.tar.gz"
|
| 4953 | 5017 | ],
|
| ... | ... | @@ -4957,14 +5021,14 @@ |
| 4957 | 5021 | "when": "always"
|
| 4958 | 5022 | },
|
| 4959 | 5023 | "cache": {
|
| 4960 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 5024 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 4961 | 5025 | "paths": [
|
| 4962 | 5026 | "cabal-cache",
|
| 4963 | 5027 | "toolchain"
|
| 4964 | 5028 | ]
|
| 4965 | 5029 | },
|
| 4966 | 5030 | "dependencies": [],
|
| 4967 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 5031 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 4968 | 5032 | "needs": [
|
| 4969 | 5033 | {
|
| 4970 | 5034 | "artifacts": false,
|
| ... | ... | @@ -4990,14 +5054,14 @@ |
| 4990 | 5054 | ],
|
| 4991 | 5055 | "variables": {
|
| 4992 | 5056 | "BIGNUM_BACKEND": "gmp",
|
| 4993 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 5057 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 4994 | 5058 | "BUILD_FLAVOUR": "release",
|
| 4995 | 5059 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4996 | 5060 | "HADRIAN_ARGS": "--haddock-for-hackage",
|
| 4997 | 5061 | "IGNORE_PERF_FAILURES": "all",
|
| 4998 | 5062 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 4999 | 5063 | "RUNTEST_ARGS": "",
|
| 5000 | - "TEST_ENV": "x86_64-linux-fedora42-release",
|
|
| 5064 | + "TEST_ENV": "x86_64-linux-fedora43-release",
|
|
| 5001 | 5065 | "XZ_OPT": "-9"
|
| 5002 | 5066 | }
|
| 5003 | 5067 | },
|
| ... | ... | @@ -7032,7 +7096,7 @@ |
| 7032 | 7096 | "TEST_ENV": "x86_64-linux-deb9-validate"
|
| 7033 | 7097 | }
|
| 7034 | 7098 | },
|
| 7035 | - "x86_64-linux-fedora42-release": {
|
|
| 7099 | + "x86_64-linux-fedora43-release": {
|
|
| 7036 | 7100 | "after_script": [
|
| 7037 | 7101 | ".gitlab/ci.sh save_cache",
|
| 7038 | 7102 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -7043,7 +7107,7 @@ |
| 7043 | 7107 | "artifacts": {
|
| 7044 | 7108 | "expire_in": "2 weeks",
|
| 7045 | 7109 | "paths": [
|
| 7046 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 7110 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 7047 | 7111 | "junit.xml",
|
| 7048 | 7112 | "unexpected-test-output.tar.gz"
|
| 7049 | 7113 | ],
|
| ... | ... | @@ -7053,14 +7117,14 @@ |
| 7053 | 7117 | "when": "always"
|
| 7054 | 7118 | },
|
| 7055 | 7119 | "cache": {
|
| 7056 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 7120 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 7057 | 7121 | "paths": [
|
| 7058 | 7122 | "cabal-cache",
|
| 7059 | 7123 | "toolchain"
|
| 7060 | 7124 | ]
|
| 7061 | 7125 | },
|
| 7062 | 7126 | "dependencies": [],
|
| 7063 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 7127 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 7064 | 7128 | "needs": [
|
| 7065 | 7129 | {
|
| 7066 | 7130 | "artifacts": false,
|
| ... | ... | @@ -7069,7 +7133,7 @@ |
| 7069 | 7133 | ],
|
| 7070 | 7134 | "rules": [
|
| 7071 | 7135 | {
|
| 7072 | - "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora42-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7136 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7073 | 7137 | "when": "on_success"
|
| 7074 | 7138 | }
|
| 7075 | 7139 | ],
|
| ... | ... | @@ -7086,15 +7150,15 @@ |
| 7086 | 7150 | ],
|
| 7087 | 7151 | "variables": {
|
| 7088 | 7152 | "BIGNUM_BACKEND": "gmp",
|
| 7089 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 7153 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 7090 | 7154 | "BUILD_FLAVOUR": "release",
|
| 7091 | 7155 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7092 | 7156 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7093 | 7157 | "RUNTEST_ARGS": "",
|
| 7094 | - "TEST_ENV": "x86_64-linux-fedora42-release"
|
|
| 7158 | + "TEST_ENV": "x86_64-linux-fedora43-release"
|
|
| 7095 | 7159 | }
|
| 7096 | 7160 | },
|
| 7097 | - "x86_64-linux-fedora42-release-hackage": {
|
|
| 7161 | + "x86_64-linux-fedora43-release-hackage": {
|
|
| 7098 | 7162 | "after_script": [
|
| 7099 | 7163 | ".gitlab/ci.sh save_cache",
|
| 7100 | 7164 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -7105,7 +7169,7 @@ |
| 7105 | 7169 | "artifacts": {
|
| 7106 | 7170 | "expire_in": "2 weeks",
|
| 7107 | 7171 | "paths": [
|
| 7108 | - "ghc-x86_64-linux-fedora42-release.tar.xz",
|
|
| 7172 | + "ghc-x86_64-linux-fedora43-release.tar.xz",
|
|
| 7109 | 7173 | "junit.xml",
|
| 7110 | 7174 | "unexpected-test-output.tar.gz"
|
| 7111 | 7175 | ],
|
| ... | ... | @@ -7115,14 +7179,14 @@ |
| 7115 | 7179 | "when": "always"
|
| 7116 | 7180 | },
|
| 7117 | 7181 | "cache": {
|
| 7118 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 7182 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 7119 | 7183 | "paths": [
|
| 7120 | 7184 | "cabal-cache",
|
| 7121 | 7185 | "toolchain"
|
| 7122 | 7186 | ]
|
| 7123 | 7187 | },
|
| 7124 | 7188 | "dependencies": [],
|
| 7125 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 7189 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 7126 | 7190 | "needs": [
|
| 7127 | 7191 | {
|
| 7128 | 7192 | "artifacts": false,
|
| ... | ... | @@ -7131,7 +7195,7 @@ |
| 7131 | 7195 | ],
|
| 7132 | 7196 | "rules": [
|
| 7133 | 7197 | {
|
| 7134 | - "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora42-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7198 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7135 | 7199 | "when": "on_success"
|
| 7136 | 7200 | }
|
| 7137 | 7201 | ],
|
| ... | ... | @@ -7148,16 +7212,16 @@ |
| 7148 | 7212 | ],
|
| 7149 | 7213 | "variables": {
|
| 7150 | 7214 | "BIGNUM_BACKEND": "gmp",
|
| 7151 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-release",
|
|
| 7215 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
|
|
| 7152 | 7216 | "BUILD_FLAVOUR": "release",
|
| 7153 | 7217 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7154 | 7218 | "HADRIAN_ARGS": "--haddock-for-hackage",
|
| 7155 | 7219 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7156 | 7220 | "RUNTEST_ARGS": "",
|
| 7157 | - "TEST_ENV": "x86_64-linux-fedora42-release"
|
|
| 7221 | + "TEST_ENV": "x86_64-linux-fedora43-release"
|
|
| 7158 | 7222 | }
|
| 7159 | 7223 | },
|
| 7160 | - "x86_64-linux-fedora42-validate": {
|
|
| 7224 | + "x86_64-linux-fedora43-validate": {
|
|
| 7161 | 7225 | "after_script": [
|
| 7162 | 7226 | ".gitlab/ci.sh save_cache",
|
| 7163 | 7227 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -7168,7 +7232,7 @@ |
| 7168 | 7232 | "artifacts": {
|
| 7169 | 7233 | "expire_in": "2 weeks",
|
| 7170 | 7234 | "paths": [
|
| 7171 | - "ghc-x86_64-linux-fedora42-validate.tar.xz",
|
|
| 7235 | + "ghc-x86_64-linux-fedora43-validate.tar.xz",
|
|
| 7172 | 7236 | "junit.xml",
|
| 7173 | 7237 | "unexpected-test-output.tar.gz"
|
| 7174 | 7238 | ],
|
| ... | ... | @@ -7178,14 +7242,14 @@ |
| 7178 | 7242 | "when": "always"
|
| 7179 | 7243 | },
|
| 7180 | 7244 | "cache": {
|
| 7181 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 7245 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 7182 | 7246 | "paths": [
|
| 7183 | 7247 | "cabal-cache",
|
| 7184 | 7248 | "toolchain"
|
| 7185 | 7249 | ]
|
| 7186 | 7250 | },
|
| 7187 | 7251 | "dependencies": [],
|
| 7188 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 7252 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 7189 | 7253 | "needs": [
|
| 7190 | 7254 | {
|
| 7191 | 7255 | "artifacts": false,
|
| ... | ... | @@ -7194,7 +7258,7 @@ |
| 7194 | 7258 | ],
|
| 7195 | 7259 | "rules": [
|
| 7196 | 7260 | {
|
| 7197 | - "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora42-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7261 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7198 | 7262 | "when": "on_success"
|
| 7199 | 7263 | }
|
| 7200 | 7264 | ],
|
| ... | ... | @@ -7211,15 +7275,15 @@ |
| 7211 | 7275 | ],
|
| 7212 | 7276 | "variables": {
|
| 7213 | 7277 | "BIGNUM_BACKEND": "gmp",
|
| 7214 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-validate",
|
|
| 7278 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate",
|
|
| 7215 | 7279 | "BUILD_FLAVOUR": "validate",
|
| 7216 | 7280 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7217 | 7281 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7218 | 7282 | "RUNTEST_ARGS": "",
|
| 7219 | - "TEST_ENV": "x86_64-linux-fedora42-validate"
|
|
| 7283 | + "TEST_ENV": "x86_64-linux-fedora43-validate"
|
|
| 7220 | 7284 | }
|
| 7221 | 7285 | },
|
| 7222 | - "x86_64-linux-fedora42-validate+debug_info": {
|
|
| 7286 | + "x86_64-linux-fedora43-validate+debug_info": {
|
|
| 7223 | 7287 | "after_script": [
|
| 7224 | 7288 | ".gitlab/ci.sh save_cache",
|
| 7225 | 7289 | ".gitlab/ci.sh save_test_output",
|
| ... | ... | @@ -7230,7 +7294,7 @@ |
| 7230 | 7294 | "artifacts": {
|
| 7231 | 7295 | "expire_in": "2 weeks",
|
| 7232 | 7296 | "paths": [
|
| 7233 | - "ghc-x86_64-linux-fedora42-validate+debug_info.tar.xz",
|
|
| 7297 | + "ghc-x86_64-linux-fedora43-validate+debug_info.tar.xz",
|
|
| 7234 | 7298 | "junit.xml",
|
| 7235 | 7299 | "unexpected-test-output.tar.gz"
|
| 7236 | 7300 | ],
|
| ... | ... | @@ -7240,14 +7304,14 @@ |
| 7240 | 7304 | "when": "always"
|
| 7241 | 7305 | },
|
| 7242 | 7306 | "cache": {
|
| 7243 | - "key": "x86_64-linux-fedora42-$CACHE_REV",
|
|
| 7307 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 7244 | 7308 | "paths": [
|
| 7245 | 7309 | "cabal-cache",
|
| 7246 | 7310 | "toolchain"
|
| 7247 | 7311 | ]
|
| 7248 | 7312 | },
|
| 7249 | 7313 | "dependencies": [],
|
| 7250 | - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora42:$DOCKER_REV",
|
|
| 7314 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 7251 | 7315 | "needs": [
|
| 7252 | 7316 | {
|
| 7253 | 7317 | "artifacts": false,
|
| ... | ... | @@ -7256,7 +7320,7 @@ |
| 7256 | 7320 | ],
|
| 7257 | 7321 | "rules": [
|
| 7258 | 7322 | {
|
| 7259 | - "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora42-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7323 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7260 | 7324 | "when": "on_success"
|
| 7261 | 7325 | }
|
| 7262 | 7326 | ],
|
| ... | ... | @@ -7273,12 +7337,75 @@ |
| 7273 | 7337 | ],
|
| 7274 | 7338 | "variables": {
|
| 7275 | 7339 | "BIGNUM_BACKEND": "gmp",
|
| 7276 | - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora42-validate+debug_info",
|
|
| 7340 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate+debug_info",
|
|
| 7277 | 7341 | "BUILD_FLAVOUR": "validate+debug_info",
|
| 7278 | 7342 | "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7279 | 7343 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| 7280 | 7344 | "RUNTEST_ARGS": "",
|
| 7281 | - "TEST_ENV": "x86_64-linux-fedora42-validate+debug_info"
|
|
| 7345 | + "TEST_ENV": "x86_64-linux-fedora43-validate+debug_info"
|
|
| 7346 | + }
|
|
| 7347 | + },
|
|
| 7348 | + "x86_64-linux-fedora43-validate+ubsan": {
|
|
| 7349 | + "after_script": [
|
|
| 7350 | + ".gitlab/ci.sh save_cache",
|
|
| 7351 | + ".gitlab/ci.sh save_test_output",
|
|
| 7352 | + ".gitlab/ci.sh clean",
|
|
| 7353 | + "cat ci_timings.txt"
|
|
| 7354 | + ],
|
|
| 7355 | + "allow_failure": false,
|
|
| 7356 | + "artifacts": {
|
|
| 7357 | + "expire_in": "2 weeks",
|
|
| 7358 | + "paths": [
|
|
| 7359 | + "ghc-x86_64-linux-fedora43-validate+ubsan.tar.xz",
|
|
| 7360 | + "junit.xml",
|
|
| 7361 | + "unexpected-test-output.tar.gz"
|
|
| 7362 | + ],
|
|
| 7363 | + "reports": {
|
|
| 7364 | + "junit": "junit.xml"
|
|
| 7365 | + },
|
|
| 7366 | + "when": "always"
|
|
| 7367 | + },
|
|
| 7368 | + "cache": {
|
|
| 7369 | + "key": "x86_64-linux-fedora43-$CACHE_REV",
|
|
| 7370 | + "paths": [
|
|
| 7371 | + "cabal-cache",
|
|
| 7372 | + "toolchain"
|
|
| 7373 | + ]
|
|
| 7374 | + },
|
|
| 7375 | + "dependencies": [],
|
|
| 7376 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
|
|
| 7377 | + "needs": [
|
|
| 7378 | + {
|
|
| 7379 | + "artifacts": false,
|
|
| 7380 | + "job": "hadrian-ghc-in-ghci"
|
|
| 7381 | + }
|
|
| 7382 | + ],
|
|
| 7383 | + "rules": [
|
|
| 7384 | + {
|
|
| 7385 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-validate\\+ubsan(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
| 7386 | + "when": "on_success"
|
|
| 7387 | + }
|
|
| 7388 | + ],
|
|
| 7389 | + "script": [
|
|
| 7390 | + "sudo chown ghc:ghc -R .",
|
|
| 7391 | + ".gitlab/ci.sh setup",
|
|
| 7392 | + ".gitlab/ci.sh configure",
|
|
| 7393 | + ".gitlab/ci.sh build_hadrian",
|
|
| 7394 | + ".gitlab/ci.sh test_hadrian"
|
|
| 7395 | + ],
|
|
| 7396 | + "stage": "full-build",
|
|
| 7397 | + "tags": [
|
|
| 7398 | + "x86_64-linux"
|
|
| 7399 | + ],
|
|
| 7400 | + "variables": {
|
|
| 7401 | + "BIGNUM_BACKEND": "gmp",
|
|
| 7402 | + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-validate+ubsan",
|
|
| 7403 | + "BUILD_FLAVOUR": "validate+ubsan",
|
|
| 7404 | + "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
| 7405 | + "HADRIAN_ARGS": "--docs=none",
|
|
| 7406 | + "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
| 7407 | + "RUNTEST_ARGS": "",
|
|
| 7408 | + "TEST_ENV": "x86_64-linux-fedora43-validate+ubsan"
|
|
| 7282 | 7409 | }
|
| 7283 | 7410 | },
|
| 7284 | 7411 | "x86_64-linux-rocky8-validate": {
|
| ... | ... | @@ -23,8 +23,8 @@ def job_triple(job_name): |
| 23 | 23 | 'release-x86_64-linux-ubuntu22_04-release': 'x86_64-ubuntu22_04-linux',
|
| 24 | 24 | 'release-x86_64-linux-ubuntu20_04-release': 'x86_64-ubuntu20_04-linux',
|
| 25 | 25 | 'release-x86_64-linux-ubuntu18_04-release': 'x86_64-ubuntu18_04-linux',
|
| 26 | - 'release-x86_64-linux-fedora42-release': 'x86_64-fedora42-linux',
|
|
| 27 | - 'release-x86_64-linux-fedora42-release+debug_info': 'x86_64-fedora42-linux-dwarf',
|
|
| 26 | + 'release-x86_64-linux-fedora43-release': 'x86_64-fedora43-linux',
|
|
| 27 | + 'release-x86_64-linux-fedora43-release+debug_info': 'x86_64-fedora43-linux-dwarf',
|
|
| 28 | 28 | 'release-x86_64-linux-deb12-release': 'x86_64-deb12-linux',
|
| 29 | 29 | 'release-x86_64-linux-deb11-release': 'x86_64-deb11-linux',
|
| 30 | 30 | 'release-x86_64-linux-deb10-release+debug_info': 'x86_64-deb10-linux-dwarf',
|
| ... | ... | @@ -200,7 +200,7 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map): |
| 200 | 200 | ubuntu2204 = mk(ubuntu("22_04"))
|
| 201 | 201 | ubuntu2404 = mk(ubuntu("24_04"))
|
| 202 | 202 | rocky8 = mk(rocky("8"))
|
| 203 | - fedora42 = mk(fedora(42))
|
|
| 203 | + fedora43 = mk(fedora(43))
|
|
| 204 | 204 | darwin_x86 = mk(darwin("x86_64"))
|
| 205 | 205 | darwin_arm64 = mk(darwin("aarch64"))
|
| 206 | 206 | windows = mk(windowsArtifact)
|
| ... | ... | @@ -239,7 +239,7 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map): |
| 239 | 239 | , "unknown_versioning": ubuntu2004 }
|
| 240 | 240 | , "Linux_CentOS" : { "( >= 8 && < 9 )" : rocky8
|
| 241 | 241 | , "unknown_versioning" : rocky8 }
|
| 242 | - , "Linux_Fedora" : { ">= 42": fedora42
|
|
| 242 | + , "Linux_Fedora" : { ">= 43": fedora43
|
|
| 243 | 243 | , "unknown_versioning": rocky8 }
|
| 244 | 244 | , "Linux_RedHat" : { "unknown_versioning": rocky8 }
|
| 245 | 245 | , "Linux_UnknownLinux" : { "unknown_versioning": rocky8 }
|
| ... | ... | @@ -526,7 +526,7 @@ AC_SUBST(InstallNameToolCmd) |
| 526 | 526 | # versions of LLVM simultaneously, but that stopped working around
|
| 527 | 527 | # 3.5/3.6 release of LLVM.
|
| 528 | 528 | LlvmMinVersion=13 # inclusive
|
| 529 | -LlvmMaxVersion=21 # not inclusive
|
|
| 529 | +LlvmMaxVersion=22 # not inclusive
|
|
| 530 | 530 | AC_SUBST([LlvmMinVersion])
|
| 531 | 531 | AC_SUBST([LlvmMaxVersion])
|
| 532 | 532 |
| ... | ... | @@ -238,6 +238,10 @@ The supported transformers are listed below: |
| 238 | 238 | <td><code>thread_sanitizer</code></td>
|
| 239 | 239 | <td>Build the runtime system with ThreadSanitizer support</td>
|
| 240 | 240 | </tr>
|
| 241 | + <tr>
|
|
| 242 | + <td><code>ubsan</code></td>
|
|
| 243 | + <td>Build all stage1+ C/C++ code with UndefinedBehaviorSanitizer support</td>
|
|
| 244 | + </tr>
|
|
| 241 | 245 | <tr>
|
| 242 | 246 | <td><code>llvm</code></td>
|
| 243 | 247 | <td>Use GHC's LLVM backend (`-fllvm`) for all stage1+ compilation.</td>
|
| ... | ... | @@ -7,6 +7,7 @@ module Flavour |
| 7 | 7 | , addArgs
|
| 8 | 8 | , splitSections
|
| 9 | 9 | , enableThreadSanitizer
|
| 10 | + , enableUBSan
|
|
| 10 | 11 | , enableLateCCS
|
| 11 | 12 | , enableHashUnitIds
|
| 12 | 13 | , enableDebugInfo, enableTickyGhc
|
| ... | ... | @@ -33,6 +34,9 @@ import Data.Either |
| 33 | 34 | import Data.Map (Map)
|
| 34 | 35 | import qualified Data.Map as M
|
| 35 | 36 | import qualified Data.Set as Set
|
| 37 | +import GHC.Platform.ArchOS
|
|
| 38 | +import Oracles.Flag
|
|
| 39 | +import Oracles.Setting
|
|
| 36 | 40 | import Packages
|
| 37 | 41 | import Flavour.Type
|
| 38 | 42 | import Settings.Parser
|
| ... | ... | @@ -53,6 +57,7 @@ flavourTransformers = M.fromList |
| 53 | 57 | , "no_split_sections" =: noSplitSections
|
| 54 | 58 | , "thread_sanitizer" =: enableThreadSanitizer False
|
| 55 | 59 | , "thread_sanitizer_cmm" =: enableThreadSanitizer True
|
| 60 | + , "ubsan" =: enableUBSan
|
|
| 56 | 61 | , "llvm" =: viaLlvmBackend
|
| 57 | 62 | , "profiled_ghc" =: enableProfiledGhc
|
| 58 | 63 | , "no_dynamic_ghc" =: disableDynamicGhcPrograms
|
| ... | ... | @@ -258,6 +263,66 @@ enableThreadSanitizer instrumentCmm = addArgs $ notStage0 ? mconcat |
| 258 | 263 | ]
|
| 259 | 264 | ]
|
| 260 | 265 | |
| 266 | +-- | Whether or not -shared-libsan should be passed to clang at
|
|
| 267 | +-- link-time.
|
|
| 268 | +--
|
|
| 269 | +-- See
|
|
| 270 | +-- https://github.com/llvm/llvm-project/blob/llvmorg-21.1.5/clang/lib/Driver/SanitizerArgs.cpp#L1008,
|
|
| 271 | +-- clang defaults to -shared-libsan on darwin/windows and
|
|
| 272 | +-- -static-libsan on linux. In general, -static-libsan is incredibly
|
|
| 273 | +-- problematic when multiple copies of the sanitizer runtimes coexist
|
|
| 274 | +-- in the same address space due to being linked into multiple Haskell
|
|
| 275 | +-- libraries. So we should explicitly specify `-shared-libsan` if
|
|
| 276 | +-- needed.
|
|
| 277 | +--
|
|
| 278 | +-- A small downside of -shared-libsan is the clang-specific sanitizer
|
|
| 279 | +-- runtime shared library path needs to be manually specified via
|
|
| 280 | +-- @export LD_LIBRARY_PATH=$(dirname $(clang -print-libgcc-file-name
|
|
| 281 | +-- -rtlib=compiler-rt))@ for ld.so to find it at runtime.
|
|
| 282 | +needSharedLibSAN :: Action Bool
|
|
| 283 | +needSharedLibSAN = do
|
|
| 284 | + is_clang <- flag CcLlvmBackend
|
|
| 285 | + is_default_shared_libsan <- anyTargetOs [OSDarwin, OSMinGW32]
|
|
| 286 | + pure $ is_clang && not is_default_shared_libsan
|
|
| 287 | + |
|
| 288 | +-- | Build all stage1+ C/C++ code with UndefinedBehaviorSanitizer
|
|
| 289 | +-- support:
|
|
| 290 | +-- https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html.
|
|
| 291 | +--
|
|
| 292 | +-- Note that we also pass -fno-sanitize=function to clang, since
|
|
| 293 | +-- "runtime call to function foo through pointer to incorrect function
|
|
| 294 | +-- type" is unfortunately pretty common (e.g. evac_fn in rts) and
|
|
| 295 | +-- impact the signal to noise ratio of UBSan warnings. gcc doesn't
|
|
| 296 | +-- implement this instrumentation though.
|
|
| 297 | +enableUBSan :: Flavour -> Flavour
|
|
| 298 | +enableUBSan =
|
|
| 299 | + addArgs $
|
|
| 300 | + notStage0
|
|
| 301 | + ? mconcat
|
|
| 302 | + [ package rts
|
|
| 303 | + ? builder (Cabal Flags)
|
|
| 304 | + ? arg "+ubsan"
|
|
| 305 | + <> (needSharedLibSAN ? arg "+shared-libsan"),
|
|
| 306 | + builder (Ghc CompileHs)
|
|
| 307 | + ? arg "-optc-fsanitize=undefined"
|
|
| 308 | + <> (flag CcLlvmBackend ? arg "-optc-fno-sanitize=function"),
|
|
| 309 | + builder (Ghc CompileCWithGhc)
|
|
| 310 | + ? arg "-optc-fsanitize=undefined"
|
|
| 311 | + <> (flag CcLlvmBackend ? arg "-optc-fno-sanitize=function"),
|
|
| 312 | + builder (Ghc CompileCppWithGhc)
|
|
| 313 | + ? arg "optcxx-fsanitize=undefined"
|
|
| 314 | + <> (flag CcLlvmBackend ? arg "-optcxx-fno-sanitize=function"),
|
|
| 315 | + builder (Ghc LinkHs)
|
|
| 316 | + ? arg "-optc-fsanitize=undefined"
|
|
| 317 | + <> arg "-optl-fsanitize=undefined"
|
|
| 318 | + <> (needSharedLibSAN ? arg "-optl-shared-libsan")
|
|
| 319 | + <> (flag CcLlvmBackend ? arg "-optc-fno-sanitize=function"),
|
|
| 320 | + builder (Cc CompileC)
|
|
| 321 | + ? arg "-fsanitize=undefined"
|
|
| 322 | + <> (flag CcLlvmBackend ? arg "-fno-sanitize=function"),
|
|
| 323 | + builder Testsuite ? arg "--config=have_ubsan=True"
|
|
| 324 | + ]
|
|
| 325 | + |
|
| 261 | 326 | -- | Use the LLVM backend in stages 1 and later.
|
| 262 | 327 | viaLlvmBackend :: Flavour -> Flavour
|
| 263 | 328 | viaLlvmBackend = addArgs $ notStage0 ? builder Ghc ? arg "-fllvm"
|
| ... | ... | @@ -91,6 +91,19 @@ flag thread-sanitizer |
| 91 | 91 | in @rts/include/rts/TSANUtils.h@.
|
| 92 | 92 | default: False
|
| 93 | 93 | manual: True
|
| 94 | +flag ubsan
|
|
| 95 | + description:
|
|
| 96 | + Link with -fsanitize=undefined, to be enabled when building with
|
|
| 97 | + UndefinedBehaviorSanitizer.
|
|
| 98 | + default: False
|
|
| 99 | + manual: True
|
|
| 100 | +flag shared-libsan
|
|
| 101 | + description:
|
|
| 102 | + Link with -shared-libsan, to guarantee only one copy of the
|
|
| 103 | + sanitizer runtimes exist in the address space. See
|
|
| 104 | + needSharedLibSAN in hadrian/src/Flavour.hs.
|
|
| 105 | + default: False
|
|
| 106 | + manual: True
|
|
| 94 | 107 | |
| 95 | 108 | library
|
| 96 | 109 | -- rts is a wired in package and
|
| ... | ... | @@ -200,6 +213,12 @@ library |
| 200 | 213 | cc-options: -fsanitize=thread
|
| 201 | 214 | ld-options: -fsanitize=thread
|
| 202 | 215 | |
| 216 | + if flag(ubsan)
|
|
| 217 | + ld-options: -fsanitize=undefined
|
|
| 218 | + |
|
| 219 | + if flag(shared-libsan)
|
|
| 220 | + ld-options: -shared-libsan
|
|
| 221 | + |
|
| 203 | 222 | if os(linux)
|
| 204 | 223 | -- the RTS depends upon libc. while this dependency is generally
|
| 205 | 224 | -- implicitly added by `cc`, we must explicitly add it here to ensure
|
| ... | ... | @@ -186,6 +186,9 @@ class TestConfig: |
| 186 | 186 | # Are we running in a ThreadSanitizer-instrumented build?
|
| 187 | 187 | self.have_thread_sanitizer = False
|
| 188 | 188 | |
| 189 | + # Are we running with UndefinedBehaviorSanitizer enabled?
|
|
| 190 | + self.have_ubsan = False
|
|
| 191 | + |
|
| 189 | 192 | # Do symbols use leading underscores?
|
| 190 | 193 | self.leading_underscore = False
|
| 191 | 194 |
| ... | ... | @@ -1090,6 +1090,8 @@ def llvm_build ( ) -> bool: |
| 1090 | 1090 | def have_thread_sanitizer( ) -> bool:
|
| 1091 | 1091 | return config.have_thread_sanitizer
|
| 1092 | 1092 | |
| 1093 | +def have_ubsan( ) -> bool:
|
|
| 1094 | + return config.have_ubsan
|
|
| 1093 | 1095 | |
| 1094 | 1096 | def gcc_as_cmmp() -> bool:
|
| 1095 | 1097 | return config.cmm_cpp_is_gcc
|