New comment by ericonr on void-packages repository https://github.com/void-linux/void-packages/pull/29288#issuecomment-886256921 Comment: ``` diff --git a/common/build-style/zig-build.sh b/common/build-style/zig-build.sh index 69dea4ca55..8c11822b70 100644 --- a/common/build-style/zig-build.sh +++ b/common/build-style/zig-build.sh @@ -1,7 +1,5 @@ do_build() { - local zig_abi - local zig_target - local zig_cpu + local zig_abi zig_target zig_cpu zig_arch case $XBPS_TARGET_LIBC in glibc) zig_abi="gnu";; @@ -11,16 +9,18 @@ do_build() { case $XBPS_TARGET_MACHINE in aarch64*|i686*|x86_64*) - zig_target="${XBPS_TARGET_MACHINE%-musl}-linux-${zig_abi}" zig_cpu="baseline";; + zig_arch="${XBPS_TARGET_MACHINE%-musl}" zig_cpu="baseline";; armv6l*) zig_target="arm-linux-${zig_abi}" zig_cpu="generic+v6";; armv7l*) zig_target="arm-linux-${zig_abi}" zig_cpu="generic+v7a";; ppc64le*) zig_target="powerpc64le-linux-${zig_abi}" zig_cpu="baseline";; ppc64*) zig_target="powerpc64-linux-${zig_abi}" zig_cpu="baseline";; ppcle*) zig_target="powerpcle-linux-${zig_abi}" zig_cpu="baseline";; ppc*) zig_target="powerpc-linux-${zig_abi}" zig_cpu="baseline";; - *) broken="TODO: support more target machines for the zig build style";; + *) msg_error "TODO: support more target machines for the zig build style\n";; esac + zig_target="${zig_arch}-linux-${zig_abi}" + # Inform zig of the required libc include paths. cat > xbps_zig_libc.txt <<-EOF include_dir=${XBPS_CROSS_BASE}/usr/include ``` Do for all archs what I did for x86; and broken is checked during template parsing time, not during `do_build`. This is "better" but still breaks builds; you need something in an environment file to set `broken` so XBPS doesn't error out. To avoid duplicating the logic, could create `XBPS_ZIG_ABI` ... and use those instead of local variables.