diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56bbbe97993b3684f8b19efcc0cee3ef03e7c779..6eb371a9f594ab550c0c9cc6378c7af15ec2ebca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ variables: GIT_SSL_NO_VERIFY: "1" # Commit of ghc/ci-images repository from which to pull Docker images - DOCKER_REV: b58ecd021c2533f0f0d0b1c9109200a69506d2b7 + DOCKER_REV: efc1ab81236eb37e20cb287ec77aebb6c6341098 # Sequential version number of all cached things. # Bump to invalidate GitLab CI cache. diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index 2b83b29c2f307b1f195f065970a31eafe21c982b..f6e732ed3f8a09dabb41381a600818f20eb84230 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -145,6 +145,7 @@ data BuildConfig , crossEmulator :: CrossEmulator , configureWrapper :: Maybe String , fullyStatic :: Bool + , hostFullyStatic :: Bool , tablesNextToCode :: Bool , threadSanitiser :: Bool , noSplitSections :: Bool @@ -166,6 +167,7 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts opts = [Llvm | llvmBootstrap] ++ [Dwarf | withDwarf] ++ [FullyStatic | fullyStatic] ++ + [HostFullyStatic | hostFullyStatic] ++ [ThreadSanitiser | threadSanitiser] ++ [NoSplitSections | noSplitSections, buildFlavour == Release ] ++ [BootNonmovingGc | validateNonmovingGc ] @@ -173,7 +175,7 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts data Flavour = Flavour BaseFlavour [FlavourTrans] data FlavourTrans - = Llvm | Dwarf | FullyStatic | ThreadSanitiser | NoSplitSections + = Llvm | Dwarf | FullyStatic | HostFullyStatic | ThreadSanitiser | NoSplitSections | BootNonmovingGc data BaseFlavour = Release | Validate | SlowValidate deriving Eq @@ -196,6 +198,7 @@ vanilla = BuildConfig , crossEmulator = NoEmulator , configureWrapper = Nothing , fullyStatic = False + , hostFullyStatic = False , tablesNextToCode = True , threadSanitiser = False , noSplitSections = False @@ -280,7 +283,7 @@ distroName Ubuntu1804 = "ubuntu18_04" distroName Ubuntu2004 = "ubuntu20_04" distroName Centos7 = "centos7" distroName Alpine = "alpine3_12" -distroName AlpineWasm = "alpine3_17-wasm" +distroName AlpineWasm = "alpine3_20-wasm" distroName Rocky8 = "rocky8" opsysName :: Opsys -> String @@ -322,6 +325,7 @@ flavourString (Flavour base trans) = baseString base ++ concatMap (("+" ++) . fl flavourString Llvm = "llvm" flavourString Dwarf = "debug_info" flavourString FullyStatic = "fully_static" + flavourString HostFullyStatic = "host_fully_static" flavourString ThreadSanitiser = "thread_sanitizer" flavourString NoSplitSections = "no_split_sections" flavourString BootNonmovingGc = "boot_nonmoving_gc" @@ -937,7 +941,7 @@ job_groups = wasm_build_config = (crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing) { - fullyStatic = True + hostFullyStatic = True , buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet } diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index b9528bdb6acf67bf72e671d8a7fce52f06f6224a..37ba2cc6403b171bd55dec8f6aca3ab3c09f9a7c 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -671,7 +671,7 @@ "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": { + "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -681,7 +681,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -690,14 +690,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -723,16 +723,16 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static", "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": { + "nightly-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -742,7 +742,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -751,14 +751,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -784,16 +784,16 @@ ], "variables": { "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static", "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": { + "nightly-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -803,7 +803,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -812,14 +812,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -845,12 +845,12 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static", "XZ_OPT": "-9" } }, @@ -3645,7 +3645,7 @@ "TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static" } }, - "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": { + "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3655,7 +3655,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -3664,14 +3664,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -3697,15 +3697,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static" + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static" } }, - "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": { + "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3715,7 +3715,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -3724,14 +3724,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -3758,15 +3758,15 @@ ], "variables": { "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static" + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static" } }, - "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": { + "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3776,7 +3776,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml" ], "reports": { @@ -3785,14 +3785,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -3819,12 +3819,12 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static", + "BUILD_FLAVOUR": "release+host_fully_static", "CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", - "TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static" + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static" } }, "x86_64-linux-deb10-int_native-validate": {