forked from javascript/rusty_v8
Compare commits
53 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
f4086f728a | ||
|
|
22f04724d8 | ||
|
|
3cea62d34c | ||
|
|
06da513d44 | ||
|
|
07d67914b3 | ||
|
|
3546ade5f3 | ||
|
|
fb950633c6 | ||
|
|
bb134fd289 | ||
|
|
e4d5e0a507 | ||
|
|
e2f7dd2371 | ||
|
|
67f499149c | ||
|
|
3a0f8d56f2 | ||
|
|
c4acea9d32 | ||
|
|
58b14bd658 | ||
|
|
22c9bedba6 | ||
|
|
8af3ca4421 | ||
|
|
1629623eb3 | ||
|
|
f6ecdfae52 | ||
|
|
ddf9c3b1ea | ||
|
|
e95b80c469 | ||
|
|
af2b3c3161 | ||
|
|
45d0852c56 | ||
|
|
1fac9647b4 | ||
|
|
28724e89bc | ||
|
|
2c8f0b0ffd | ||
|
|
08ae8463f5 | ||
|
|
35b1b7e051 | ||
|
|
830a205b18 | ||
|
|
ff96defee8 | ||
|
|
be037b133c | ||
|
|
45cb939ec4 | ||
|
|
7b8e2719d9 | ||
|
|
893d8a37c0 | ||
|
|
70615c314c | ||
|
|
16fa9ad89f | ||
|
|
3fdb9a2259 | ||
|
|
caf6e16dce | ||
|
|
5e11cd663f | ||
|
|
366a518cff | ||
|
|
9da8e895c3 | ||
|
|
f18bdc576a | ||
|
|
59ca5517d4 | ||
|
|
31efdc1fa5 | ||
|
|
b8cd91189a | ||
|
|
23bc57cc96 | ||
|
|
e1be617583 | ||
|
|
ce9e291599 | ||
|
|
066e3cc08a | ||
|
|
dfc60d5015 | ||
|
|
8f66c5e934 | ||
|
|
2b8299a06e | ||
|
|
0105e5eada | ||
|
|
ff050dfd39 |
26
_constraints
26
_constraints
@@ -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>
|
||||
|
||||
2
_service
2
_service
@@ -1,7 +1,7 @@
|
||||
<services>
|
||||
<service name="cargo_vendor" mode="manual">
|
||||
<param name="src">https://github.com/denoland/rusty_v8</param>
|
||||
<param name="revision">v137.2.1</param>
|
||||
<param name="revision">v145.0.0</param>
|
||||
<param name="versionrewriteregex">^v?(.*)</param>
|
||||
<param name="versionrewritepattern">$1</param>
|
||||
<param name="compression">zst</param>
|
||||
|
||||
BIN
chromium-rust-toolchain.tar.xz
LFS
Normal file
BIN
chromium-rust-toolchain.tar.xz
LFS
Normal file
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
diff -ruN /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn rusty_v8-v137.1.0/build/config/clang/BUILD.gn
|
||||
--- /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn 1970-01-01 08:00:01.000000000 +0800
|
||||
+++ rusty_v8-v137.1.0/build/config/clang/BUILD.gn 2025-06-26 14:47:20.638581652 +0800
|
||||
@@ -201,12 +201,15 @@
|
||||
diff -ruN rusty_v8-145.0.0.orig/build/config/clang/BUILD.gn rusty_v8-145.0.0/build/config/clang/BUILD.gn
|
||||
--- rusty_v8-145.0.0.orig/build/config/clang/BUILD.gn 2026-02-14 14:15:37.957884922 +0800
|
||||
+++ rusty_v8-145.0.0/build/config/clang/BUILD.gn 2026-02-14 14:18:05.583917665 +0800
|
||||
@@ -180,12 +180,15 @@
|
||||
} else if (is_linux || is_chromeos) {
|
||||
if (current_cpu == "x64") {
|
||||
_dir = "x86_64-unknown-linux-gnu"
|
||||
@@ -14,17 +14,18 @@ diff -ruN /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn rusty_v8-v137.1.0/b
|
||||
} else if (current_cpu == "arm64") {
|
||||
_dir = "aarch64-unknown-linux-gnu"
|
||||
+ _suffix = "-aarch64"
|
||||
} else {
|
||||
assert(false) # Unhandled cpu type
|
||||
}
|
||||
@@ -237,6 +240,10 @@
|
||||
} else if (current_cpu == "loong64") {
|
||||
_dir = "loongarch64-unknown-linux-gnu"
|
||||
} else if (current_cpu == "riscv64") {
|
||||
@@ -223,7 +226,10 @@
|
||||
} else {
|
||||
assert(false) # Unhandled target platform
|
||||
}
|
||||
|
||||
-
|
||||
+
|
||||
+ if (is_linux || is_chromeos) {
|
||||
+ _dir = "linux"
|
||||
+ }
|
||||
+
|
||||
_clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
|
||||
_lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
|
||||
libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
--- ./build.rs.orig 2024-06-27 14:26:40.281226961 +0200
|
||||
+++ ./build.rs 2024-06-27 14:28:10.388618455 +0200
|
||||
@@ -200,16 +200,12 @@ fn build_v8(is_asan: bool) {
|
||||
// cross-compilation setup
|
||||
diff -ruN rusty_v8-145.0.0.orig/build.rs rusty_v8-145.0.0/build.rs
|
||||
--- rusty_v8-145.0.0.orig/build.rs 2026-02-14 14:02:50.206480850 +0800
|
||||
+++ rusty_v8-145.0.0/build.rs 2026-02-14 14:06:48.032243885 +0800
|
||||
@@ -353,17 +353,13 @@
|
||||
if target_arch == "aarch64" {
|
||||
gn_args.push(r#"target_cpu="arm64""#.to_string());
|
||||
- gn_args.push("use_sysroot=true".to_string());
|
||||
- maybe_install_sysroot("arm64");
|
||||
- maybe_install_sysroot("amd64");
|
||||
+ gn_args.push("use_sysroot=false".to_string());
|
||||
if target_os == "linux" {
|
||||
- gn_args.push("use_sysroot=true".to_string());
|
||||
- maybe_install_sysroot("arm64");
|
||||
- maybe_install_sysroot("amd64");
|
||||
+ gn_args.push("use_sysroot=false".to_string());
|
||||
}
|
||||
}
|
||||
if target_arch == "arm" {
|
||||
gn_args.push(r#"target_cpu="arm""#.to_string());
|
||||
@@ -19,4 +21,3 @@
|
||||
}
|
||||
|
||||
let target_triple = env::var("TARGET").unwrap();
|
||||
|
||||
|
||||
25
disable-rust-toolchain-download.patch
Normal file
25
disable-rust-toolchain-download.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
diff -ruN rusty_v8-145.0.0.orig/build.rs rusty_v8-145.0.0/build.rs
|
||||
--- rusty_v8-145.0.0.orig/build.rs 2026-02-14 14:15:46.377977611 +0800
|
||||
+++ rusty_v8-145.0.0/build.rs 2026-02-14 15:13:06.103012265 +0800
|
||||
@@ -120,7 +120,7 @@
|
||||
|
||||
print_prebuilt_src_binding_path();
|
||||
|
||||
- download_static_lib_binaries();
|
||||
+ // download_static_lib_binaries();
|
||||
}
|
||||
|
||||
fn acquire_lock() -> LockFile {
|
||||
@@ -248,10 +248,10 @@
|
||||
}
|
||||
|
||||
if need_gn_ninja_download() {
|
||||
- download_ninja_gn_binaries();
|
||||
+ // download_ninja_gn_binaries();
|
||||
}
|
||||
|
||||
- download_rust_toolchain();
|
||||
+ // download_rust_toolchain();
|
||||
|
||||
// `#[cfg(...)]` attributes don't work as expected from build.rs -- they refer to the configuration
|
||||
// of the host system which the build.rs script will be running on. In short, `cfg!(target_<os/arch>)`
|
||||
BIN
rusty_v8-137.2.1.tar.zst
LFS
BIN
rusty_v8-137.2.1.tar.zst
LFS
Binary file not shown.
BIN
rusty_v8-145.0.0.tar.zst
LFS
Normal file
BIN
rusty_v8-145.0.0.tar.zst
LFS
Normal file
Binary file not shown.
@@ -1,4 +1,7 @@
|
||||
# This is not C, dear
|
||||
addFilter("E: backup-file-in-package")
|
||||
addFilter("E: filelist-forbidden")
|
||||
addFilter("W: hidden-file-or-dir")
|
||||
addFilter("E: devel-file-in-non-devel-package")
|
||||
addFilter("E: bin-sh-syntax-error")
|
||||
addFilter("E: env-script-interpreter")
|
||||
|
||||
@@ -1,3 +1,44 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 19 01:20:50 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
|
||||
|
||||
- Remove generated directory called "false"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Update to version 145.0.0
|
||||
- Add disable-rust-toolchain-download.patch
|
||||
- Add chromium-rust-toolchain.tar.xz. This was based from the python script
|
||||
located at `tools/rust-toolchain.py`
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 17 23:21:08 UTC 2025 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
name: rusty_v8
|
||||
version: 135.1.0
|
||||
mtime: 1742748458
|
||||
commit: 9cd584266ff1150c7b30d8b9e792643819ef9431
|
||||
@@ -16,10 +16,24 @@
|
||||
#
|
||||
|
||||
|
||||
%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: 137.2.1
|
||||
Version: 145.0.0
|
||||
Release: 0
|
||||
Summary: Build tooling for Deno (do not install or use!)
|
||||
License: MIT
|
||||
@@ -27,21 +41,29 @@ Group: Productivity/Other
|
||||
URL: https://github.com/denoland/rusty_v8
|
||||
Source0: %{name}-%{version}.tar.zst
|
||||
Source1: vendor.tar.zst
|
||||
Source2: https://storage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz#/chromium-rust-toolchain.tar.xz
|
||||
Source100: rusty_v8-rpmlintrc
|
||||
Patch0: deno-v8-arm.patch
|
||||
# Based on https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/raw/main/compiler-rt-adjust-paths.patch
|
||||
Patch1: compiler-rt-adjust-paths.patch
|
||||
Patch2: disable-rust-toolchain-download.patch
|
||||
BuildRequires: cargo
|
||||
BuildRequires: cargo-packaging
|
||||
BuildRequires: clang19
|
||||
BuildRequires: libstdc++6-devel-gcc14
|
||||
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}
|
||||
%if 0%{?suse_version} > 1600
|
||||
BuildRequires: mold
|
||||
%endif
|
||||
BuildRequires: binutils
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gn
|
||||
BuildRequires: lld19
|
||||
BuildRequires: llvm19
|
||||
BuildRequires: ninja
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: rust-bindgen
|
||||
BuildRequires: zstd
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: pkgconfig(gmodule-2.0)
|
||||
@@ -50,7 +72,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
|
||||
@@ -68,19 +90,46 @@ Chromium, etc.
|
||||
# lib to lib64
|
||||
sed -i 's|lib/clang|lib64/clang|g' build/config/clang/BUILD.gn
|
||||
%endif
|
||||
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}
|
||||
export V8_FROM_SOURCE=1
|
||||
export CLANG_BASE_PATH=%{_prefix}
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
# https://www.chromium.org/developers/gn-build-configuration
|
||||
export GN_ARGS="clang_version=${CLANG_VERSION} use_lld=true enable_nacl = false blink_symbol_level = 0 v8_symbol_level = 0"
|
||||
export AR=ar NM=nm
|
||||
export CFLAGS="%{optflags} -Wno-unknown-warning-option"
|
||||
export CXXFLAGS="%{optflags} -Wno-unknown-warning-option"
|
||||
export RUST_BACKTRACE=full
|
||||
# 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}
|
||||
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
|
||||
@@ -99,11 +148,16 @@ pushd %{buildroot}%{_libdir}/crates/rusty_v8
|
||||
rm -rf .github
|
||||
rm .prettierrc.json
|
||||
rm .rustfmt.toml
|
||||
rm -rf false
|
||||
rm -rf vendor
|
||||
rm -rf target
|
||||
rm -rf third_party/rust-toolchain
|
||||
%fdupes $PWD
|
||||
popd
|
||||
|
||||
# Remove Windows-specific vendored libs that break readelf/rpmlint
|
||||
find %{buildroot}%{_libdir}/crates/rusty_v8/third_party -name "windows_*" -type d -exec rm -rf {} +
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
|
||||
BIN
vendor.tar.zst
LFS
BIN
vendor.tar.zst
LFS
Binary file not shown.
Reference in New Issue
Block a user