From 7e7af6dc5aef33b160191ccd9960bc269d5afe4c Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 13:04:28 +0200 Subject: [PATCH 01/25] Support linux-arm64 and linux-riscv64 targets --- README.md | 14 ++++++++++++++ src/nimxc.nim | 8 ++++++-- tests/test_everything.nim | 5 +++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2ed10c5..99ad7e1 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ From linux-amd64 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -47,6 +49,8 @@ From linux-i386 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -58,6 +62,8 @@ From macosx-amd64 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -69,6 +75,8 @@ From macosx-arm64 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -80,6 +88,8 @@ From windows-amd64 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -91,6 +101,8 @@ From windows-arm64 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -102,6 +114,8 @@ From windows-i386 --target linux-amd64-gnu.2.28 --target linux-amd64-gnu.2.31 --target linux-i386 + --target linux-arm64 + --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 diff --git a/src/nimxc.nim b/src/nimxc.nim index c90a457..059cf57 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -109,13 +109,15 @@ const nimOStoZigOS = { "macosx": "macos", }.toTable() -const zigVersion = "0.9.0" +const zigVersion = "0.10.1" const zigurls = { "macosx-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-macos-x86_64-{zigVersion}.tar.xz", "macosx-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-macos-aarch64-{zigVersion}.tar.xz", "linux-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-x86_64-{zigVersion}.tar.xz", "linux-i386": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-i386-{zigVersion}.tar.xz", + "linux-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-aarch64-{zigVersion}.tar.xz", + "linux-riscv64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-riscv64-{zigVersion}.tar.xz", "windows-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-x86_64-{zigVersion}.zip", "windows-i386": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-i386-{zigVersion}.zip", "windows-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-aarch64-{zigVersion}.zip", @@ -150,9 +152,11 @@ const targets : seq[Target] = @[ ("linux", "amd64", "gnu.2.27"), ("linux", "amd64", "gnu.2.28"), ("linux", "amd64", "gnu.2.31"), + ("linux", "arm64", ""), + ("linux", "riscv64", ""), ("windows", "i386", ""), ("windows", "amd64", ""), - ("windows", "arm64", ""), + ("windows", "arm64", ""), ] for host, url in zigurls.pairs: diff --git a/tests/test_everything.nim b/tests/test_everything.nim index fdecbd6..3fc4720 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -10,11 +10,16 @@ import nimxc var toskip = [ "ssl_from_windows-amd64_to_linux-amd64", "ssl_from_macosx-amd64_to_linux-amd64", + "ssl_from_linux-arm64_to_macosx-arm64", + "ssl_from_linux-arm64_to_macosx-amd64", "sqlite_from_windows-amd64_to_linux-amd64-gnu.2.27", "sqlite_from_macosx-amd64_to_linux-amd64-gnu.2.27", "sqlite_from_macosx-arm64_to_linux-amd64-gnu.2.27", + "sqlite_from_linux-arm64_to_linux-amd64-gnu.2.27", "regex_from_windows-amd64_to_linux-amd64", "regex_from_macosx-amd64_to_linux-amd64", + "threading_from_macosx-arm64_to_linux-amd64", + "threading_from_linux-arm64_to_linux-amd64", ] var samples: seq[string] From f21034d671f1baa8c1008da80aba9ecdc1755143 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 13:09:34 +0200 Subject: [PATCH 02/25] Trigger tests From 56e2f09294228f17c79dc9bf3c30519d5864ea9f Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 22:34:33 +0200 Subject: [PATCH 03/25] add macosx sdk --- src/nimxc.nim | 70 ++++++++++++++++++++++++++++----------- tests/test_everything.nim | 6 ++-- 2 files changed, 53 insertions(+), 23 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 059cf57..110f8ad 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -39,6 +39,14 @@ proc targetExeExt*(target: Pair): string = else: return "" +proc getDir*(url: string): string = + let arname = url.extractFilename + if arname.endsWith(".zip"): + return arname.changeFileExt("") + elif arname.endsWith(".tar.xz"): + return arname.changeFileExt("").changeFileExt("") + return arname.changeFileExt("") + #====================================================================== # Target definitions #====================================================================== @@ -95,6 +103,26 @@ proc install_zig(src_url: string, toolchains: string) = raise ValueError.newException("Failed to compile zigcc") echo "Created zigcc at ", zigcc +proc install_sdk(src_url: string, toolchains: string) = + let dlcache = toolchains / "download" + let dlfilename = dlcache / src_url.extractFilename() + let dstsubdir = toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") + + if not dstsubdir.dirExists: + if not dlfilename.fileExists: + # download it + createDir(dlcache) + echo &"Downloading {src_url} to {dlfilename} ..." + let client = newHttpClient() + defer: client.close() + client.downloadFile(src_url, dlfilename) + # extract it + echo &"Extracting {dlfilename} to {dstsubdir}" + var p = startProcess(findExe"tar", + args=["-x", "-C", toolchains, "-f", dlfilename], + options={poStdErrToStdOut, poParentStreams}) + doAssert p.waitForExit() == 0 + const zigcc_name = "zigcc".changeFileExt(ExeExt) # See https://nim-lang.org/docs/system.html#hostCPU for possible CPU arch values @@ -111,26 +139,28 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" +const sdkurl = "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz" + const zigurls = { - "macosx-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-macos-x86_64-{zigVersion}.tar.xz", - "macosx-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-macos-aarch64-{zigVersion}.tar.xz", - "linux-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-x86_64-{zigVersion}.tar.xz", - "linux-i386": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-i386-{zigVersion}.tar.xz", - "linux-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-aarch64-{zigVersion}.tar.xz", - "linux-riscv64": fmt"https://ziglang.org/download/{zigVersion}/zig-linux-riscv64-{zigVersion}.tar.xz", - "windows-amd64": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-x86_64-{zigVersion}.zip", - "windows-i386": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-i386-{zigVersion}.zip", - "windows-arm64": fmt"https://ziglang.org/download/{zigVersion}/zig-windows-aarch64-{zigVersion}.zip", + "macosx-amd64": &"https://ziglang.org/download/{zigVersion}/zig-macos-x86_64-{zigVersion}.tar.xz", + "macosx-arm64": &"https://ziglang.org/download/{zigVersion}/zig-macos-aarch64-{zigVersion}.tar.xz", + "linux-amd64": &"https://ziglang.org/download/{zigVersion}/zig-linux-x86_64-{zigVersion}.tar.xz", + "linux-i386": &"https://ziglang.org/download/{zigVersion}/zig-linux-i386-{zigVersion}.tar.xz", + "linux-arm64": &"https://ziglang.org/download/{zigVersion}/zig-linux-aarch64-{zigVersion}.tar.xz", + "linux-riscv64": &"https://ziglang.org/download/{zigVersion}/zig-linux-riscv64-{zigVersion}.tar.xz", + "windows-amd64": &"https://ziglang.org/download/{zigVersion}/zig-windows-x86_64-{zigVersion}.zip", + "windows-i386": &"https://ziglang.org/download/{zigVersion}/zig-windows-i386-{zigVersion}.zip", + "windows-arm64": &"https://ziglang.org/download/{zigVersion}/zig-windows-aarch64-{zigVersion}.zip", }.toTable() -proc mkArgs(zig_root: string, target: Target): seq[string] = +proc mkArgs(zig_root: string, sdk_root: string, target: Target): seq[string] = ## Return the compiler args for the given target var zig_target = ( nimOStoZigOS.getOrDefault(target.os, target.os), nimArchToZigArch.getOrDefault(target.cpu, target.cpu), target.extra, ) - @[ + result = @[ "--cc:clang", "--cpu:" & target.cpu, "--os:" & target.os, @@ -142,6 +172,10 @@ proc mkArgs(zig_root: string, target: Target): seq[string] = &"--passC:-target {zig_target.zigfmt} -fno-sanitize=undefined", &"--passL:-target {zig_target.zigfmt} -fno-sanitize=undefined", ] + if "macosx" in $target: + result.add &"--passC:-I{sdk_root}/usr/include -fno-sanitize=undefined" + result.add &"--passL:-F{sdk_root}/System/Library/Frameworks -fno-sanitize=undefined" + result.add &"--passL:-L{sdk_root}/usr/lib -fno-sanitize=undefined" #---------------------------------------------------------------------- const targets : seq[Target] = @[ @@ -165,22 +199,20 @@ for host, url in zigurls.pairs: let this_url = url if not host_systems.hasKey(this_host): host_systems[this_host] = newTable[Pair, Bundle]() - let arname = this_url.extractFilename - let dirname = if arname.endsWith(".zip"): - arname.changeFileExt("") - elif arname.endsWith(".tar.xz"): - arname.changeFileExt("").changeFileExt("") - else: - arname.changeFileExt("") + let dirname = getDir(url) + let sdkdirname = getDir(sdkurl) for target in targets: let targ: Target = (target.os, target.cpu, target.extra) # this is for closure purposes closureScope: let this_targ: Target = (targ.os, targ.cpu, targ.extra) proc install(toolchains: string) {.closure.} = install_zig(this_url, toolchains) + if "macosx" in $this_targ: + install_sdk(sdkurl, toolchains) proc args(toolchains: string): seq[string] {.closure.} = let zig_root = absolutePath(toolchains / dirname) - mkArgs(zig_root, this_targ) + let sdk_root = absolutePath(toolchains / sdkdirname) + mkArgs(zig_root, sdk_root, this_targ) let install_proc: InstallProc = install let args_proc: ArgsProc = args host_systems[host][$this_targ] = (install_proc, args_proc) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 3fc4720..d4969d1 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -10,12 +10,10 @@ import nimxc var toskip = [ "ssl_from_windows-amd64_to_linux-amd64", "ssl_from_macosx-amd64_to_linux-amd64", - "ssl_from_linux-arm64_to_macosx-arm64", - "ssl_from_linux-arm64_to_macosx-amd64", "sqlite_from_windows-amd64_to_linux-amd64-gnu.2.27", "sqlite_from_macosx-amd64_to_linux-amd64-gnu.2.27", - "sqlite_from_macosx-arm64_to_linux-amd64-gnu.2.27", - "sqlite_from_linux-arm64_to_linux-amd64-gnu.2.27", + "sqlite_from_macosx-arm64_to_linux-amd64-gnu.2.27", ## undefined symbol: fcntl64 https://github.com/ziglang/zig/pull/15101 + "sqlite_from_linux-arm64_to_linux-amd64-gnu.2.27", ## undefined symbol: fcntl64 https://github.com/ziglang/zig/pull/15101 "regex_from_windows-amd64_to_linux-amd64", "regex_from_macosx-amd64_to_linux-amd64", "threading_from_macosx-arm64_to_linux-amd64", From e2ff395a4ee8cb18dee2fc428f7e5b387ccd460d Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 22:55:10 +0200 Subject: [PATCH 04/25] skip threading_from_windows-amd64_to_linux-amd64 --- tests/test_everything.nim | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index d4969d1..44d6df9 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -18,6 +18,7 @@ var toskip = [ "regex_from_macosx-amd64_to_linux-amd64", "threading_from_macosx-arm64_to_linux-amd64", "threading_from_linux-arm64_to_linux-amd64", + "threading_from_windows-amd64_to_linux-amd64", ] var samples: seq[string] From db82fdcf306bfa21cfc9bbe7bf314f869e0c84eb Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 23:08:53 +0200 Subject: [PATCH 05/25] skip threading_from_macosx-amd64_to_windows-arm64 --- tests/test_everything.nim | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 44d6df9..8f61ccc 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -17,6 +17,7 @@ var toskip = [ "regex_from_windows-amd64_to_linux-amd64", "regex_from_macosx-amd64_to_linux-amd64", "threading_from_macosx-arm64_to_linux-amd64", + "threading_from_macosx-amd64_to_windows-arm64", "threading_from_linux-arm64_to_linux-amd64", "threading_from_windows-amd64_to_linux-amd64", ] From c42e6fa4606063cfd58e8def08fdb6e353ee3a2c Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Wed, 29 Mar 2023 23:24:11 +0200 Subject: [PATCH 06/25] skip threading_from_macosx-amd64_to_linux-amd64 --- tests/test_everything.nim | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 8f61ccc..47ed4e1 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -18,6 +18,7 @@ var toskip = [ "regex_from_macosx-amd64_to_linux-amd64", "threading_from_macosx-arm64_to_linux-amd64", "threading_from_macosx-amd64_to_windows-arm64", + "threading_from_macosx-amd64_to_linux-amd64", "threading_from_linux-arm64_to_linux-amd64", "threading_from_windows-amd64_to_linux-amd64", ] From c4e11cb7ab5f312c2488f6fb54c5f22f7f398c3c Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 00:34:58 +0200 Subject: [PATCH 07/25] skip threading_from_windows-amd64_to_windows-arm64 --- tests/test_everything.nim | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 47ed4e1..89e4154 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -21,6 +21,7 @@ var toskip = [ "threading_from_macosx-amd64_to_linux-amd64", "threading_from_linux-arm64_to_linux-amd64", "threading_from_windows-amd64_to_linux-amd64", + "threading_from_windows-amd64_to_windows-arm64", ] var samples: seq[string] From cf453bf9eab473663c00274f117c6bdc92aa1f2e Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 07:05:32 +0200 Subject: [PATCH 08/25] add --force-local to tar, windows issues --- src/nimxc.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 110f8ad..39a2b65 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -119,7 +119,7 @@ proc install_sdk(src_url: string, toolchains: string) = # extract it echo &"Extracting {dlfilename} to {dstsubdir}" var p = startProcess(findExe"tar", - args=["-x", "-C", toolchains, "-f", dlfilename], + args=["--force-local", "-x", "-C", toolchains, "-f", dlfilename], options={poStdErrToStdOut, poParentStreams}) doAssert p.waitForExit() == 0 @@ -139,6 +139,10 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" +const winSdkUrl = { + "windows": "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz", +}.toTable() + const sdkurl = "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz" const zigurls = { From 80a56c0c3d5d6bd9d8183e442c30863bbfb3d09a Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 07:06:18 +0200 Subject: [PATCH 09/25] revert winsdk --- src/nimxc.nim | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 39a2b65..71a293c 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -139,10 +139,6 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" -const winSdkUrl = { - "windows": "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz", -}.toTable() - const sdkurl = "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz" const zigurls = { From 310a12393d81f053fb343b9f4189fe34ae613fa7 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 07:47:48 +0200 Subject: [PATCH 10/25] change arg order --- src/nimxc.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 71a293c..1568dfb 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -119,7 +119,7 @@ proc install_sdk(src_url: string, toolchains: string) = # extract it echo &"Extracting {dlfilename} to {dstsubdir}" var p = startProcess(findExe"tar", - args=["--force-local", "-x", "-C", toolchains, "-f", dlfilename], + args=["--force-local", "-xf", dlfilename, "-C", toolchains], options={poStdErrToStdOut, poParentStreams}) doAssert p.waitForExit() == 0 From 6bb92870ba7d9990a2d04160e5e41f293e84c4f3 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 09:07:08 +0200 Subject: [PATCH 11/25] normalize path --- src/nimxc.nim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 1568dfb..4d89f09 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -107,7 +107,8 @@ proc install_sdk(src_url: string, toolchains: string) = let dlcache = toolchains / "download" let dlfilename = dlcache / src_url.extractFilename() let dstsubdir = toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") - + var dstdir = toolchains + dstdir.normalizePath() if not dstsubdir.dirExists: if not dlfilename.fileExists: # download it @@ -119,7 +120,7 @@ proc install_sdk(src_url: string, toolchains: string) = # extract it echo &"Extracting {dlfilename} to {dstsubdir}" var p = startProcess(findExe"tar", - args=["--force-local", "-xf", dlfilename, "-C", toolchains], + args=["--force-local", "-x", "-C", dstdir, "-f", dlfilename], options={poStdErrToStdOut, poParentStreams}) doAssert p.waitForExit() == 0 From 4b1bc3ae2713ee1496d2fb44786fa062aa56990a Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 10:17:30 +0200 Subject: [PATCH 12/25] add tmate for debug --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 03749b3..ae0d614 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,6 +37,9 @@ jobs: with: name: binaries-${{ matrix.os }} path: binaries-${{ matrix.os }}.tgz + - name: Setup tmate session + if: ${{ failure() }} + uses: mxschmitt/action-tmate@v3 run: needs: [compile] runs-on: ${{ matrix.os }} From 2689b77a6b10b2b6c157877befaa64ef475d14f7 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 13:40:04 +0200 Subject: [PATCH 13/25] add sdk zip for windows --- src/nimxc.nim | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 4d89f09..0ae16cf 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -106,9 +106,10 @@ proc install_zig(src_url: string, toolchains: string) = proc install_sdk(src_url: string, toolchains: string) = let dlcache = toolchains / "download" let dlfilename = dlcache / src_url.extractFilename() - let dstsubdir = toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") - var dstdir = toolchains - dstdir.normalizePath() + let dstsubdir = if dlfilename.endsWith(".zip"): + toolchains / dlfilename.extractFilename.changeFileExt("") + else: + toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") if not dstsubdir.dirExists: if not dlfilename.fileExists: # download it @@ -119,10 +120,15 @@ proc install_sdk(src_url: string, toolchains: string) = client.downloadFile(src_url, dlfilename) # extract it echo &"Extracting {dlfilename} to {dstsubdir}" - var p = startProcess(findExe"tar", - args=["--force-local", "-x", "-C", dstdir, "-f", dlfilename], - options={poStdErrToStdOut, poParentStreams}) - doAssert p.waitForExit() == 0 + if dlfilename.endsWith(".zip"): + let tmpdir = toolchains / "tmp" + extractAll(dlfilename, tmpdir) + moveDir(tmpdir / dstsubdir.extractFilename, dstsubdir) + else: + var p = startProcess(findExe"tar", + args=["-x", "-C", toolchains, "-f", dlfilename], + options={poStdErrToStdOut, poParentStreams}) + doAssert p.waitForExit() == 0 const zigcc_name = "zigcc".changeFileExt(ExeExt) @@ -140,7 +146,11 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" -const sdkurl = "https://ivan.vandot.rs/macosx-sdk.14.2.tar.xz" +const hostSDK = { + "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", +}.toTable() + +const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" const zigurls = { "macosx-amd64": &"https://ziglang.org/download/{zigVersion}/zig-macos-x86_64-{zigVersion}.tar.xz", @@ -209,7 +219,8 @@ for host, url in zigurls.pairs: proc install(toolchains: string) {.closure.} = install_zig(this_url, toolchains) if "macosx" in $this_targ: - install_sdk(sdkurl, toolchains) + let this_sdkurl = hostSDK.getOrDefault(this_host, sdkurl) + install_sdk(this_sdkurl, toolchains) proc args(toolchains: string): seq[string] {.closure.} = let zig_root = absolutePath(toolchains / dirname) let sdk_root = absolutePath(toolchains / sdkdirname) From 41a6495af56de1845b520de3c20e91203c8c5e57 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 14:01:10 +0200 Subject: [PATCH 14/25] fix hostSDK --- src/nimxc.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 0ae16cf..bfd7880 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -147,7 +147,9 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" const hostSDK = { - "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", + "windows-i386": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", + "windows-amd64": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", + "windows-arm64": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", }.toTable() const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" @@ -219,6 +221,7 @@ for host, url in zigurls.pairs: proc install(toolchains: string) {.closure.} = install_zig(this_url, toolchains) if "macosx" in $this_targ: + echo "THIS HOST: ", this_host let this_sdkurl = hostSDK.getOrDefault(this_host, sdkurl) install_sdk(this_sdkurl, toolchains) proc args(toolchains: string): seq[string] {.closure.} = From 8b8460a5f4cabd93e9cbf3a7465b85d93120870d Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 14:20:22 +0200 Subject: [PATCH 15/25] rename tmp folder --- src/nimxc.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index bfd7880..ff81da0 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -121,7 +121,7 @@ proc install_sdk(src_url: string, toolchains: string) = # extract it echo &"Extracting {dlfilename} to {dstsubdir}" if dlfilename.endsWith(".zip"): - let tmpdir = toolchains / "tmp" + let tmpdir = toolchains / "tmpsdk" extractAll(dlfilename, tmpdir) moveDir(tmpdir / dstsubdir.extractFilename, dstsubdir) else: From e9272fa476c224373561e48713ecd8c04e82d5b8 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 16:57:17 +0200 Subject: [PATCH 16/25] fix sdk path on windows --- src/nimxc.nim | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index ff81da0..fe9eff4 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -121,9 +121,8 @@ proc install_sdk(src_url: string, toolchains: string) = # extract it echo &"Extracting {dlfilename} to {dstsubdir}" if dlfilename.endsWith(".zip"): - let tmpdir = toolchains / "tmpsdk" + let tmpdir = toolchains / "sdk" extractAll(dlfilename, tmpdir) - moveDir(tmpdir / dstsubdir.extractFilename, dstsubdir) else: var p = startProcess(findExe"tar", args=["-x", "-C", toolchains, "-f", dlfilename], @@ -147,9 +146,7 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" const hostSDK = { - "windows-i386": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", - "windows-amd64": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", - "windows-arm64": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", + "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", }.toTable() const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" @@ -221,12 +218,14 @@ for host, url in zigurls.pairs: proc install(toolchains: string) {.closure.} = install_zig(this_url, toolchains) if "macosx" in $this_targ: - echo "THIS HOST: ", this_host - let this_sdkurl = hostSDK.getOrDefault(this_host, sdkurl) + let this_sdkurl = hostSDK.getOrDefault(hostOS, sdkurl) install_sdk(this_sdkurl, toolchains) proc args(toolchains: string): seq[string] {.closure.} = let zig_root = absolutePath(toolchains / dirname) - let sdk_root = absolutePath(toolchains / sdkdirname) + let sdk_root = if hostOS == "windows": + absolutePath(toolchains / "sdk" / sdkdirname) + else: + absolutePath(toolchains / sdkdirname) mkArgs(zig_root, sdk_root, this_targ) let install_proc: InstallProc = install let args_proc: ArgsProc = args From 89d5c03df7e702dfcc43c2733a4a1df6883b1a23 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 18:03:23 +0200 Subject: [PATCH 17/25] try tar sdk on windows --- src/nimxc.nim | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index fe9eff4..6dd2e08 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -6,7 +6,8 @@ import std/strformat import std/strutils import std/tables -import zippy/ziparchives +import zippy/ziparchives as zip +import zippy/tarballs as tar type Pair* = string @@ -43,9 +44,7 @@ proc getDir*(url: string): string = let arname = url.extractFilename if arname.endsWith(".zip"): return arname.changeFileExt("") - elif arname.endsWith(".tar.xz"): - return arname.changeFileExt("").changeFileExt("") - return arname.changeFileExt("") + return arname.changeFileExt("").changeFileExt("") #====================================================================== # Target definitions @@ -73,7 +72,7 @@ proc install_zig(src_url: string, toolchains: string) = echo &"Extracting {dlfilename} to {dstsubdir}" if dlfilename.endsWith(".zip"): let tmpdir = toolchains / "tmp" - extractAll(dlfilename, tmpdir) + zip.extractAll(dlfilename, tmpdir) moveDir(tmpdir / dstsubdir.extractFilename, dstsubdir) else: var p = startProcess(findExe"tar", @@ -120,9 +119,9 @@ proc install_sdk(src_url: string, toolchains: string) = client.downloadFile(src_url, dlfilename) # extract it echo &"Extracting {dlfilename} to {dstsubdir}" - if dlfilename.endsWith(".zip"): + if dlfilename.endsWith(".tar.gz"): let tmpdir = toolchains / "sdk" - extractAll(dlfilename, tmpdir) + tar.extractAll(dlfilename, tmpdir) else: var p = startProcess(findExe"tar", args=["-x", "-C", toolchains, "-f", dlfilename], @@ -146,7 +145,7 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" const hostSDK = { - "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", + "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.gz", }.toTable() const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" From 5ee0d929a168324ab66937205a60ba41e3d929e5 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 18:52:46 +0200 Subject: [PATCH 18/25] switch back to zip --- src/nimxc.nim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/nimxc.nim b/src/nimxc.nim index 6dd2e08..116a1b1 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -122,6 +122,9 @@ proc install_sdk(src_url: string, toolchains: string) = if dlfilename.endsWith(".tar.gz"): let tmpdir = toolchains / "sdk" tar.extractAll(dlfilename, tmpdir) + if dlfilename.endsWith(".zip"): + let tmpdir = toolchains / "sdk" + zip.extractAll(dlfilename, tmpdir) else: var p = startProcess(findExe"tar", args=["-x", "-C", toolchains, "-f", dlfilename], From 971d30c0c207d33b8f76a8b1d13cd81dd6d733b2 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Thu, 30 Mar 2023 21:49:56 +0200 Subject: [PATCH 19/25] switch to zip url --- src/nimxc.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 116a1b1..0f7cbca 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -148,7 +148,7 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" const hostSDK = { - "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.gz", + "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", }.toTable() const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" From 27464c56cb943ba0ffbb3ac4239a9b3bb69e771b Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Fri, 31 Mar 2023 15:25:59 +0200 Subject: [PATCH 20/25] disable auto MacOSX SDK autoinstall on Windows --- src/nimxc.nim | 75 +++++++++++++++++---------------------- tests/test_everything.nim | 2 ++ 2 files changed, 34 insertions(+), 43 deletions(-) diff --git a/src/nimxc.nim b/src/nimxc.nim index 0f7cbca..86bf9f6 100644 --- a/src/nimxc.nim +++ b/src/nimxc.nim @@ -6,8 +6,7 @@ import std/strformat import std/strutils import std/tables -import zippy/ziparchives as zip -import zippy/tarballs as tar +import zippy/ziparchives type Pair* = string @@ -15,8 +14,8 @@ type os: string cpu: string extra: string - InstallProc = proc(dir: string): void {.closure.} - ArgsProc = proc(dir: string): seq[string] {.closure.} + InstallProc = proc(dir: string, sdk: string): void {.closure.} + ArgsProc = proc(dir: string, sdk: string): seq[string] {.closure.} Bundle = tuple install: InstallProc args: ArgsProc @@ -72,7 +71,7 @@ proc install_zig(src_url: string, toolchains: string) = echo &"Extracting {dlfilename} to {dstsubdir}" if dlfilename.endsWith(".zip"): let tmpdir = toolchains / "tmp" - zip.extractAll(dlfilename, tmpdir) + extractAll(dlfilename, tmpdir) moveDir(tmpdir / dstsubdir.extractFilename, dstsubdir) else: var p = startProcess(findExe"tar", @@ -105,10 +104,7 @@ proc install_zig(src_url: string, toolchains: string) = proc install_sdk(src_url: string, toolchains: string) = let dlcache = toolchains / "download" let dlfilename = dlcache / src_url.extractFilename() - let dstsubdir = if dlfilename.endsWith(".zip"): - toolchains / dlfilename.extractFilename.changeFileExt("") - else: - toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") + let dstsubdir = toolchains / dlfilename.extractFilename.changeFileExt("").changeFileExt("") if not dstsubdir.dirExists: if not dlfilename.fileExists: # download it @@ -119,17 +115,10 @@ proc install_sdk(src_url: string, toolchains: string) = client.downloadFile(src_url, dlfilename) # extract it echo &"Extracting {dlfilename} to {dstsubdir}" - if dlfilename.endsWith(".tar.gz"): - let tmpdir = toolchains / "sdk" - tar.extractAll(dlfilename, tmpdir) - if dlfilename.endsWith(".zip"): - let tmpdir = toolchains / "sdk" - zip.extractAll(dlfilename, tmpdir) - else: - var p = startProcess(findExe"tar", - args=["-x", "-C", toolchains, "-f", dlfilename], - options={poStdErrToStdOut, poParentStreams}) - doAssert p.waitForExit() == 0 + var p = startProcess(findExe"tar", + args=["-x", "-C", toolchains, "-f", dlfilename], + options={poStdErrToStdOut, poParentStreams}) + doAssert p.waitForExit() == 0 const zigcc_name = "zigcc".changeFileExt(ExeExt) @@ -147,10 +136,6 @@ const nimOStoZigOS = { const zigVersion = "0.10.1" -const hostSDK = { - "windows": "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.zip", -}.toTable() - const sdkurl = "https://github.com/vandot/nimxc/releases/download/sdk/macosx-sdk.14.2.tar.xz" const zigurls = { @@ -159,7 +144,6 @@ const zigurls = { "linux-amd64": &"https://ziglang.org/download/{zigVersion}/zig-linux-x86_64-{zigVersion}.tar.xz", "linux-i386": &"https://ziglang.org/download/{zigVersion}/zig-linux-i386-{zigVersion}.tar.xz", "linux-arm64": &"https://ziglang.org/download/{zigVersion}/zig-linux-aarch64-{zigVersion}.tar.xz", - "linux-riscv64": &"https://ziglang.org/download/{zigVersion}/zig-linux-riscv64-{zigVersion}.tar.xz", "windows-amd64": &"https://ziglang.org/download/{zigVersion}/zig-windows-x86_64-{zigVersion}.zip", "windows-i386": &"https://ziglang.org/download/{zigVersion}/zig-windows-i386-{zigVersion}.zip", "windows-arm64": &"https://ziglang.org/download/{zigVersion}/zig-windows-aarch64-{zigVersion}.zip", @@ -199,7 +183,6 @@ const targets : seq[Target] = @[ ("linux", "amd64", "gnu.2.28"), ("linux", "amd64", "gnu.2.31"), ("linux", "arm64", ""), - ("linux", "riscv64", ""), ("windows", "i386", ""), ("windows", "amd64", ""), ("windows", "arm64", ""), @@ -217,15 +200,14 @@ for host, url in zigurls.pairs: let targ: Target = (target.os, target.cpu, target.extra) # this is for closure purposes closureScope: let this_targ: Target = (targ.os, targ.cpu, targ.extra) - proc install(toolchains: string) {.closure.} = + proc install(toolchains: string, sdk: string) {.closure.} = install_zig(this_url, toolchains) - if "macosx" in $this_targ: - let this_sdkurl = hostSDK.getOrDefault(hostOS, sdkurl) - install_sdk(this_sdkurl, toolchains) - proc args(toolchains: string): seq[string] {.closure.} = + if "macosx" in $this_targ and hostOS != "windows": + install_sdk(sdkurl, toolchains) + proc args(toolchains: string, sdk: string): seq[string] {.closure.} = let zig_root = absolutePath(toolchains / dirname) - let sdk_root = if hostOS == "windows": - absolutePath(toolchains / "sdk" / sdkdirname) + let sdk_root = if sdk != "": + absolutePath(sdk) else: absolutePath(toolchains / sdkdirname) mkArgs(zig_root, sdk_root, this_targ) @@ -236,8 +218,8 @@ for host, url in zigurls.pairs: # add nop targets for the host itself for key in host_systems.keys: block: - proc install(toolchains: string) = discard - proc args(toolchains: string): seq[string] = discard + proc install(toolchains: string, sdk: string) = discard + proc args(toolchains: string, sdk : string): seq[string] = discard let install_proc: InstallProc = install let args_proc: ArgsProc = args host_systems[key][key] = (install_proc, args_proc) @@ -254,21 +236,21 @@ proc get_bundle(host: Pair, target: Pair): Bundle = raise ValueError.newException(&"Target {target} unsupported on {host}. Acceptable targets: " & targets_for(host).join(", ")) return host_systems[host][target] -proc compile_args*(host: Pair, target: Pair, dir = ""): seq[string] = +proc compile_args*(host: Pair, target: Pair, dir = "", sdk = ""): seq[string] = ## Return the nim compile args to use to compile for the given target if host == target: return - get_bundle(host, target).args(dir) + get_bundle(host, target).args(dir, sdk) -proc install_toolchain*(host: Pair, target: Pair, dir = "") = +proc install_toolchain*(host: Pair, target: Pair, dir = "", sdk = "") = ## Install the toolchain for cross-compiling if host == target: return - get_bundle(host, target).install(dir) + get_bundle(host, target).install(dir, sdk) const DEFAULT_TOOLCHAIN_DIR* = expandTilde("~/.nimxc") -proc exec_nim_c*(host: Pair, target: Pair, toolchains: string, args: openArray[string]): int = +proc exec_nim_c*(host: Pair, target: Pair, toolchains: string, sdk: string, args: openArray[string]): int = ## Execute 'nim c' but cross-compile for the given `target` var full_args = @["c"] full_args.add(host.compile_args(target, toolchains)) @@ -318,7 +300,11 @@ when isMainModule: for host in toSeq(host_systems.keys).sorted: echo &"From {host}" for dst in toSeq(host_systems[host].keys).sorted: - echo &" --target {dst}" + let msg = if "windows" in host and "macosx" in dst: + &" --target {dst} (if MacOSX SDK is installed)" + else: + &" --target {dst}" + echo msg else: for targ in targets_for(THIS_HOST): echo &"--target {targ}" @@ -336,9 +322,12 @@ when isMainModule: option("-t", "--target", help="Target system.") flag("--no-auto-install", help="If given, don't attempt to install the toolchain if it's missing") option("-d", "--directory", help="Directory where toolchains were installed", default=some(DEFAULT_TOOLCHAIN_DIR)) + option("--sdk", help="Root directory where MacOSX SDK is installed") arg("args", nargs = -1, help="Options to be passed directly to 'nim c'") run: + if hostOS == "windows" and "macosx" in opts.target and opts.sdk == "": + quit("Cross-compiling to macosx targets without MacOSX SDK is not supported on Windows.") if not opts.no_auto_install: - THIS_HOST.install_toolchain(opts.target, opts.directory) - quit(THIS_HOST.exec_nim_c(opts.target, opts.directory, opts.args)) + THIS_HOST.install_toolchain(opts.target, opts.directory, opts.sdk) + quit(THIS_HOST.exec_nim_c(opts.target, opts.directory, opts.sdk, opts.args)) p.run() diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 89e4154..c8a6711 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -43,6 +43,8 @@ var failed_tests: seq[string] if host_systems.hasKey(THIS_HOST): for target in host_systems[THIS_HOST].keys: + if "windows" in THIS_HOST and "macosx" in target: + continue for sample in samples: let testname = sample.extractFilename & "_from_" & THIS_HOST & "_to_" & target if testname in toskip: From 3749103d94b97465f695f893bb85c37ee108b802 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Fri, 31 Mar 2023 15:59:01 +0200 Subject: [PATCH 21/25] enable threading tests --- tests/test_everything.nim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index c8a6711..b975baf 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -16,12 +16,12 @@ var toskip = [ "sqlite_from_linux-arm64_to_linux-amd64-gnu.2.27", ## undefined symbol: fcntl64 https://github.com/ziglang/zig/pull/15101 "regex_from_windows-amd64_to_linux-amd64", "regex_from_macosx-amd64_to_linux-amd64", - "threading_from_macosx-arm64_to_linux-amd64", - "threading_from_macosx-amd64_to_windows-arm64", - "threading_from_macosx-amd64_to_linux-amd64", - "threading_from_linux-arm64_to_linux-amd64", - "threading_from_windows-amd64_to_linux-amd64", - "threading_from_windows-amd64_to_windows-arm64", + # "threading_from_macosx-arm64_to_linux-amd64", + # "threading_from_macosx-amd64_to_windows-arm64", + # "threading_from_macosx-amd64_to_linux-amd64", + # "threading_from_linux-arm64_to_linux-amd64", + # "threading_from_windows-amd64_to_linux-amd64", + # "threading_from_windows-amd64_to_windows-arm64", ] var samples: seq[string] From b3c6af3654640d3e9f78badd4756bb682f5f79bc Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Sun, 2 Apr 2023 19:27:20 +0200 Subject: [PATCH 22/25] add -Wno-error=int-conversion to threading_from_windows-amd64_to_linux-amd64 --- tests/test_everything.nim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index b975baf..a119c58 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -69,6 +69,8 @@ if host_systems.hasKey(THIS_HOST): for arg in THIS_HOST.compile_args(target, toolchains_root): args.add(arg) args.add(src.extractFilename) + if testname == "threading_from_windows-amd64_to_linux-amd64": + args.add("-Wno-error=int-conversion") echo "cd " & subdir echo "nim " & args.mapIt("'" & it & "'").join(" ") var p = startProcess(command = findExe"nim", workingDir = subdir, From 37ce2fcac24d2ddbbaed34b13611e041c754db88 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Sun, 2 Apr 2023 19:40:20 +0200 Subject: [PATCH 23/25] passC --- tests/test_everything.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_everything.nim b/tests/test_everything.nim index a119c58..bcade81 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -68,9 +68,9 @@ if host_systems.hasKey(THIS_HOST): var args = @["c", "-o:" & dst] for arg in THIS_HOST.compile_args(target, toolchains_root): args.add(arg) - args.add(src.extractFilename) if testname == "threading_from_windows-amd64_to_linux-amd64": - args.add("-Wno-error=int-conversion") + args.add("--passC:-Wno-error=int-conversion -fno-sanitize=undefined") + args.add(src.extractFilename) echo "cd " & subdir echo "nim " & args.mapIt("'" & it & "'").join(" ") var p = startProcess(command = findExe"nim", workingDir = subdir, From 4332541c9607d5c262c785019ebc028d0ed8c2ae Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Sun, 2 Apr 2023 20:17:18 +0200 Subject: [PATCH 24/25] include threading_from_macosx-amd64_to_linux-amd64 in c override and remove tmate --- .github/workflows/main.yml | 3 --- tests/test_everything.nim | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ae0d614..03749b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,9 +37,6 @@ jobs: with: name: binaries-${{ matrix.os }} path: binaries-${{ matrix.os }}.tgz - - name: Setup tmate session - if: ${{ failure() }} - uses: mxschmitt/action-tmate@v3 run: needs: [compile] runs-on: ${{ matrix.os }} diff --git a/tests/test_everything.nim b/tests/test_everything.nim index bcade81..0dc1708 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -68,7 +68,7 @@ if host_systems.hasKey(THIS_HOST): var args = @["c", "-o:" & dst] for arg in THIS_HOST.compile_args(target, toolchains_root): args.add(arg) - if testname == "threading_from_windows-amd64_to_linux-amd64": + if testname in @["threading_from_windows-amd64_to_linux-amd64", "threading_from_macosx-amd64_to_linux-amd64"]: args.add("--passC:-Wno-error=int-conversion -fno-sanitize=undefined") args.add(src.extractFilename) echo "cd " & subdir From e9ffca06c7a1b63d66e85136f97bfed1b3c5e343 Mon Sep 17 00:00:00 2001 From: Ivan Vandot Date: Sun, 2 Apr 2023 20:41:32 +0200 Subject: [PATCH 25/25] remove riscv64 from README and commented skipped test --- README.md | 7 ------- tests/test_everything.nim | 6 ------ 2 files changed, 13 deletions(-) diff --git a/README.md b/README.md index 99ad7e1..0e60711 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,6 @@ From linux-amd64 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -50,7 +49,6 @@ From linux-i386 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -63,7 +61,6 @@ From macosx-amd64 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -76,7 +73,6 @@ From macosx-arm64 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -89,7 +85,6 @@ From windows-amd64 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -102,7 +97,6 @@ From windows-arm64 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 @@ -115,7 +109,6 @@ From windows-i386 --target linux-amd64-gnu.2.31 --target linux-i386 --target linux-arm64 - --target linux-riscv64 --target macosx-amd64 --target macosx-arm64 --target windows-amd64 diff --git a/tests/test_everything.nim b/tests/test_everything.nim index 0dc1708..56525f4 100644 --- a/tests/test_everything.nim +++ b/tests/test_everything.nim @@ -16,12 +16,6 @@ var toskip = [ "sqlite_from_linux-arm64_to_linux-amd64-gnu.2.27", ## undefined symbol: fcntl64 https://github.com/ziglang/zig/pull/15101 "regex_from_windows-amd64_to_linux-amd64", "regex_from_macosx-amd64_to_linux-amd64", - # "threading_from_macosx-arm64_to_linux-amd64", - # "threading_from_macosx-amd64_to_windows-arm64", - # "threading_from_macosx-amd64_to_linux-amd64", - # "threading_from_linux-arm64_to_linux-amd64", - # "threading_from_windows-amd64_to_linux-amd64", - # "threading_from_windows-amd64_to_windows-arm64", ] var samples: seq[string]