bump zig to 4301+uber1
This is a patched zig release with 13051[1]. While we are waiting for a resolution on #13050 (which @andrewrk is working on). [1]: https://patch-diff.githubusercontent.com/raw/ziglang/zig/pull/13051
This commit is contained in:
33
contrib/README-patched.md
Normal file
33
contrib/README-patched.md
Normal file
@@ -0,0 +1,33 @@
|
||||
Patched Zig release
|
||||
-------------------
|
||||
|
||||
This file explains how this zig version was created. As of first writing,
|
||||
0.10.0-dev.4301+uber1 + https://github.com/ziglang/zig-bootstrap/pull/131
|
||||
|
||||
Steps to re-create a patched zig:
|
||||
|
||||
```
|
||||
$ wget https://github.com/ziglang/zig/pull/13051.patch
|
||||
$ git clone https://github.com/ziglang/zig-bootstrap; cd zig-bootstrap
|
||||
|
||||
# if https://github.com/ziglang/zig-bootstrap/pull/131 is not merged: patch it.
|
||||
|
||||
$ git am --directory=zig ../13051.patch
|
||||
|
||||
$ ${EDITOR:-vi} build # replace the hash with "+uber1" and bump the last number in ZIG_VERSION
|
||||
|
||||
$ ./build-and-archive
|
||||
```
|
||||
|
||||
Recent zig-bootstrap versions require cmake >= 3.19, which is available from
|
||||
ubuntu 22.04 (jammy) or debian 12 (bookworm). Otherwise CMAKE will unable to
|
||||
"Find the C compiler". A workaround:
|
||||
|
||||
docker run --privileged -v `pwd`:/x -w /x -ti --rm buildpack-deps:bookworm \
|
||||
sh -c 'apt-get update && apt-get install -y cmake && exec ./build-and-archive'
|
||||
|
||||
(`--privileged` is necessary because of devpod nuances. You can skip it if you
|
||||
don't know what is a devpod.)
|
||||
|
||||
`build-and-archive`, this file and 13051.patch should be in the archive where
|
||||
you got your patched zig.
|
||||
56
contrib/build-and-archive
Executable file
56
contrib/build-and-archive
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
set -xeuo pipefail
|
||||
|
||||
zig_version=$(awk -F'"' '/^ZIG_VERSION=/{print $2}' build)
|
||||
|
||||
#./build -j$(nproc) x86_64-linux-musl baseline
|
||||
#./build -j$(nproc) x86_64-macos-none baseline
|
||||
#./build -j$(nproc) aarch64-linux-musl baseline
|
||||
#./build -j$(nproc) aarch64-macos-none apple_a14
|
||||
#./build -j$(nproc) x86_64-windows-gnu baseline
|
||||
|
||||
rm -fr zig-linux-x86_64-${zig_version}
|
||||
rm -fr zig-macos-x86_64-${zig_version}
|
||||
rm -fr zig-linux-aarch64-${zig_version}
|
||||
rm -fr zig-macos-aarch64-${zig_version}
|
||||
rm -fr zig-windows-x86_64-${zig_version}
|
||||
|
||||
cp -r out/zig-x86_64-linux-musl-baseline zig-linux-x86_64-${zig_version}
|
||||
cp -r out/zig-x86_64-macos-none-baseline zig-macos-x86_64-${zig_version}
|
||||
cp -r out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-${zig_version}
|
||||
cp -r out/zig-aarch64-macos-none-apple_a14 zig-macos-aarch64-${zig_version}
|
||||
cp -r out/zig-x86_64-windows-gnu-baseline zig-windows-x86_64-${zig_version}
|
||||
|
||||
for os_arch in linux-{x86_64,aarch64} macos-{x86_64,aarch64} windows-x86_64; do
|
||||
if [[ $os_arch == windows-x86_64 ]]; then
|
||||
zig=zig.exe
|
||||
else
|
||||
zig=zig
|
||||
fi
|
||||
mv zig-${os_arch}-${zig_version}/{bin/${zig},}
|
||||
rmdir zig-${os_arch}-${zig_version}/bin
|
||||
|
||||
# copy some clarifying files for future readers
|
||||
mkdir zig-${os_arch}-${zig_version}/patches
|
||||
cp README-patched.md zig-${os_arch}-${zig_version}/patches/README.md
|
||||
cp 13051.patch "$0" zig-${os_arch}-${zig_version}/patches/
|
||||
done
|
||||
|
||||
# x86_64 should have libs in lib/, rather than in lib/zig/.
|
||||
for os in linux macos windows; do
|
||||
mv zig-${os}-x86_64-${zig_version}/{lib,lib2}
|
||||
mv zig-${os}-x86_64-${zig_version}/{lib2/zig,lib}
|
||||
rmdir zig-${os}-x86_64-${zig_version}/lib2
|
||||
done
|
||||
|
||||
tar cJf zig-linux-x86_64-${zig_version}.tar.xz zig-linux-x86_64-${zig_version}/ &
|
||||
tar cJf zig-macos-x86_64-${zig_version}.tar.xz zig-macos-x86_64-${zig_version}/ &
|
||||
tar cJf zig-linux-aarch64-${zig_version}.tar.xz zig-linux-aarch64-${zig_version}/ &
|
||||
tar cJf zig-macos-aarch64-${zig_version}.tar.xz zig-macos-aarch64-${zig_version}/ &
|
||||
|
||||
# 7z is the quickest, so blocking on it first. Then wait for tars to complete.
|
||||
7z a zig-windows-x86_64-${zig_version}.zip zig-windows-x86_64-${zig_version}/
|
||||
wait %1 %2 %3 %4
|
||||
|
||||
sha256sum *.tar.xz *.zip
|
||||
ls -l *.tar.xz *.zip
|
||||
Reference in New Issue
Block a user