4
0
forked from pool/rusty_v8

cleanup #8

Merged
uncomfyhalomacro merged 26 commits from uncomfyhalomacro/rusty_v8:cleanup-main into main 2026-02-17 13:39:05 +01:00
4 changed files with 97 additions and 23 deletions

View File

@@ -1,20 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0"?>
<constraints>
<hardware>
<disk>
<size unit="G">30</size>
</disk>
<physicalmemory>
<size unit="G">8</size>
<size unit="G">18</size>
</physicalmemory>
</hardware>
<!-- Use a fast aarch64 host to avoid log idle timeout -->
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<cpu>
<flag>asimdrdm</flag>
<flag>asimdrdm</flag>
</cpu>
<jobs>5</jobs>
</hardware>
<memory>
<size unit="G">11</size>
</memory>
</hardware>
</overwrite>
<overwrite>
<conditions>
<arch>ppc64le</arch>
</conditions>
<hardware>
<disk>
<size unit="G">50</size>
</disk>
</hardware>
</overwrite>
</constraints>

View File

@@ -1,3 +1,31 @@
-------------------------------------------------------------------
Tue Feb 17 11:27:38 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Update _constraints. Set physical memory to 18GB
-------------------------------------------------------------------
Tue Feb 17 08:59:43 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Remove unknown GN arg system_zlib
-------------------------------------------------------------------
Tue Feb 17 07:15:10 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Cleanup specfile
- Copy _constraints from chromium
- Try with mold if tumbleweed
- Test with thin LTO and limit our debug info because it still OOMs
- update GN_ARGS
- Update _constraints. Set physical memory to 16GB
- It seems binutils is required if we want to use the host toolchain
- Remove rust-src as build requirement
-------------------------------------------------------------------
Sun Feb 15 15:59:49 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Remove gcc switch. Set clang minver to 19. Ensure we use the LLVM toolchain
and not GCC for the C compiler. Only pp64 requires gcc-c++
-------------------------------------------------------------------
Sun Feb 15 00:38:48 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>

View File

@@ -1,4 +0,0 @@
name: rusty_v8
version: 135.1.0
mtime: 1742748458
commit: 9cd584266ff1150c7b30d8b9e792643819ef9431

View File

@@ -16,8 +16,22 @@
#
%global _min_clang_version 19
%global __requires_exclude_from ^%{_libdir}/crates/rusty_v8/.*$
%if 0%{?suse_version} > 1600
%bcond_without mold
%else
%bcond_with mold
%endif
%if %{with mold}
%global build_rustflags "-C" "linker=clang++" "-C" "link-arg='-fuse-ld=/usr/bin/mold -Wl,-z,relro,-z,now,-zstack-size=8388608'" "-C" "debuginfo=2" "-C" "incremental=false" "-C" "strip=none" "-A" "warnings"
%else
%global build_rustflags "-C" "linker=clang++" "-C" "link-arg='-fuse-ld=/usr/bin/ld.lld -Wl,-z,relro,-z,now,-zstack-size=8388608'" "-C" "debuginfo=2" "-C" "incremental=false" "-C" "strip=none" "-A" "warnings"
%endif
Name: rusty_v8
Version: 145.0.0
Release: 0
@@ -35,19 +49,23 @@ Patch1: compiler-rt-adjust-paths.patch
Patch2: disable-rust-toolchain-download.patch
BuildRequires: cargo
BuildRequires: cargo-packaging
BuildRequires: clang21
BuildRequires: clang21-devel
BuildRequires: clang >= %{_min_clang_version}
BuildRequires: clang-devel >= %{_min_clang_version}
BuildRequires: llvm >= %{_min_clang_version}
BuildRequires: llvm-devel >= %{_min_clang_version}
BuildRequires: lld >= %{_min_clang_version}
BuildRequires: lld >= %{_min_clang_version}
%if 0%{?suse_version} > 1600
BuildRequires: mold
%endif
BuildRequires: binutils
BuildRequires: fdupes
BuildRequires: gn
BuildRequires: lld21
BuildRequires: rust-bindgen
BuildRequires: llvm21
BuildRequires: llvm21-devel
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: rust-bindgen
BuildRequires: zstd
BuildRequires: rust-src
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(gobject-2.0)
@@ -55,7 +73,7 @@ BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(icu-i18n)
# Rusty V8 does not guarantee builds for 32 bit and ppc
ExclusiveArch: %{rust_tier1_arches}
ExclusiveArch: x86_64 x86_64_v3
%ifarch ppc64 # wants g++ for some reason
BuildRequires: gcc-c++
%endif
@@ -77,6 +95,9 @@ mkdir -p third_party/rust-toolchain
tar xf %{SOURCE2} -C third_party/rust-toolchain
%build
%ifarch aarch64
export RUSTC_BOOTSTRAP=1
%endif
# Ensure that the clang version matches. This command came from Archlinux. Thanks.
export CLANG_VERSION=$(clang --version | grep -m1 version | sed 's/.* \([0-9]\+\).*/\1/')
export LIBCLANG_PATH=%{_libdir}
@@ -84,17 +105,32 @@ export V8_FROM_SOURCE=1
export CLANG_BASE_PATH=%{_prefix}
export CC=clang
export CXX=clang++
export AR=ar NM=nm
export CFLAGS="%{optflags} -Wno-unknown-warning-option"
export CXXFLAGS="%{optflags} -Wno-unknown-warning-option"
# https://www.chromium.org/developers/gn-build-configuration
export RUSTC_SYSROOT=$(rustc --print sysroot)
export RUSTC_VERSION=$(rustc -V | cut -d' ' -f2)
export GN="/usr/bin/gn"
export NINJA="/usr/bin/ninja"
export RUSTC="/usr/bin/rustc"
export GN_ARGS="clang_version=${CLANG_VERSION} use_lld=true v8_symbol_level=0"
# export EXTRA_GN_ARGS="rust_sysroot_absolute=${RUSTC_SYSROOT} rustc_version=${RUSTC_VERSION}"
export CFLAGS="%{optflags} -Wno-unknown-warning-option"
export CXXFLAGS="%{optflags} -Wno-unknown-warning-option"
export RUST_BACKTRACE=full
export GN_ARGS="
clang_version=${CLANG_VERSION}
v8_symbol_level=0
custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
host_toolchain=\"//build/toolchain/linux/unbundle:default\"
fatal_linker_warnings=false
is_debug=false
use_system_libffi=true
use_custom_libcxx=false
use_sysroot=false
"
export EXTRA_GN_ARGS="use_custom_libcxx=false"
# Included limited debug info.
export CARGO_PROFILE_RELEASE_DEBUG=1
# Use "thin" instead of "fat" to speed up builds (it costs +4% binary size).
export CARGO_PROFILE_RELEASE_LTO="thin"
%{cargo_build}
%install