summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-lang/zig/Manifest2
-rw-r--r--dev-lang/zig/files/zig-0.9.1-fix-single-threaded.patch13
-rw-r--r--dev-lang/zig/zig-0.9.1.ebuild (renamed from dev-lang/zig/zig-0.9.0.ebuild)28
-rw-r--r--profiles/package.mask3
4 files changed, 38 insertions, 8 deletions
diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest
index b55846f..daf4475 100644
--- a/dev-lang/zig/Manifest
+++ b/dev-lang/zig/Manifest
@@ -1 +1 @@
-DIST zig-0.9.0.tar.gz 21994175 BLAKE2B aadef89d5fddc3e802965125625e62140ac37bdac40b29ab8b7652056589c037cbed5d4e46889f335b3c296fb4ae2a7cafd5d064a02d728a8325ad515cdc8c7a SHA512 fef36221e818364b45cf65de210b0a9d535c411a510371a3ab4dfd6f4621c0a16dba786169f115a006966875102acc742abee19a74d83e2bc999ea5b8304b879
+DIST zig-0.9.1.tar.xz 13940828 BLAKE2B 996b0e945f61b01dddbb7c8674a9e2d2d01b93eb48fdfd2c986496330990ffa64cba15f8bd8518b90ef6f514759ba6cc3fd31d6044c5b11b92bf92e3f7f15303 SHA512 0b8a5f9b7e34e4252536f59bc91429f1e76b2bf8e01f024095919f6ecf34db56b5c86c554fbb94bdcb5255394c87f2c87519c8f34c631f53816927ec0882ae2d
diff --git a/dev-lang/zig/files/zig-0.9.1-fix-single-threaded.patch b/dev-lang/zig/files/zig-0.9.1-fix-single-threaded.patch
new file mode 100644
index 0000000..70f807f
--- /dev/null
+++ b/dev-lang/zig/files/zig-0.9.1-fix-single-threaded.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 638f39f7e..791477c41 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -787,7 +787,7 @@ else()
+ set(ZIG1_RELEASE_ARG -OReleaseFast --strip)
+ endif()
+ if(ZIG_SINGLE_THREADED)
+- set(ZIG1_SINGLE_THREADED_ARG "-fsingle-threaded")
++ set(ZIG1_SINGLE_THREADED_ARG "--single-threaded")
+ else()
+ set(ZIG1_SINGLE_THREADED_ARG "")
+ endif()
diff --git a/dev-lang/zig/zig-0.9.0.ebuild b/dev-lang/zig/zig-0.9.1.ebuild
index 76f45f3..2227501 100644
--- a/dev-lang/zig/zig-0.9.0.ebuild
+++ b/dev-lang/zig/zig-0.9.1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 2019-2021 Gentoo Authors
+# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
LLVM_MAX_SLOT=13
-inherit cmake llvm
+inherit cmake llvm check-reqs
DESCRIPTION="A robust, optimal, and maintainable programming language"
HOMEPAGE="https://ziglang.org/"
@@ -12,14 +12,17 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/ziglang/zig.git"
inherit git-r3
else
- SRC_URI="https://github.com/ziglang/zig/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ SRC_URI="https://ziglang.org/download/${PV}/${P}.tar.xz"
KEYWORDS="~amd64 ~arm ~arm64"
fi
LICENSE="MIT"
SLOT="0"
+IUSE="test +threads"
RESTRICT="!test? ( test )"
+PATCHES=("${FILESDIR}/${P}-fix-single-threaded.patch")
+
BUILD_DIR="${S}/build"
# According to zig's author, zig builds that do not support all targets are not
@@ -31,7 +34,7 @@ ALL_LLVM_TARGETS=(
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
LLVM_TARGET_USEDEPS="${ALL_LLVM_TARGETS[@]/%/(-)?}"
-IUSE="test ${ALL_LLVM_TARGETS[*]}"
+IUSE="test threads ${ALL_LLVM_TARGETS[*]}"
RDEPEND="
sys-devel/clang:${LLVM_MAX_SLOT}
@@ -45,6 +48,14 @@ llvm_check_deps() {
has_version "sys-devel/clang:${LLVM_SLOT}"
}
+# see https://github.com/ziglang/zig/wiki/Troubleshooting-Build-Issues#high-memory-requirements
+CHECKREQS_MEMORY="10G"
+
+pkg_setup() {
+ llvm_pkg_setup
+ check-reqs_pkg_setup
+}
+
src_configure() {
local mysedargs=() llvm_target arch
for target in "${ALL_LLVM_TARGETS[@]}"; do
@@ -76,12 +87,14 @@ src_configure() {
)
done
mysedargs+=(
- -e "/^fn initializeLLVMTarget(/,/^}/ {
+ -e "
+ /^fn initializeLLVMTarget(/,/^}/ {
/\.$a => {/,/},$/ {
s/=>.*/=> unreachable,/
/=>/!d
}
- }"
+ }
+ "
)
fi
done
@@ -90,6 +103,7 @@ src_configure() {
local mycmakeargs=(
-DZIG_USE_CCACHE=OFF
-DZIG_PREFER_CLANG_CPP_DYLIB=ON
+ -DZIG_SINGLE_THREADED="$(usex threads OFF ON)"
)
cmake_src_configure
diff --git a/profiles/package.mask b/profiles/package.mask
index 704635a..5831605 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -3,3 +3,6 @@ app-text/pdfsizeopt
# package works fine but program is buggy
sys-fs/ncdu
+
+# untested
+dev-lang/zig