Serge S. Gulin pushed to branch wip/T25974 at Glasgow Haskell Compiler / GHC
Commits:
-
ec8d8f36
by Serge S. Gulin at 2025-05-07T19:05:08+03:00
3 changed files:
Changes:
... | ... | @@ -2,7 +2,7 @@ variables: |
2 | 2 | GIT_SSL_NO_VERIFY: "1"
|
3 | 3 | |
4 | 4 | # Commit of ghc/ci-images repository from which to pull Docker images
|
5 | - DOCKER_REV: 6e9f8f17086e56e83adae4a8a9d63e2fec3cb6c7
|
|
5 | + DOCKER_REV: 14b23867eebc6d5f43e79dab32304175e2416797
|
|
6 | 6 | |
7 | 7 | # Sequential version number of all cached things.
|
8 | 8 | # Bump to invalidate GitLab CI cache.
|
... | ... | @@ -110,9 +110,19 @@ data Opsys |
110 | 110 | | FreeBSD14
|
111 | 111 | | Windows deriving (Eq)
|
112 | 112 | |
113 | +data WineMode
|
|
114 | + = OnlyTest
|
|
115 | + -- ^ Wine will be used only to test binaries after cross-compile
|
|
116 | + -- which means we do cross-compile from Linux to Windows
|
|
117 | + | FullBuild
|
|
118 | + -- ^ Wine will be used for full process of compilation
|
|
119 | + -- which means compilation itself will be executed under Wine.
|
|
120 | + -- It makes possible to run compilation for Windows environment at Linux machines.
|
|
121 | + deriving (Eq)
|
|
122 | + |
|
113 | 123 | data LinuxDistro
|
114 | 124 | = Debian12
|
115 | - | Debian12Wine
|
|
125 | + | Debian12Wine WineMode
|
|
116 | 126 | | Debian12Riscv
|
117 | 127 | | Debian11
|
118 | 128 | | Debian11Js
|
... | ... | @@ -316,7 +326,7 @@ distroName Debian12 = "deb12" |
316 | 326 | distroName Debian11 = "deb11"
|
317 | 327 | distroName Debian11Js = "deb11-emsdk-closure"
|
318 | 328 | distroName Debian12Riscv = "deb12-riscv"
|
319 | -distroName Debian12Wine = "deb12-wine"
|
|
329 | +distroName (Debian12Wine _) = "deb12-wine"
|
|
320 | 330 | distroName Debian10 = "deb10"
|
321 | 331 | distroName Debian9 = "deb9"
|
322 | 332 | distroName Fedora33 = "fedora33"
|
... | ... | @@ -360,6 +370,7 @@ testEnv arch opsys bc = |
360 | 370 | , ["no_tntc" | not (tablesNextToCode bc) ]
|
361 | 371 | , ["cross_"++triple | Just triple <- pure $ crossTarget bc ]
|
362 | 372 | , [flavourString (mkJobFlavour bc)]
|
373 | + , if opsys == Linux (Debian12Wine FullBuild) then ["_wine_full_build"] else []
|
|
363 | 374 | ]
|
364 | 375 | |
365 | 376 | -- | The hadrian flavour string we are going to use for this build
|
... | ... | @@ -728,6 +739,7 @@ data ValidateRule |
728 | 739 | | I386Backend -- ^ Run this job when the "i386" label is set
|
729 | 740 | | WinArm64 -- ^ Run this job when the "aarch64" and "Windows" labels are set together without "LLVM backend"
|
730 | 741 | | WinArm64LLVM -- ^ Run this job when the "aarch64" and "Windows" labels are set together with "LLVM backend"
|
742 | + | WineArm64 -- ^ Run this job when the "aarch64" and "Wine" labels are set
|
|
731 | 743 | deriving (Show, Ord, Eq)
|
732 | 744 | |
733 | 745 | -- | Convert the state of the rule into a string that gitlab understand.
|
... | ... | @@ -781,6 +793,10 @@ validateRuleString WinArm64LLVM = and_all |
781 | 793 | , labelString "Windows"
|
782 | 794 | , validateRuleString LLVMBackend
|
783 | 795 | ]
|
796 | +validateRuleString WineArm64 = and_all
|
|
797 | + [ labelString "aarch64"
|
|
798 | + , labelString "Wine"
|
|
799 | + ]
|
|
784 | 800 | |
785 | 801 | ---------------------------------------------------------------------
|
786 | 802 | -- The Job type
|
... | ... | @@ -847,6 +863,16 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } |
847 | 863 | , "bash .gitlab/ci.sh build_hadrian"
|
848 | 864 | , "bash .gitlab/ci.sh test_hadrian"
|
849 | 865 | ]
|
866 | + | Linux (Debian12Wine FullBuild) <- opsys
|
|
867 | + = [ "sudo chown ghc:ghc -R ."
|
|
868 | + , "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh setup"
|
|
869 | + , "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh configure"
|
|
870 | + -- We have to trigger cabal build in an independent way to mitigate Wine hangs at MSYS2/Arm64EC
|
|
871 | + , "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l -c './hadrian/build-cabal clean'"
|
|
872 | + , "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh build_hadrian"
|
|
873 | + -- It builds, it is already a huge win at the moment of this commit
|
|
874 | + -- TODO: , "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh test_hadrian"
|
|
875 | + ]
|
|
850 | 876 | | otherwise
|
851 | 877 | = [ "find libraries -name config.sub -exec cp config.sub {} \\;" | Darwin == opsys ] ++
|
852 | 878 | [ "sudo chown ghc:ghc -R ." | Linux {} <- [opsys]] ++
|
... | ... | @@ -897,6 +923,10 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } |
897 | 923 | ]
|
898 | 924 | in "RUNTEST_ARGS" =: unwords runtestArgs
|
899 | 925 | , if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
|
926 | + -- TODO: move me to an appropriate way
|
|
927 | + , if crossTarget buildConfig == Just "aarch64-unknown-mingw32" && opsys == Linux (Debian12Wine FullBuild)
|
|
928 | + then "CONFIGURE_ARGS" =: "--build=x86_64-unknown-mingw32 --host=x86_64-unknown-mingw32"
|
|
929 | + else mempty
|
|
900 | 930 | ]
|
901 | 931 | |
902 | 932 | jobArtifacts = Artifacts
|
... | ... | @@ -1277,51 +1307,73 @@ cross_jobs = [ |
1277 | 1307 | -- Linux Aarch64 (Wine + FEX + MSYS64) => Windows Aarch64
|
1278 | 1308 | , makeWinArmJobs
|
1279 | 1309 | $ addValidateRule WinArm64
|
1280 | - (validateBuilds AArch64 (Linux Debian12Wine) winAarch64Config)
|
|
1310 | + (validateBuilds AArch64 (Linux (Debian12Wine OnlyTest)) winAarch64Config)
|
|
1281 | 1311 | , makeWinArmJobs
|
1282 | 1312 | $ addValidateRule WinArm64LLVM
|
1283 | - (validateBuilds AArch64 (Linux Debian12Wine) (winAarch64Config {llvmBootstrap = True}))
|
|
1313 | + (validateBuilds AArch64 (Linux (Debian12Wine OnlyTest)) (winAarch64Config {llvmBootstrap = True}))
|
|
1314 | + , makeWineArmJobs
|
|
1315 | + $ addValidateRule WineArm64
|
|
1316 | + (validateBuilds AArch64 (Linux (Debian12Wine FullBuild)) winAarch64Config)
|
|
1284 | 1317 | ]
|
1285 | 1318 | where
|
1286 | 1319 | javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure"))
|
1287 | 1320 | { bignumBackend = Native }
|
1288 | 1321 | |
1289 | - makeWinArmJobs = modifyJobs
|
|
1290 | - ( -- Cross compiler validate does not need any docs
|
|
1291 | - setVariable "HADRIAN_ARGS" "--docs=none"
|
|
1292 | - . setVariable "AR" (llvm_prefix ++ "llvm-ar")
|
|
1293 | - . setVariable "CC" (llvm_prefix ++ "clang")
|
|
1294 | - . setVariable "CXX" (llvm_prefix ++ "clang++")
|
|
1295 | - . setVariable "NM" (llvm_prefix ++ "nm")
|
|
1296 | - . setVariable "OBJCOPY" (llvm_prefix ++ "objcopy")
|
|
1297 | - . setVariable "OBJDUMP" (llvm_prefix ++ "objdump")
|
|
1298 | - . setVariable "RANLIB" (llvm_prefix ++ "llvm-ranlib")
|
|
1299 | - . setVariable "SIZE" (llvm_prefix ++ "size")
|
|
1300 | - . setVariable "STRINGS" (llvm_prefix ++ "strings")
|
|
1301 | - . setVariable "STRIP" (llvm_prefix ++ "strip")
|
|
1302 | - . setVariable "WindresCmd" (llvm_prefix ++ "windres")
|
|
1303 | - . setVariable "LLVMAS" (llvm_prefix ++ "clang")
|
|
1304 | - . setVariable "LD" (llvm_prefix ++ "ld")
|
|
1305 | - -- See Note [Empty MergeObjsCmd]
|
|
1306 | - -- Windows target require to make linker merge feature check disabled.
|
|
1307 | - . setVariable "MergeObjsCmd" ""
|
|
1308 | - -- Note [Wide Triple Windows]
|
|
1309 | - -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1310 | - -- LLVM MinGW Linux Toolchain expects to recieve "aarch64-w64-mingw32"
|
|
1311 | - -- as a triple but we use more common "aarch64-unknown-mingw32".
|
|
1312 | - -- Due of this we need configure ld manually for clang because
|
|
1313 | - -- it will use system's ld otherwise when --target will be specified to
|
|
1314 | - -- unexpected triple.
|
|
1315 | - . setVariable "CFLAGS" cflags
|
|
1316 | - . setVariable "CONF_CC_OPTS_STAGE2" cflags
|
|
1317 | - ) where
|
|
1318 | - llvm_prefix = "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-"
|
|
1319 | - -- See Note [Windows Toolchain Standard Library Options]
|
|
1320 | - cflags = "-fuse-ld=" ++ llvm_prefix ++ "ld --rtlib=compiler-rt"
|
|
1322 | + addWindowsCrossArmVars llvm_prefix exe_suffix cflags = modifyJobs
|
|
1323 | + ( -- Cross compiler validate does not need any docs
|
|
1324 | + setVariable "HADRIAN_ARGS" "--docs=none"
|
|
1325 | + . setVariable "AR" (llvm_prefix ++ "llvm-ar" ++ exe_suffix)
|
|
1326 | + . setVariable "CC" (llvm_prefix ++ "clang")
|
|
1327 | + . setVariable "CXX" (llvm_prefix ++ "clang++")
|
|
1328 | + . setVariable "NM" (llvm_prefix ++ "nm" ++ exe_suffix)
|
|
1329 | + . setVariable "OBJCOPY" (llvm_prefix ++ "objcopy")
|
|
1330 | + . setVariable "OBJDUMP" (llvm_prefix ++ "objdump")
|
|
1331 | + . setVariable "RANLIB" (llvm_prefix ++ "llvm-ranlib" ++ exe_suffix)
|
|
1332 | + . setVariable "SIZE" (llvm_prefix ++ "size")
|
|
1333 | + . setVariable "STRINGS" (llvm_prefix ++ "strings")
|
|
1334 | + . setVariable "STRIP" (llvm_prefix ++ "strip")
|
|
1335 | + . setVariable "WindresCmd" (llvm_prefix ++ "windres")
|
|
1336 | + . setVariable "LLVMAS" (llvm_prefix ++ "clang")
|
|
1337 | + . setVariable "LD" (llvm_prefix ++ "ld")
|
|
1338 | + -- See Note [Empty MergeObjsCmd]
|
|
1339 | + -- Windows target require to make linker merge feature check disabled.
|
|
1340 | + . setVariable "MergeObjsCmd" ""
|
|
1341 | + -- Note [Wide Triple Windows]
|
|
1342 | + -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1343 | + -- LLVM MinGW Linux Toolchain expects to recieve "aarch64-w64-mingw32"
|
|
1344 | + -- as a triple but we use more common "aarch64-unknown-mingw32".
|
|
1345 | + -- Due of this we need configure ld manually for clang because
|
|
1346 | + -- it will use system's ld otherwise when --target will be specified to
|
|
1347 | + -- unexpected triple.
|
|
1348 | + . setVariable "CFLAGS" cflags
|
|
1349 | + . setVariable "CONF_CC_OPTS_STAGE2" cflags
|
|
1350 | + )
|
|
1351 | + |
|
1352 | + makeWinArmJobs =
|
|
1353 | + let
|
|
1354 | + llvm_prefix = "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-"
|
|
1355 | + -- See Note [Windows Toolchain Standard Library Options]
|
|
1356 | + cflags = "-fuse-ld=" ++ llvm_prefix ++ "ld --rtlib=compiler-rt"
|
|
1357 | + in addWindowsCrossArmVars llvm_prefix "" cflags
|
|
1321 | 1358 | |
1322 | 1359 | winAarch64Config = (crossConfig "aarch64-unknown-mingw32" (Emulator "/opt/wine-arm64ec-msys2-deb12/bin/wine") Nothing)
|
1323 | 1360 | { bignumBackend = Native }
|
1324 | 1361 | |
1362 | + makeWineArmJobs =
|
|
1363 | + let
|
|
1364 | + llvm_path = "C:/msys64/opt/llvm-mingw-windows/bin"
|
|
1365 | + llvm_prefix = llvm_path ++ "/aarch64-w64-mingw32-"
|
|
1366 | + exe_suffix = ".exe"
|
|
1367 | + -- See Note [Windows Toolchain Standard Library Options]
|
|
1368 | + cflags = "-fuse-ld=" ++ (llvm_path ++ "/bin/ld.lld") ++ "ld --rtlib=compiler-rt -D_UCRT"
|
|
1369 | + in modifyJobs
|
|
1370 | + ( setVariable "TOOLCHAIN_SOURCE" "env"
|
|
1371 | + . setVariable "DLLTOOL" (llvm_path ++ "/dlltool" ++ exe_suffix)
|
|
1372 | + . setVariable "CC_STAGE0" (llvm_path ++ "/bin/x86_64-w64-mingw32-clang")
|
|
1373 | + . setVariable "CONF_CC_OPTS_STAGE0" ("--target=x86_64-unknown-mingw32 " ++ cflags)
|
|
1374 | + . setVariable "CONF_CC_OPTS_STAGE1" cflags
|
|
1375 | + ) . (addWindowsCrossArmVars llvm_prefix exe_suffix cflags)
|
|
1376 | + |
|
1325 | 1377 | make_wasm_jobs cfg =
|
1326 | 1378 | modifyJobs
|
1327 | 1379 | ( -- See Note [Testing wasm ghci browser mode]
|
... | ... | @@ -1381,6 +1433,7 @@ platform_mapping = Map.map go combined_result |
1381 | 1433 | , "x86_64-windows-validate"
|
1382 | 1434 | , "aarch64-linux-deb12-validate"
|
1383 | 1435 | , "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate"
|
1436 | + , "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build"
|
|
1384 | 1437 | , "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
|
1385 | 1438 | , "nightly-x86_64-linux-deb11-validate"
|
1386 | 1439 | , "nightly-x86_64-linux-deb12-validate"
|
... | ... | @@ -1389,6 +1442,7 @@ platform_mapping = Map.map go combined_result |
1389 | 1442 | , "nightly-aarch64-linux-deb10-validate"
|
1390 | 1443 | , "nightly-aarch64-linux-deb12-validate"
|
1391 | 1444 | , "nightly-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate"
|
1445 | + , "nightly-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build"
|
|
1392 | 1446 | , "nightly-x86_64-linux-alpine3_12-validate"
|
1393 | 1447 | , "nightly-x86_64-linux-deb10-validate"
|
1394 | 1448 | , "nightly-x86_64-linux-fedora33-release"
|
... | ... | @@ -477,6 +477,92 @@ |
477 | 477 | "WindresCmd": "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-windres"
|
478 | 478 | }
|
479 | 479 | },
|
480 | + "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build": {
|
|
481 | + "after_script": [
|
|
482 | + ".gitlab/ci.sh save_cache",
|
|
483 | + ".gitlab/ci.sh save_test_output",
|
|
484 | + ".gitlab/ci.sh clean",
|
|
485 | + "cat ci_timings"
|
|
486 | + ],
|
|
487 | + "allow_failure": false,
|
|
488 | + "artifacts": {
|
|
489 | + "expire_in": "2 weeks",
|
|
490 | + "paths": [
|
|
491 | + "ghc-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build.tar.xz",
|
|
492 | + "junit.xml",
|
|
493 | + "unexpected-test-output.tar.gz"
|
|
494 | + ],
|
|
495 | + "reports": {
|
|
496 | + "junit": "junit.xml"
|
|
497 | + },
|
|
498 | + "when": "always"
|
|
499 | + },
|
|
500 | + "cache": {
|
|
501 | + "key": "aarch64-linux-deb12-wine-$CACHE_REV",
|
|
502 | + "paths": [
|
|
503 | + "cabal-cache",
|
|
504 | + "toolchain"
|
|
505 | + ]
|
|
506 | + },
|
|
507 | + "dependencies": [],
|
|
508 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12-wine:$DOCKER_REV",
|
|
509 | + "needs": [
|
|
510 | + {
|
|
511 | + "artifacts": false,
|
|
512 | + "job": "hadrian-ghc-in-ghci"
|
|
513 | + }
|
|
514 | + ],
|
|
515 | + "rules": [
|
|
516 | + {
|
|
517 | + "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build(\\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]+/)) || (($CI_MERGE_REQUEST_LABELS =~ /.*aarch64.*/) && ($CI_MERGE_REQUEST_LABELS =~ /.*Wine.*/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
|
|
518 | + "when": "on_success"
|
|
519 | + }
|
|
520 | + ],
|
|
521 | + "script": [
|
|
522 | + "sudo chown ghc:ghc -R .",
|
|
523 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh setup",
|
|
524 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh configure",
|
|
525 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l -c './hadrian/build-cabal clean'",
|
|
526 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh build_hadrian"
|
|
527 | + ],
|
|
528 | + "stage": "full-build",
|
|
529 | + "tags": [
|
|
530 | + "aarch64-linux"
|
|
531 | + ],
|
|
532 | + "variables": {
|
|
533 | + "AR": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-llvm-ar.exe",
|
|
534 | + "BIGNUM_BACKEND": "native",
|
|
535 | + "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build",
|
|
536 | + "BUILD_FLAVOUR": "validate",
|
|
537 | + "CC": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang",
|
|
538 | + "CC_STAGE0": "C:/msys64/opt/llvm-mingw-windows/bin/bin/x86_64-w64-mingw32-clang",
|
|
539 | + "CFLAGS": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
540 | + "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check --build=x86_64-unknown-mingw32 --host=x86_64-unknown-mingw32",
|
|
541 | + "CONF_CC_OPTS_STAGE0": "--target=x86_64-unknown-mingw32 -fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
542 | + "CONF_CC_OPTS_STAGE1": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
543 | + "CONF_CC_OPTS_STAGE2": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
544 | + "CROSS_EMULATOR": "/opt/wine-arm64ec-msys2-deb12/bin/wine",
|
|
545 | + "CROSS_TARGET": "aarch64-unknown-mingw32",
|
|
546 | + "CXX": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang++",
|
|
547 | + "DLLTOOL": "C:/msys64/opt/llvm-mingw-windows/bin/dlltool.exe",
|
|
548 | + "HADRIAN_ARGS": "--docs=none",
|
|
549 | + "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
550 | + "LD": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-ld",
|
|
551 | + "LLVMAS": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang",
|
|
552 | + "MergeObjsCmd": "",
|
|
553 | + "NM": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-nm.exe",
|
|
554 | + "OBJCOPY": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-objcopy",
|
|
555 | + "OBJDUMP": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-objdump",
|
|
556 | + "RANLIB": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-llvm-ranlib.exe",
|
|
557 | + "RUNTEST_ARGS": "",
|
|
558 | + "SIZE": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-size",
|
|
559 | + "STRINGS": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-strings",
|
|
560 | + "STRIP": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-strip",
|
|
561 | + "TEST_ENV": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build",
|
|
562 | + "TOOLCHAIN_SOURCE": "env",
|
|
563 | + "WindresCmd": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-windres"
|
|
564 | + }
|
|
565 | + },
|
|
480 | 566 | "i386-linux-alpine3_20-validate": {
|
481 | 567 | "after_script": [
|
482 | 568 | ".gitlab/ci.sh save_cache",
|
... | ... | @@ -1148,6 +1234,93 @@ |
1148 | 1234 | "XZ_OPT": "-9"
|
1149 | 1235 | }
|
1150 | 1236 | },
|
1237 | + "nightly-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build": {
|
|
1238 | + "after_script": [
|
|
1239 | + ".gitlab/ci.sh save_cache",
|
|
1240 | + ".gitlab/ci.sh save_test_output",
|
|
1241 | + ".gitlab/ci.sh clean",
|
|
1242 | + "cat ci_timings"
|
|
1243 | + ],
|
|
1244 | + "allow_failure": false,
|
|
1245 | + "artifacts": {
|
|
1246 | + "expire_in": "8 weeks",
|
|
1247 | + "paths": [
|
|
1248 | + "ghc-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build.tar.xz",
|
|
1249 | + "junit.xml",
|
|
1250 | + "unexpected-test-output.tar.gz"
|
|
1251 | + ],
|
|
1252 | + "reports": {
|
|
1253 | + "junit": "junit.xml"
|
|
1254 | + },
|
|
1255 | + "when": "always"
|
|
1256 | + },
|
|
1257 | + "cache": {
|
|
1258 | + "key": "aarch64-linux-deb12-wine-$CACHE_REV",
|
|
1259 | + "paths": [
|
|
1260 | + "cabal-cache",
|
|
1261 | + "toolchain"
|
|
1262 | + ]
|
|
1263 | + },
|
|
1264 | + "dependencies": [],
|
|
1265 | + "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12-wine:$DOCKER_REV",
|
|
1266 | + "needs": [
|
|
1267 | + {
|
|
1268 | + "artifacts": false,
|
|
1269 | + "job": "hadrian-ghc-in-ghci"
|
|
1270 | + }
|
|
1271 | + ],
|
|
1272 | + "rules": [
|
|
1273 | + {
|
|
1274 | + "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
|
|
1275 | + "when": "on_success"
|
|
1276 | + }
|
|
1277 | + ],
|
|
1278 | + "script": [
|
|
1279 | + "sudo chown ghc:ghc -R .",
|
|
1280 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh setup",
|
|
1281 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh configure",
|
|
1282 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l -c './hadrian/build-cabal clean'",
|
|
1283 | + "/opt/wine-arm64ec-msys2-deb12/bin/wine c:/msys64/usr/bin/bash.exe -l .gitlab/ci.sh build_hadrian"
|
|
1284 | + ],
|
|
1285 | + "stage": "full-build",
|
|
1286 | + "tags": [
|
|
1287 | + "aarch64-linux"
|
|
1288 | + ],
|
|
1289 | + "variables": {
|
|
1290 | + "AR": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-llvm-ar.exe",
|
|
1291 | + "BIGNUM_BACKEND": "native",
|
|
1292 | + "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build",
|
|
1293 | + "BUILD_FLAVOUR": "validate",
|
|
1294 | + "CC": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang",
|
|
1295 | + "CC_STAGE0": "C:/msys64/opt/llvm-mingw-windows/bin/bin/x86_64-w64-mingw32-clang",
|
|
1296 | + "CFLAGS": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
1297 | + "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check --build=x86_64-unknown-mingw32 --host=x86_64-unknown-mingw32",
|
|
1298 | + "CONF_CC_OPTS_STAGE0": "--target=x86_64-unknown-mingw32 -fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
1299 | + "CONF_CC_OPTS_STAGE1": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
1300 | + "CONF_CC_OPTS_STAGE2": "-fuse-ld=C:/msys64/opt/llvm-mingw-windows/bin/bin/ld.lldld --rtlib=compiler-rt -D_UCRT",
|
|
1301 | + "CROSS_EMULATOR": "/opt/wine-arm64ec-msys2-deb12/bin/wine",
|
|
1302 | + "CROSS_TARGET": "aarch64-unknown-mingw32",
|
|
1303 | + "CXX": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang++",
|
|
1304 | + "DLLTOOL": "C:/msys64/opt/llvm-mingw-windows/bin/dlltool.exe",
|
|
1305 | + "HADRIAN_ARGS": "--docs=none",
|
|
1306 | + "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
|
1307 | + "LD": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-ld",
|
|
1308 | + "LLVMAS": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-clang",
|
|
1309 | + "MergeObjsCmd": "",
|
|
1310 | + "NM": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-nm.exe",
|
|
1311 | + "OBJCOPY": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-objcopy",
|
|
1312 | + "OBJDUMP": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-objdump",
|
|
1313 | + "RANLIB": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-llvm-ranlib.exe",
|
|
1314 | + "RUNTEST_ARGS": "",
|
|
1315 | + "SIZE": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-size",
|
|
1316 | + "STRINGS": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-strings",
|
|
1317 | + "STRIP": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-strip",
|
|
1318 | + "TEST_ENV": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate-_wine_full_build",
|
|
1319 | + "TOOLCHAIN_SOURCE": "env",
|
|
1320 | + "WindresCmd": "C:/msys64/opt/llvm-mingw-windows/bin/aarch64-w64-mingw32-windres",
|
|
1321 | + "XZ_OPT": "-9"
|
|
1322 | + }
|
|
1323 | + },
|
|
1151 | 1324 | "nightly-i386-linux-alpine3_20-validate": {
|
1152 | 1325 | "after_script": [
|
1153 | 1326 | ".gitlab/ci.sh save_cache",
|