diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 65dc844c21201dbc9fba3a7e85a3b58e25935f62..59165f1217d0b078e63ba852edd7e8a44e1568ca 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: a9297a370025101b479cfd4977f8f910814e03ab + DOCKER_REV: efc1ab81236eb37e20cb287ec77aebb6c6341098 # Sequential version number of all cached things. # Bump to invalidate GitLab CI cache. diff --git a/.gitlab/generate-ci/gen_ci.hs b/.gitlab/generate-ci/gen_ci.hs index 46d274d3891235236a701c7d77f27f0e97d343cb..e1dfce2a30abf8fb7b92c29d6c1739022a22cbd1 100644 --- a/.gitlab/generate-ci/gen_ci.hs +++ b/.gitlab/generate-ci/gen_ci.hs @@ -149,6 +149,7 @@ data BuildConfig , crossEmulator :: CrossEmulator , configureWrapper :: Maybe String , fullyStatic :: Bool + , hostFullyStatic :: Bool , tablesNextToCode :: Bool , threadSanitiser :: Bool , noSplitSections :: Bool @@ -172,6 +173,7 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts opts = [Llvm | llvmBootstrap] ++ [Dwarf | withDwarf] ++ [FullyStatic | fullyStatic] ++ + [HostFullyStatic | hostFullyStatic] ++ [ThreadSanitiser | threadSanitiser] ++ [NoSplitSections | noSplitSections, buildFlavour == Release ] ++ [BootNonmovingGc | validateNonmovingGc ] @@ -182,6 +184,7 @@ data FlavourTrans = Llvm | Dwarf | FullyStatic + | HostFullyStatic | ThreadSanitiser | NoSplitSections | BootNonmovingGc @@ -207,6 +210,7 @@ vanilla = BuildConfig , crossEmulator = NoEmulator , configureWrapper = Nothing , fullyStatic = False + , hostFullyStatic = False , tablesNextToCode = True , threadSanitiser = False , noSplitSections = False @@ -298,7 +302,7 @@ distroName Centos7 = "centos7" distroName Alpine312 = "alpine3_12" distroName Alpine318 = "alpine3_18" distroName Alpine320 = "alpine3_20" -distroName AlpineWasm = "alpine3_18-wasm" +distroName AlpineWasm = "alpine3_20-wasm" distroName Rocky8 = "rocky8" opsysName :: Opsys -> String @@ -341,6 +345,7 @@ flavourString (Flavour base trans) = base_string base ++ concatMap (("+" ++) . f flavour_string Llvm = "llvm" flavour_string Dwarf = "debug_info" flavour_string FullyStatic = "fully_static" + flavour_string HostFullyStatic = "host_fully_static" flavour_string ThreadSanitiser = "thread_sanitizer" flavour_string NoSplitSections = "no_split_sections" flavour_string BootNonmovingGc = "boot_nonmoving_gc" @@ -1055,7 +1060,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 } @@ -1082,10 +1087,10 @@ platform_mapping = Map.map go combined_result , "x86_64-linux-fedora33-release" , "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate" , "x86_64-windows-validate" - , "nightly-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static" + , "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static" , "nightly-x86_64-linux-deb11-validate" , "nightly-x86_64-linux-deb12-validate" - , "x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static" + , "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static" , "nightly-aarch64-linux-deb10-validate" , "nightly-x86_64-linux-alpine3_12-validate" , "nightly-x86_64-linux-deb10-validate" diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index 8a0207e9655f7f48a3842e5202753daca9c7172b..6d52c592e9d6af1d306b7fce007ebe06cf0c4cd1 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -951,7 +951,7 @@ "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static": { + "nightly-x86_64-linux-alpine3_20-validate": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_test_output", @@ -962,7 +962,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_20-validate.tar.xz", "junit.xml", "unexpected-test-output.tar.gz" ], @@ -972,14 +972,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-wasm-$CACHE_REV", + "key": "x86_64-linux-alpine3_20-$CACHE_REV", "paths": [ "cabal-cache", "toolchain" ] }, "dependencies": [], - "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -1005,17 +1005,17 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", - "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", - "CROSS_TARGET": "wasm32-wasi", - "HADRIAN_ARGS": "--docs=none", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate", + "BROKEN_TESTS": "encoding004 T10458", + "BUILD_FLAVOUR": "validate", + "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", + "INSTALL_CONFIGURE_ARGS": "--disable-ld-override", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_20-validate", "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-alpine3_18-wasm-int_native-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 save_test_output", @@ -1026,7 +1026,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-wasm-int_native-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", "unexpected-test-output.tar.gz" ], @@ -1036,14 +1036,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-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_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -1068,18 +1068,18 @@ "x86_64-linux" ], "variables": { - "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-wasm-int_native-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", + "BIGNUM_BACKEND": "gmp", + "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 --enable-strict-ghc-toolchain-check", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-wasm-int_native-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_18-wasm-unreg-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 save_test_output", @@ -1090,7 +1090,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-wasm-unreg-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", "unexpected-test-output.tar.gz" ], @@ -1100,14 +1100,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-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_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -1132,18 +1132,18 @@ "x86_64-linux" ], "variables": { - "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-wasm-unreg-cross_wasm32-wasi-release+fully_static", - "BUILD_FLAVOUR": "release+fully_static", - "CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", + "BIGNUM_BACKEND": "native", + "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 --enable-strict-ghc-toolchain-check", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-wasm-unreg-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_20-validate": { + "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 save_test_output", @@ -1154,7 +1154,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_20-validate.tar.xz", + "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static.tar.xz", "junit.xml", "unexpected-test-output.tar.gz" ], @@ -1164,14 +1164,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_20-$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_20:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -1197,13 +1197,13 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate", - "BROKEN_TESTS": "encoding004 T10458", - "BUILD_FLAVOUR": "validate", - "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", - "INSTALL_CONFIGURE_ARGS": "--disable-ld-override", + "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 --enable-strict-ghc-toolchain-check", + "CROSS_TARGET": "wasm32-wasi", + "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_20-validate", + "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static", "XZ_OPT": "-9" } }, @@ -4592,7 +4592,7 @@ "TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static" } }, - "x86_64-linux-alpine3_18-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 save_test_output", @@ -4603,7 +4603,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-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", "unexpected-test-output.tar.gz" ], @@ -4613,14 +4613,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-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_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -4646,16 +4646,16 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-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 --enable-strict-ghc-toolchain-check", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-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_18-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 save_test_output", @@ -4666,7 +4666,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-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", "unexpected-test-output.tar.gz" ], @@ -4676,14 +4676,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-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_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -4710,16 +4710,16 @@ ], "variables": { "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-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 --enable-strict-ghc-toolchain-check", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-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_18-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 save_test_output", @@ -4730,7 +4730,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-alpine3_18-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", "unexpected-test-output.tar.gz" ], @@ -4740,14 +4740,14 @@ "when": "always" }, "cache": { - "key": "x86_64-linux-alpine3_18-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_18-wasm:$DOCKER_REV", + "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV", "needs": [ { "artifacts": false, @@ -4774,13 +4774,13 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_18-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 --enable-strict-ghc-toolchain-check", "CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "", - "TEST_ENV": "x86_64-linux-alpine3_18-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": {