Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/zig/files/, dev-lang/zig/
Date: Sat, 30 Apr 2022 08:13:27
Message-Id: 1651306400.2647a868c09f98a97fad19e0070a4abab851376c.juippis@gentoo
1 commit: 2647a868c09f98a97fad19e0070a4abab851376c
2 Author: BratishkaErik <bratishkaerik <AT> getgoogleoff <DOT> me>
3 AuthorDate: Tue Apr 19 13:44:23 2022 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Sat Apr 30 08:13:20 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2647a868
7
8 dev-lang/zig: add stage2 support (on -9999)
9
10 Package-Manager: Portage-3.0.30, Repoman-3.0.3
11 Signed-off-by: BratishkaErik <bratishkaerik <AT> getgoogleoff.me>
12 Closes: https://github.com/gentoo/gentoo/pull/25085
13 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
14
15 dev-lang/zig/files/zig-9999-stage2-fix.patch | 12 ++++++++++++
16 dev-lang/zig/metadata.xml | 3 +++
17 dev-lang/zig/zig-9999.ebuild | 28 +++++++++++++++++++++++++++-
18 3 files changed, 42 insertions(+), 1 deletion(-)
19
20 diff --git a/dev-lang/zig/files/zig-9999-stage2-fix.patch b/dev-lang/zig/files/zig-9999-stage2-fix.patch
21 new file mode 100644
22 index 000000000000..520be382c562
23 --- /dev/null
24 +++ b/dev-lang/zig/files/zig-9999-stage2-fix.patch
25 @@ -0,0 +1,12 @@
26 +diff --git a/build.zig b/build.zig
27 +index 4d3cf49..4601935 100644
28 +--- a/build.zig
29 ++++ b/build.zig
30 +@@ -550,6 +550,7 @@ fn addCmakeCfgOptionsToExe(
31 + else => |e| return e,
32 + };
33 + exe.linkSystemLibrary("unwind");
34 ++ exe.linkSystemLibrary("c_nonshared");
35 + } else if (exe.target.isFreeBSD()) {
36 + try addCxxKnownPath(b, cfg, exe, "libc++.a", null, need_cpp_includes);
37 + exe.linkSystemLibrary("pthread");
38
39 diff --git a/dev-lang/zig/metadata.xml b/dev-lang/zig/metadata.xml
40 index 9a74b67c8634..6555f4c1c940 100644
41 --- a/dev-lang/zig/metadata.xml
42 +++ b/dev-lang/zig/metadata.xml
43 @@ -2,6 +2,9 @@
44 <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
45 <pkgmetadata>
46 <!-- maintainer-needed -->
47 + <use>
48 + <flag name="stage2">Install stage2 alongside stage1</flag>
49 + </use>
50 <upstream>
51 <remote-id type="github">ziglang/zig</remote-id>
52 </upstream>
53
54 diff --git a/dev-lang/zig/zig-9999.ebuild b/dev-lang/zig/zig-9999.ebuild
55 index a0e3522a22a0..cdac1427ee7e 100644
56 --- a/dev-lang/zig/zig-9999.ebuild
57 +++ b/dev-lang/zig/zig-9999.ebuild
58 @@ -18,7 +18,7 @@ fi
59
60 LICENSE="MIT"
61 SLOT="0"
62 -IUSE="test"
63 +IUSE="test +stage2"
64 RESTRICT="!test? ( test )"
65
66 BUILD_DIR="${S}/build"
67 @@ -47,6 +47,9 @@ llvm_check_deps() {
68 # see https://github.com/ziglang/zig/wiki/Troubleshooting-Build-Issues#high-memory-requirements
69 CHECKREQS_MEMORY="10G"
70
71 +# see https://github.com/ziglang/zig/issues/11137
72 +PATCHES=( "${FILESDIR}/${P}-stage2-fix.patch" )
73 +
74 pkg_setup() {
75 llvm_pkg_setup
76 check-reqs_pkg_setup
77 @@ -61,7 +64,30 @@ src_configure() {
78 cmake_src_configure
79 }
80
81 +src_compile() {
82 + cmake_src_compile
83 +
84 + if use stage2 ; then
85 + cd "${BUILD_DIR}" || die
86 + ./zig build -p stage2 -Dstatic-llvm=false -Denable-llvm=true || die
87 + fi
88 +}
89 +
90 src_test() {
91 cd "${BUILD_DIR}" || die
92 ./zig build test || die
93 }
94 +
95 +src_install() {
96 + cmake_src_install
97 +
98 + if use stage2 ; then
99 + cd "${BUILD_DIR}" || die
100 + mv ./stage2/bin/zig zig-stage2 || die
101 + dobin zig-stage2
102 + fi
103 +}
104 +
105 +pkg_postinst() {
106 + use stage2 && elog "You enabled stage2 USE flag, Zig stage1 was installed as /usr/bin/zig, Zig stage2 was installed as /usr/bin/zig-stage2"
107 +}