Update to 0.12.0

This commit is contained in:
Jan200101 2024-06-11 10:57:05 +02:00
parent d8a8ae5c93
commit 7048d61867
No known key found for this signature in database
GPG Key ID: 5B71B1D78B882E05
7 changed files with 143 additions and 58 deletions

4
.gitignore vendored
View File

@ -1,2 +1,2 @@
/zig-0.11.0.tar.xz
/zig-0.11.0.tar.xz.minisig
/zig-*.tar.xz
/zig-*.tar.xz.minisig

View File

@ -1,29 +1,31 @@
From 83a3cf50d81b65809d4a4619502295b4b5ff8636 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.org>
Date: Fri, 20 Oct 2023 04:49:46 +0000
Subject: [PATCH 1/2] Fedora: bootstrap and extra build flags support
Subject: [PATCH] Fedora: bootstrap and extra build flags support
- Allow passing ZIG_EXTRA_BUILD_FLAGS for stage3 build.
- Allow redefining ZIG_EXECUTABLE and short-circuiting to stage3 build
when using a prebuilt compiler from bootstrap package.
- Bump required CMake version to 3.14 to enable generator expression
expansion in `install(CODE ...)`.
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
CMakeLists.txt | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f1289e20b..031654dee 100644
index e677ee0947..1fb4821b60 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.5)
+cmake_minimum_required(VERSION 3.14)
include(CheckSymbolExists)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
@@ -859,6 +859,10 @@ else()
set(ZIG_PIE_ARG "")
@@ -910,6 +910,10 @@ else()
set(ZIG_DYNAMIC_LINKER_ARG "-Ddynamic-linker=${ZIG_TARGET_DYNAMIC_LINKER}")
endif()
+# Fedora customizations
@ -31,17 +33,17 @@ index f1289e20b..031654dee 100644
+set(ZIG_EXECUTABLE "$<TARGET_FILE:zig2>" CACHE STRING "Compiler command to use for stage3 build")
+
# -Dno-langref is currently hardcoded because building the langref takes too damn long
# -Dno-autodocs is currently hardcoded because the C backend generates a miscompilation
# that prevents it from working.
@@ -877,6 +881,7 @@ set(ZIG_BUILD_ARGS
"-Dtarget=${ZIG_TARGET_TRIPLE}"
# To obtain these two forms of documentation, run zig build against stage3 rather than stage2.
set(ZIG_BUILD_ARGS
@@ -926,6 +930,7 @@ set(ZIG_BUILD_ARGS
"-Dcpu=${ZIG_TARGET_MCPU}"
${ZIG_DYNAMIC_LINKER_ARG}
"-Dversion-string=${RESOLVED_ZIG_VERSION}"
+ ${ZIG_EXTRA_BUILD_ARGS}
)
add_custom_target(stage3 ALL
@@ -885,17 +890,12 @@ add_custom_target(stage3 ALL
@@ -934,17 +939,12 @@ add_custom_target(stage3 ALL
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/stage3/bin/zig"
@ -61,6 +63,3 @@ index f1289e20b..031654dee 100644
install(CODE "set(ZIG_EXECUTABLE \"${ZIG_EXECUTABLE}\")")
install(CODE "set(ZIG_BUILD_ARGS \"${ZIG_BUILD_ARGS}\")")
install(CODE "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
--
2.41.0

View File

@ -1,25 +1,23 @@
From 4e1416ebff98155b07031790ec1afcb0035fb2ab Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.org>
Date: Fri, 20 Oct 2023 04:49:54 +0000
Subject: [PATCH 2/2] Enable build-id by default
Subject: [PATCH] Enable build-id by default
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
src/Compilation.zig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Compilation.zig b/src/Compilation.zig
index a08c3e09f..95ade766a 100644
index 7af3d7bfd1..78bc2b65c8 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -807,7 +807,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
const unwind_tables = options.want_unwind_tables orelse
(link_libunwind or target_util.needUnwindTables(options.target));
const link_eh_frame_hdr = options.link_eh_frame_hdr or unwind_tables;
@@ -1230,7 +1230,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil
const any_sanitize_thread = options.config.any_sanitize_thread or options.root_mod.sanitize_thread;
const link_eh_frame_hdr = options.link_eh_frame_hdr or any_unwind_tables;
- const build_id = options.build_id orelse .none;
+ const build_id = options.build_id orelse .sha1;
// Make a decision on whether to use LLD or our own linker.
const use_lld = options.use_lld orelse blk: {
--
2.41.0
const link_libc = options.config.link_libc;

View File

@ -0,0 +1,61 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
Date: Sun, 12 May 2024 18:20:19 +0200
Subject: [PATCH] fetch: prevent global cache from being copied
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
src/Package/Fetch.zig | 33 +++++++++++++++++++++------------
1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/src/Package/Fetch.zig b/src/Package/Fetch.zig
index 506075e921..ca11f4c579 100644
--- a/src/Package/Fetch.zig
+++ b/src/Package/Fetch.zig
@@ -1248,6 +1248,7 @@ fn unpackGitPack(f: *Fetch, out_dir: fs.Dir, resource: *Resource) anyerror!Unpac
fn recursiveDirectoryCopy(f: *Fetch, dir: fs.Dir, tmp_dir: fs.Dir) anyerror!void {
const gpa = f.arena.child_allocator;
+ const cache_root = f.job_queue.global_cache;
// Recursive directory copy.
var it = try dir.walk(gpa);
defer it.deinit();
@@ -1255,18 +1256,26 @@ fn recursiveDirectoryCopy(f: *Fetch, dir: fs.Dir, tmp_dir: fs.Dir) anyerror!void
switch (entry.kind) {
.directory => {}, // omit empty directories
.file => {
- dir.copyFile(
- entry.path,
- tmp_dir,
- entry.path,
- .{},
- ) catch |err| switch (err) {
- error.FileNotFound => {
- if (fs.path.dirname(entry.path)) |dirname| try tmp_dir.makePath(dirname);
- try dir.copyFile(entry.path, tmp_dir, entry.path, .{});
- },
- else => |e| return e,
- };
+ const full_path = try dir.realpathAlloc(gpa, entry.path);
+ defer gpa.free(full_path);
+
+ const cache_path = try cache_root.handle.realpathAlloc(gpa, ".");
+ defer gpa.free(cache_path);
+
+ if (!std.mem.startsWith(u8, full_path, cache_path)) {
+ dir.copyFile(
+ entry.path,
+ tmp_dir,
+ entry.path,
+ .{},
+ ) catch |err| switch (err) {
+ error.FileNotFound => {
+ if (fs.path.dirname(entry.path)) |dirname| try tmp_dir.makePath(dirname);
+ try dir.copyFile(entry.path, tmp_dir, entry.path, .{});
+ },
+ else => |e| return e,
+ };
+ }
},
.sym_link => {
var buf: [fs.MAX_PATH_BYTES]u8 = undefined;

View File

@ -1,6 +1,8 @@
%zig_arches x86_64 aarch64 riscv64 %{mips64}
%zig /usr/bin/zig
%zig %{_bindir}/zig
%_zig_cache_dir zig-cache
# expected features for each arch when targeting baseline
# found in https://github.com/ziglang/zig/tree/master/lib/std/target
@ -18,24 +20,38 @@
# mips32
%_zig_cpu baseline
%_zig_target native
%_zig_release_mode safe
# seperated build options
%_zig_general_options --verbose
%_zig_project_options -Dtarget=%{_zig_target} -Dcpu=%{_zig_cpu} -Doptimize=ReleaseSafe
%_zig_advanced_options --cache-dir zig-cache
%_zig_general_options --verbose --release=%{_zig_release_mode}
%_zig_project_options -Dtarget=%{_zig_target} -Dcpu=%{_zig_cpu}
%_zig_system_integration --system %{_zig_cache_dir}
%_zig_advanced_options --cache-dir %{_zig_cache_dir} --global-cache-dir %{_zig_cache_dir}
%_zig_build_options %{?_zig_general_options} %{?_zig_project_options} %{?_zig_advanced_options}
%_zig_build_options %{?_zig_general_options} %{?_zig_project_options} %{?%_zig_system_integration} %{?_zig_advanced_options}
%_zig_install_options --prefix "%{_prefix}" --prefix-lib-dir "%{_libdir}" --prefix-exe-dir "%{_bindir}" --prefix-include-dir "%{_includedir}"
%_zig_fetch_options --global-cache-dir %{_zig_cache_dir}
%zig_build %zig \\\
build \\\
%{?_zig_build_options}
%zig_build %{shrink: \
%zig \
build \
%{?_zig_build_options} \
}
%zig_install \
DESTDIR="%{buildroot}" %zig_build \\\
install \\\
%{?_zig_install_options}
%zig_install %{shrink: \
DESTDIR="%{buildroot}" \
%zig_build \
install \
%{?_zig_install_options} \
}
%zig_test \
%zig_build \\\
%zig_fetch %{shrink: \
%zig \
fetch \
%{?_zig_fetch_options} \
}
%zig_test %{shrink: \
%zig_build \
test
}

View File

@ -1,2 +1,2 @@
SHA512 (zig-0.11.0.tar.xz) = c19a8ae6d440a16dd5e77941fc77c036d1f284f1784376625e63b65f30b4acad62f9f4217bc818c401f88c2c33f8722f26fc467c3e23c29a89178c4b1882d1c4
SHA512 (zig-0.11.0.tar.xz.minisig) = 565dd1eacb7dd697e6b1ff54517adc1e4775d2523afaeb4f9a3dd404df871b187862211ecbbcf90b42e3a03853677fc1603e7fc8fc5ba7126a054679faa601ca
SHA512 (zig-0.12.0.tar.xz) = 0c3d9396fea4905245c7e32ce6bd9b4ff140f061cd8a957929e4c84cf105f5bbcbf2e7c030013ac649edb569e909f65d928b3e8a86f35c9076fb62e996feea14
SHA512 (zig-0.12.0.tar.xz.minisig) = 6e14c1e1926beeb249cb88fb2247ff401f679b64785c3ec8a924e33c894174deb77b48286469a863761bce0ca57524f904995eacf544919dda387c140e6e829e

View File

@ -1,25 +1,23 @@
# https://ziglang.org/download/%{version}/release-notes.html#Support-Table
# 32 bit builds currently run out of memory https://github.com/ziglang/zig/issues/6485
# https://ziglang.org/download/VERSION/release-notes.html#Support-Table
%global zig_arches x86_64 aarch64 riscv64 %{mips64}
# Signing key from https://ziglang.org/download/
%global public_key RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U
# note here at which Fedora or EL release we need to use compat LLVM packages
%if 0%{?fedora} >= 39 || 0%{?rhel} >= 9
%define llvm_compat 16
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 9
%define llvm_compat 17
%endif
%global llvm_version 16.0.0
%global llvm_version 17.0.0
%bcond bootstrap 0
%bcond docs %{without bootstrap}
%bcond macro %{without bootstrap}
%bcond test 1
%bcond docs %{without bootstrap}
%bcond macro %{without bootstrap}
%bcond test 1
Name: zig
Version: 0.11.0
Release: 2%{?dist}
Version: 0.12.0
Release: 1%{?dist}
Summary: Programming language for maintaining robust, optimal, and reusable software
License: MIT and NCSA and LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL and ZPLv2.1
@ -32,6 +30,9 @@ Patch: 0001-Fedora-bootstrap-and-extra-build-flags-support.patch
# There's no global option for build-id so enable it by default
# instead of patching every project's build.zig
Patch: 0002-Enable-build-id-by-default.patch
# Zig fetch will recurse onto the cache directory, prevent that from happening.
# https://github.com/ziglang/zig/pull/19951
Patch: 0003-fetch-prevent-global-cache-from-being-copied.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@ -62,7 +63,7 @@ Requires: %{name}-libs = %{version}
# Apache-2.0 WITH LLVM-exception OR NCSA OR MIT
Provides: bundled(compiler-rt) = %{llvm_version}
# LGPLv2+, LGPLv2+ with exceptions, GPLv2+, GPLv2+ with exceptions, BSD, Inner-Net, ISC, Public Domain and GFDL
Provides: bundled(glibc) = 2.34
Provides: bundled(glibc) = 2.38
# Apache-2.0 WITH LLVM-exception OR MIT OR NCSA
Provides: bundled(libcxx) = %{llvm_version}
# Apache-2.0 WITH LLVM-exception OR MIT OR NCSA
@ -70,7 +71,7 @@ Provides: bundled(libcxxabi) = %{llvm_version}
# NCSA
Provides: bundled(libunwind) = %{llvm_version}
# BSD, LGPG, ZPL
Provides: bundled(mingw) = 10.0.0
Provides: bundled(mingw) = 0bac2d3cdb122dadcdee90009f7e24a69d56939f
# MIT
Provides: bundled(musl) = 1.2.4
# Apache-2.0 WITH LLVM-exception AND Apache-2.0 AND MIT AND BSD-2-Clause
@ -126,10 +127,14 @@ rm -f stage1/zig1.wasm
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG -Wno-unused" \
\
-DZIG_EXTRA_BUILD_ARGS:STRING="--verbose;-Dbuild-id=sha1" \
-DZIG_SHARED_LLVM:BOOL=true \
-DZIG_PIE:BOOL=true \
\
-DZIG_TARGET_MCPU:STRING=baseline \
-DZIG_TARGET_TRIPLE:STRING=native \
\
-DZIG_VERSION:STRING="%{version}" \
%{!?with_bootstrap:-DZIG_EXECUTABLE:STRING="/usr/bin/zig"}
# Build only stage3 and dependencies. Skips stage1/2 if using /usr/bin/zig
@ -140,7 +145,10 @@ rm -f stage1/zig1.wasm
help2man --no-discard-stderr --no-info "%{__cmake_builddir}/stage3/bin/zig" --version-option=version --output=%{name}.1
%if %{with docs}
"%{__cmake_builddir}/stage3/bin/zig" build docs --verbose -Dversion-string="%{version}"
"%{__cmake_builddir}/stage3/bin/zig" build docs \
--verbose \
--global-cache-dir zig-cache \
-Dversion-string="%{version}"
%endif
%install
@ -179,6 +187,9 @@ install -D -pv -m 0644 %{SOURCE2} %{buildroot}%{_rpmmacrodir}/macros.%{name}
%endif
%changelog
* Sat May 25 2024 Jan200101 <sentrycraft123@gmail.com> - 0.12.0-1
- Update to 0.12.0
* Wed Feb 21 2024 Jan Drögehoff <sentrycraft123@gmail.com> - 0.11.0-2
- Rebuilt for bootstrapping