summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/zig.scm85
1 files changed, 55 insertions, 30 deletions
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 18dfbf5237d..00715fe7736 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -61,13 +61,13 @@
61 ;; IETF RFC documents have nonfree license. 61 ;; IETF RFC documents have nonfree license.
62 (find-files "." "^rfc[0-9]+\\.txt")))))) 62 (find-files "." "^rfc[0-9]+\\.txt"))))))
63 63
64(define zig-0.9-glibc-abi-tool 64(define zig-0.9-libc-abi-tools
65 (origin 65 (origin
66 (method git-fetch) 66 (method git-fetch)
67 (uri (git-reference 67 (uri (git-reference
68 (url "https://codeberg.org/ziglang/libc-abi-tools") 68 (url "https://codeberg.org/ziglang/libc-abi-tools")
69 (commit "6f992064f821c612f68806422b2780c9260cbc4c"))) 69 (commit "6f992064f821c612f68806422b2780c9260cbc4c")))
70 (file-name "glibc-abi-tool") 70 (file-name "libc-abi-tools")
71 (sha256 71 (sha256
72 (base32 "0lsi3f2lkixcdidljby73by2sypywb813yqdapy9md4bi2h8hhgp")))) 72 (base32 "0lsi3f2lkixcdidljby73by2sypywb813yqdapy9md4bi2h8hhgp"))))
73 73
@@ -149,15 +149,18 @@
149 ;; Non-native tests try to link and execute non-native 149 ;; Non-native tests try to link and execute non-native
150 ;; binaries. 150 ;; binaries.
151 "-Dskip-non-native")))) 151 "-Dskip-non-native"))))
152 (add-before 'check 'install-glibc-abilists 152 (add-before 'check 'copy-libc-abi-tools
153 (lambda* (#:key inputs native-inputs #:allow-other-keys) 153 (lambda* (#:key inputs native-inputs #:allow-other-keys)
154 (mkdir-p "/tmp/glibc-abi-tool") 154 (mkdir-p "/tmp/libc-abi-tools")
155 (with-directory-excursion "/tmp/glibc-abi-tool" 155 (with-directory-excursion "/tmp/libc-abi-tools"
156 (copy-recursively 156 (copy-recursively
157 (dirname (search-input-file 157 (dirname (search-input-file
158 (or native-inputs inputs) "consolidate.zig")) 158 (or native-inputs inputs) "consolidate.zig"))
159 ".") 159 ".")
160 (for-each make-file-writable (find-files ".")) 160 (for-each make-file-writable (find-files ".")))))
161 (add-after 'copy-libc-abi-tools 'install-abilists
162 (lambda _
163 (with-directory-excursion "/tmp/libc-abi-tools"
161 (invoke (string-append #$output "/bin/zig") 164 (invoke (string-append #$output "/bin/zig")
162 "run" "consolidate.zig") 165 "run" "consolidate.zig")
163 (install-file 166 (install-file
@@ -169,7 +172,7 @@
169 ;; Zig compiles fine with GCC, but also needs native LLVM libraries. 172 ;; Zig compiles fine with GCC, but also needs native LLVM libraries.
170 (native-inputs 173 (native-inputs
171 (list llvm-13 174 (list llvm-13
172 zig-0.9-glibc-abi-tool)) 175 zig-0.9-libc-abi-tools))
173 (native-search-paths 176 (native-search-paths
174 (list $C_INCLUDE_PATH 177 (list $C_INCLUDE_PATH
175 $CPLUS_INCLUDE_PATH 178 $CPLUS_INCLUDE_PATH
@@ -197,13 +200,13 @@ toolchain. Among other features it provides
197 ,@(clang-compiler-cpu-architectures "13"))) 200 ,@(clang-compiler-cpu-architectures "13")))
198 (license license:expat))) 201 (license license:expat)))
199 202
200(define zig-0.10-glibc-abi-tool 203(define zig-0.10-libc-abi-tools
201 (origin 204 (origin
202 (method git-fetch) 205 (method git-fetch)
203 (uri (git-reference 206 (uri (git-reference
204 (url "https://codeberg.org/ziglang/libc-abi-tools") 207 (url "https://codeberg.org/ziglang/libc-abi-tools")
205 (commit "b07bf67ab3c15881f13b9c3c03bcec04535760bb"))) 208 (commit "b07bf67ab3c15881f13b9c3c03bcec04535760bb")))
206 (file-name "glibc-abi-tool") 209 (file-name "libc-abi-tools")
207 (sha256 210 (sha256
208 (base32 "0csn3c9pj8wchwy5sk5lfnhjn8a3c8cp45fv7mkpi5bqxzdzf1na")) 211 (base32 "0csn3c9pj8wchwy5sk5lfnhjn8a3c8cp45fv7mkpi5bqxzdzf1na"))
209 (modules '((guix build utils))) 212 (modules '((guix build utils)))
@@ -267,7 +270,7 @@ toolchain. Among other features it provides
267 (replace "lld" lld-15))) 270 (replace "lld" lld-15)))
268 (native-inputs 271 (native-inputs
269 (modify-inputs native-inputs 272 (modify-inputs native-inputs
270 (replace "glibc-abi-tool" zig-0.10-glibc-abi-tool) 273 (replace "libc-abi-tools" zig-0.10-libc-abi-tools)
271 (replace "llvm" llvm-15))) 274 (replace "llvm" llvm-15)))
272 (properties `((max-silent-time . 9600) 275 (properties `((max-silent-time . 9600)
273 ,@(clang-compiler-cpu-architectures "15"))))) 276 ,@(clang-compiler-cpu-architectures "15")))))
@@ -372,11 +375,12 @@ toolchain. Among other features it provides
372 (lambda _ 375 (lambda _
373 (install-file "stage1/zig1.wasm.zst" 376 (install-file "stage1/zig1.wasm.zst"
374 (string-append #$output:zig1 "/bin")))) 377 (string-append #$output:zig1 "/bin"))))
375 (delete 'install-glibc-abilists))))) 378 (delete 'copy-libc-abi-tools)
379 (delete 'install-abilists)))))
376 (native-inputs 380 (native-inputs
377 (modify-inputs native-inputs 381 (modify-inputs native-inputs
378 (prepend binaryen) 382 (prepend binaryen)
379 (delete "glibc-abi-tool"))) 383 (delete "libc-abi-tools")))
380 (outputs '("out" "zig1"))))) 384 (outputs '("out" "zig1")))))
381 385
382;; Supply zig1.wasm.zst, build zig2 + zig1.wasm, install zig2 + zig1.wasm.zst. 386;; Supply zig1.wasm.zst, build zig2 + zig1.wasm, install zig2 + zig1.wasm.zst.
@@ -1107,13 +1111,13 @@ toolchain. Among other features it provides
1107 (modify-inputs native-inputs 1111 (modify-inputs native-inputs
1108 (replace "zig" `(,base "out"))))))) 1112 (replace "zig" `(,base "out")))))))
1109 1113
1110(define zig-0.11-glibc-abi-tool 1114(define zig-0.11-libc-abi-tools
1111 (origin 1115 (origin
1112 (method git-fetch) 1116 (method git-fetch)
1113 (uri (git-reference 1117 (uri (git-reference
1114 (url "https://codeberg.org/ziglang/libc-abi-tools") 1118 (url "https://codeberg.org/ziglang/libc-abi-tools")
1115 (commit "13576b1ea957882be7ff2c99f4cdc27454930219"))) 1119 (commit "13576b1ea957882be7ff2c99f4cdc27454930219")))
1116 (file-name "glibc-abi-tool") 1120 (file-name "libc-abi-tools")
1117 (sha256 1121 (sha256
1118 (base32 "09m0ipixxw0dnal0zsgk6kvcz29y9s256b9y00s4hkhj95n630il")) 1122 (base32 "09m0ipixxw0dnal0zsgk6kvcz29y9s256b9y00s4hkhj95n630il"))
1119 (modules '((guix build utils))) 1123 (modules '((guix build utils)))
@@ -1183,7 +1187,7 @@ toolchain. Among other features it provides
1183 (native-inputs 1187 (native-inputs
1184 (modify-inputs native-inputs 1188 (modify-inputs native-inputs
1185 (prepend binaryen `(,zig-0.10.0-3985 "zig1")) 1189 (prepend binaryen `(,zig-0.10.0-3985 "zig1"))
1186 (replace "glibc-abi-tool" zig-0.11-glibc-abi-tool) 1190 (replace "libc-abi-tools" zig-0.11-libc-abi-tools)
1187 (replace "llvm" llvm-16))) 1191 (replace "llvm" llvm-16)))
1188 (outputs '("out" "zig1")) 1192 (outputs '("out" "zig1"))
1189 (properties `((max-silent-time . 9600) 1193 (properties `((max-silent-time . 9600)
@@ -1476,13 +1480,13 @@ toolchain. Among other features it provides
1476 (modify-inputs native-inputs 1480 (modify-inputs native-inputs
1477 (replace "zig" `(,base "out"))))))) 1481 (replace "zig" `(,base "out")))))))
1478 1482
1479(define zig-0.12-glibc-abi-tool 1483(define zig-0.12-libc-abi-tools
1480 (origin 1484 (origin
1481 (method git-fetch) 1485 (method git-fetch)
1482 (uri (git-reference 1486 (uri (git-reference
1483 (url "https://codeberg.org/ziglang/libc-abi-tools") 1487 (url "https://codeberg.org/ziglang/libc-abi-tools")
1484 (commit "fc5d0a7046b76795e4219f8f168e118ec29fbc53"))) 1488 (commit "fc5d0a7046b76795e4219f8f168e118ec29fbc53")))
1485 (file-name "glibc-abi-tool") 1489 (file-name "libc-abi-tools")
1486 (sha256 1490 (sha256
1487 (base32 "1q9plbqkkk3jzrvsgcjmj5jjdncz4ym9p0snglz4kkjwwm65gqs1")))) 1491 (base32 "1q9plbqkkk3jzrvsgcjmj5jjdncz4ym9p0snglz4kkjwwm65gqs1"))))
1488 1492
@@ -1519,7 +1523,7 @@ toolchain. Among other features it provides
1519 (replace "lld" lld-17))) 1523 (replace "lld" lld-17)))
1520 (native-inputs 1524 (native-inputs
1521 (modify-inputs native-inputs 1525 (modify-inputs native-inputs
1522 (replace "glibc-abi-tool" zig-0.12-glibc-abi-tool) 1526 (replace "libc-abi-tools" zig-0.12-libc-abi-tools)
1523 (replace "llvm" llvm-17) 1527 (replace "llvm" llvm-17)
1524 (replace "zig" `(,zig-0.11.0-3604 "zig1")))) 1528 (replace "zig" `(,zig-0.11.0-3604 "zig1"))))
1525 (properties `((max-silent-time . 9600) 1529 (properties `((max-silent-time . 9600)
@@ -1558,13 +1562,13 @@ toolchain. Among other features it provides
1558 (modify-inputs native-inputs 1562 (modify-inputs native-inputs
1559 (replace "zig" `(,base "out"))))))) 1563 (replace "zig" `(,base "out")))))))
1560 1564
1561(define zig-0.13-glibc-abi-tool 1565(define zig-0.13-libc-abi-tools
1562 (origin 1566 (origin
1563 (method git-fetch) 1567 (method git-fetch)
1564 (uri (git-reference 1568 (uri (git-reference
1565 (url "https://codeberg.org/ziglang/libc-abi-tools") 1569 (url "https://codeberg.org/ziglang/libc-abi-tools")
1566 (commit "fc5d0a7046b76795e4219f8f168e118ec29fbc53"))) 1570 (commit "fc5d0a7046b76795e4219f8f168e118ec29fbc53")))
1567 (file-name "glibc-abi-tool") 1571 (file-name "libc-abi-tools")
1568 (sha256 1572 (sha256
1569 (base32 "1q9plbqkkk3jzrvsgcjmj5jjdncz4ym9p0snglz4kkjwwm65gqs1")))) 1573 (base32 "1q9plbqkkk3jzrvsgcjmj5jjdncz4ym9p0snglz4kkjwwm65gqs1"))))
1570 1574
@@ -1590,7 +1594,7 @@ toolchain. Among other features it provides
1590 (replace "lld" lld-18))) 1594 (replace "lld" lld-18)))
1591 (native-inputs 1595 (native-inputs
1592 (modify-inputs native-inputs 1596 (modify-inputs native-inputs
1593 (replace "glibc-abi-tool" zig-0.13-glibc-abi-tool) 1597 (replace "libc-abi-tools" zig-0.13-libc-abi-tools)
1594 (replace "llvm" llvm-18) 1598 (replace "llvm" llvm-18)
1595 (replace "zig" `(,zig-0.12.0-109 "zig1")))) 1599 (replace "zig" `(,zig-0.12.0-109 "zig1"))))
1596 (properties `((max-silent-time . 9600) 1600 (properties `((max-silent-time . 9600)
@@ -1804,13 +1808,13 @@ toolchain. Among other features it provides
1804 (modify-inputs native-inputs 1808 (modify-inputs native-inputs
1805 (replace "zig" `(,base "zig1"))))))) 1809 (replace "zig" `(,base "zig1")))))))
1806 1810
1807(define zig-0.14-glibc-abi-tool 1811(define zig-0.14-libc-abi-tools
1808 (origin 1812 (origin
1809 (method git-fetch) 1813 (method git-fetch)
1810 (uri (git-reference 1814 (uri (git-reference
1811 (url "https://codeberg.org/ziglang/libc-abi-tools") 1815 (url "https://codeberg.org/ziglang/libc-abi-tools")
1812 (commit "ed9d3bb356413e73b836955e75f399dfb3ec255e"))) 1816 (commit "ed9d3bb356413e73b836955e75f399dfb3ec255e")))
1813 (file-name "glibc-abi-tool") 1817 (file-name "libc-abi-tools")
1814 (sha256 1818 (sha256
1815 (base32 "0ckhwlszm0vkiqsyp2rzp1zcfljh1ng24c7pdvpyfj51x4s612z1")))) 1819 (base32 "0ckhwlszm0vkiqsyp2rzp1zcfljh1ng24c7pdvpyfj51x4s612z1"))))
1816 1820
@@ -1841,7 +1845,7 @@ toolchain. Among other features it provides
1841 (replace "lld" lld-19))) 1845 (replace "lld" lld-19)))
1842 (native-inputs 1846 (native-inputs
1843 (modify-inputs native-inputs 1847 (modify-inputs native-inputs
1844 (replace "glibc-abi-tool" zig-0.14-glibc-abi-tool) 1848 (replace "libc-abi-tools" zig-0.14-libc-abi-tools)
1845 (replace "llvm" llvm-19) 1849 (replace "llvm" llvm-19)
1846 (replace "zig" `(,zig-0.13.0-3252 "zig1")))) 1850 (replace "zig" `(,zig-0.13.0-3252 "zig1"))))
1847 (properties `((max-silent-time . 9600) 1851 (properties `((max-silent-time . 9600)
@@ -1990,9 +1994,7 @@ toolchain. Among other features it provides
1990 (substitute-keyword-arguments arguments 1994 (substitute-keyword-arguments arguments
1991 ((#:phases phases '%standard-phases) 1995 ((#:phases phases '%standard-phases)
1992 #~(modify-phases #$phases 1996 #~(modify-phases #$phases
1993 (delete 'install-glibc-abilists) 1997 (replace 'copy-libc-abi-tools
1994 ;; TODO: Remove newly-added abilists files in zig-source.
1995 (add-before 'check 'install-abilists
1996 (lambda* (#:key inputs native-inputs #:allow-other-keys) 1998 (lambda* (#:key inputs native-inputs #:allow-other-keys)
1997 (mkdir-p "/tmp/libc-abi-tools") 1999 (mkdir-p "/tmp/libc-abi-tools")
1998 (with-directory-excursion "/tmp/libc-abi-tools" 2000 (with-directory-excursion "/tmp/libc-abi-tools"
@@ -2000,7 +2002,11 @@ toolchain. Among other features it provides
2000 (dirname (search-input-file 2002 (dirname (search-input-file
2001 (or native-inputs inputs) "list.zig")) 2003 (or native-inputs inputs) "list.zig"))
2002 ".") 2004 ".")
2003 (for-each make-file-writable (find-files ".")) 2005 (for-each make-file-writable (find-files ".")))))
2006 ;; Added support for more libc implementations.
2007 (replace 'install-abilists
2008 (lambda _
2009 (with-directory-excursion "/tmp/libc-abi-tools"
2004 (for-each 2010 (for-each
2005 (lambda (libc) 2011 (lambda (libc)
2006 (with-directory-excursion libc 2012 (with-directory-excursion libc
@@ -2018,8 +2024,7 @@ toolchain. Among other features it provides
2018 (replace "lld" lld-20))) 2024 (replace "lld" lld-20)))
2019 (native-inputs 2025 (native-inputs
2020 (modify-inputs native-inputs 2026 (modify-inputs native-inputs
2021 (delete "glibc-abi-tool") 2027 (replace "libc-abi-tools" zig-0.15-libc-abi-tools)
2022 (prepend zig-0.15-libc-abi-tools)
2023 (replace "llvm" llvm-20) 2028 (replace "llvm" llvm-20)
2024 (replace "zig" `(,zig-0.14.0-1197 "zig1")))) 2029 (replace "zig" `(,zig-0.14.0-1197 "zig1"))))
2025 (properties `((max-silent-time . 9600) 2030 (properties `((max-silent-time . 9600)
@@ -2163,6 +2168,26 @@ toolchain. Among other features it provides
2163 (search-patches 2168 (search-patches
2164 "zig-0.14-use-baseline-cpu-by-default.patch" 2169 "zig-0.14-use-baseline-cpu-by-default.patch"
2165 "zig-0.16-fix-runpath.patch")))) 2170 "zig-0.16-fix-runpath.patch"))))
2171 (arguments
2172 (substitute-keyword-arguments arguments
2173 ((#:phases phases '%standard-phases)
2174 #~(modify-phases #$phases
2175 ;; Added OpenBSD libc support.
2176 (replace 'install-abilists
2177 (lambda _
2178 (with-directory-excursion "/tmp/libc-abi-tools"
2179 (for-each
2180 (lambda (libc)
2181 (with-directory-excursion libc
2182 (invoke (string-append #$output "/bin/zig")
2183 "run" "consolidate.zig")
2184 (install-file
2185 "abilists"
2186 (string-append #$output "/lib/zig/libc/" libc))))
2187 '("freebsd"
2188 "glibc"
2189 "netbsd"
2190 "openbsd")))))))))
2166 (inputs 2191 (inputs
2167 (modify-inputs inputs 2192 (modify-inputs inputs
2168 (replace "clang" clang-21) 2193 (replace "clang" clang-21)