Skip to content

Commit

Permalink
enable,bump(main/librusty-v8): 130.0.1 (#22404)
Browse files Browse the repository at this point in the history
Co-authored-by: Chongyun Lee <[email protected]>
  • Loading branch information
mbekkomo and licy183 authored Nov 28, 2024
1 parent 6e9b440 commit 2212a6c
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 45 deletions.
45 changes: 0 additions & 45 deletions disabled-packages/librusty-v8/build.sh

This file was deleted.

28 changes: 28 additions & 0 deletions packages/librusty-v8/0001-sizeof-in-i686.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
--- a/src/binding.cc
+++ b/src/binding.cc
@@ -54,6 +54,7 @@

static_assert(sizeof(v8::Locker) == sizeof(size_t) * 2, "Locker size mismatch");

+#if !(defined(__ANDROID__) && defined(__i386__))
static_assert(sizeof(v8::ScriptCompiler::CompilationDetails) ==
sizeof(int64_t) * 3,
"CompilationDetails size mismatch");
@@ -66,6 +67,17 @@
align_to<int64_t>(sizeof(size_t)) +
sizeof(v8::ScriptCompiler::CompilationDetails)),
"Source size mismatch");
+#else
+static_assert(sizeof(v8::ScriptCompiler::CompilationDetails) ==
+ sizeof(int64_t) * 2 + sizeof(uint32_t) /* enum class */,
+ "CompilationDetails size mismatch");
+
+static_assert(
+ sizeof(v8::ScriptCompiler::Source) ==
+ align_to<size_t>(sizeof(size_t) * 8 + sizeof(int) * 3 +
+ sizeof(v8::ScriptCompiler::CompilationDetails)),
+ "Source size mismatch");
+#endif

static_assert(sizeof(v8::FunctionCallbackInfo<v8::Value>) == sizeof(size_t) * 3,
"FunctionCallbackInfo size mismatch");
20 changes: 20 additions & 0 deletions packages/librusty-v8/0002-build-triple.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- a/build.rs
+++ b/build.rs
@@ -259,11 +259,17 @@
"x64"
} else if target_arch == "aarch64" {
"arm64"
+ } else if target_arch == "arm" {
+ "arm"
+ } else if target_triple.starts_with("i686-") {
+ "x86"
} else {
"unknown"
};
if target_arch == "x86_64" {
maybe_install_sysroot("amd64");
+ } else if target_triple.starts_with("i686-") {
+ maybe_install_sysroot("i386");
}
gn_args.push(format!(r#"v8_target_cpu="{}""#, arch).to_string());
gn_args.push(format!(r#"target_cpu="{}""#, arch).to_string());
51 changes: 51 additions & 0 deletions packages/librusty-v8/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
TERMUX_PKG_HOMEPAGE=https://github.com/denoland/rusty_v8
TERMUX_PKG_DESCRIPTION="High quality Rust bindings to V8's C++ API"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=130.0.1
TERMUX_PKG_SRCURL=git+https://github.com/denoland/rusty_v8
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true

termux_step_configure() {
termux_setup_rust
termux_setup_ninja
termux_setup_gn

export EXTRA_GN_ARGS="
android32_ndk_api_level=$TERMUX_PKG_API_LEVEL
android64_ndk_api_level=$TERMUX_PKG_API_LEVEL
android_ndk_root=\"$NDK\"
android_ndk_version=\"$TERMUX_NDK_VERSION\"
"

if [ "$TERMUX_ARCH" = "arm" ]; then
EXTRA_GN_ARGS+=" target_cpu = \"arm\""
EXTRA_GN_ARGS+=" v8_target_cpu = \"arm\""
EXTRA_GN_ARGS+=" arm_arch = \"armv7-a\""
EXTRA_GN_ARGS+=" arm_float_abi = \"softfp\""
fi

# shellcheck disable=SC2155 # Ignore command exit-code
export GN="$(command -v gn)"

# Make build.rs happy
ln -sf "$NDK" "$TERMUX_PKG_SRCDIR"/third_party/android_ndk

BINDGEN_EXTRA_CLANG_ARGS="--target=$CCTERMUX_HOST_PLATFORM"
BINDGEN_EXTRA_CLANG_ARGS+=" --sysroot=$TERMUX_PKG_SRCDIR/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot"
export BINDGEN_EXTRA_CLANG_ARGS
local env_name=BINDGEN_EXTRA_CLANG_ARGS_${CARGO_TARGET_NAME@U}
env_name=${env_name//-/_}
export "$env_name"="$BINDGEN_EXTRA_CLANG_ARGS"
}

termux_step_make() {
export V8_FROM_SOURCE=1
cargo build -vv --jobs "${TERMUX_PKG_MAKE_PROCESSES}" --target "${CARGO_TARGET_NAME}" --release
}

termux_step_make_install() {
install -Dm600 -t "${TERMUX_PREFIX}/include/librusty_v8" "target/${CARGO_TARGET_NAME}/release/gn_out/src_binding.rs"
install -Dm600 -t "${TERMUX_PREFIX}/lib" "target/${CARGO_TARGET_NAME}/release/gn_out/obj/librusty_v8.a"
}
4 changes: 4 additions & 0 deletions scripts/setup-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,10 @@ PACKAGES+=" llvm-17-dev"
PACKAGES+=" llvm-17-tools"
PACKAGES+=" clang-17"

# Needed by librusty-v8
PACKAGES+=" libclang-rt-17-dev"
PACKAGES+=" libclang-rt-17-dev:i386"

# Needed for package smalltalk.
PACKAGES+=" libsigsegv-dev"
PACKAGES+=" zip"
Expand Down

0 comments on commit 2212a6c

Please sign in to comment.