Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .docker/core-wasm.bake.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# ==============================================================================

#### CORE WASM ####
FROM emscripten/emsdk:3.1.48 AS core-wasm
FROM emscripten/emsdk:5.0.4 AS core-wasm
ARG BUILD_ROOT
ARG CACHE_BUST
ARG NUGET_SOURCE_PATH
Expand Down
1 change: 1 addition & 0 deletions Common/3dParty/boost/hashes.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
1.72|x64-linux-dynamic|c3e6bcec18bbfbd31529d63fdf4214c6cee72044fdb8a617121e7ebbb18f2d53a7026477e1f7566153469b52a2a065c865537c31120caa66299eb61ea6c8e322
1.72|arm64-linux-dynamic|6261c6f97632af02e92c5401e8757919c82f0a1a204ef54342e601c8b4af92492c7c4faa55b1f7ac8c2e2e097dd339a989fb7939866adf83a00b7e5c0de38234
1 change: 1 addition & 0 deletions Common/3dParty/boost/tools/1.72/arm64-linux-dynamic
1 change: 1 addition & 0 deletions Common/3dParty/v8/hashes.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
8.9|x64-linux-dynamic|60a740e3818c3d430920e0938ba4974458fe687d819353020334f63ecbbd59fbbc59077d0ba9e4df00deb2abc2eaf5bcabdeddc9ddf010e4609992022692a9ca
8.9|arm64-linux-dynamic|ed40470e3ea7fd23d127bb2ab1ec396848c8449bf29e5c31c76bdfffffa84faa4b1177ad07f69fe5952baa023a4305e90a04965b54a8564c27de5c59c852daea
89 changes: 89 additions & 0 deletions Common/3dParty/v8/tools/8.9/arm64-linux-dynamic/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
FROM ubuntu:22.04 AS v8-builder
ENV DEBIAN_FRONTEND=noninteractive
ENV CC=clang-13
ENV CXX=clang++-13

# 1. Install system dependencies and Python 3.11
RUN apt-get update && apt-get install -y software-properties-common && \
add-apt-repository ppa:deadsnakes/ppa && \
apt-get update && apt-get install -y \
bash \
git \
python3.11 \
python3.11-dev \
python3.11-distutils \
python3.11-venv \
lsb-release \
sudo \
curl \
wget \
xz-utils \
pkg-config \
build-essential \
ninja-build \
libstdc++6 \
libglib2.0-dev

# 2. Install Pip specifically for Python 3.11
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11

# 3. Install httplib2 for Python 3.11
RUN python3.11 -m pip install httplib2

# 4. Set Python 3.11 as the default 'python' and 'python3' command
RUN ln -sf /usr/bin/python3.11 /usr/bin/python3 && \
ln -sf /usr/bin/python3.11 /usr/bin/python

# Install clang-13 and LLVM tools for V8 9.x build
RUN mkdir -p /etc/apt/keyrings && \
wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /etc/apt/keyrings/llvm-snapshot.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-13 main" \
> /etc/apt/sources.list.d/llvm-13.list && \
apt-get update && apt-get install -y \
clang-13 lld-13 llvm-13-dev llvm-13 \
libc++-13-dev libc++abi-13-dev \
qemu-user-static binfmt-support && \
rm -rf /var/lib/apt/lists/*


# Set clang-13 as default
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 100 && \
update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-13 100 && \
update-alternatives --install /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-13 100 && \
update-alternatives --install /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-13 100 && \
update-alternatives --install /usr/bin/lld lld /usr/bin/lld-13 100 && \
update-alternatives --set clang /usr/bin/clang-13 && \
update-alternatives --set clang++ /usr/bin/clang++-13 && \
update-alternatives --set lld /usr/bin/lld-13 && \
update-alternatives --set llvm-ar /usr/bin/llvm-ar-13 && \
update-alternatives --set llvm-nm /usr/bin/llvm-nm-13 && \
update-alternatives --set llvm-ranlib /usr/bin/llvm-ranlib-13

# Verify clang version
RUN clang-13 --version && \
clang --version && \
clang-13 --version | head -n1 | grep -q "clang version 13" || exit 1 && \
clang --version | head -n1 | grep -q "clang version 13" || exit 1

# 2. Set up working directories
WORKDIR /build-context
COPY nc-build.sh nc-build.sh

COPY ./jinja2.patch jinja2.patch
COPY ./gclient_paths.patch gclient_paths.patch
COPY ./buildgn.patch buildgn.patch
COPY ./bootstrap.patch bootstrap.patch

# Ensure the script is executable
RUN chmod +x ./nc-build.sh

# 3. Run the build script
# Arguments: /tmp/v8_work (temp build files) and /opt/v8 (final destination)
RUN ./nc-build.sh /tmp/v8_work /build/v8


RUN tar -cjf /v8_binary.tar.bz2 /build/v8

FROM scratch AS artifacts
COPY --from=v8-builder /v8_binary.tar.bz2 /
56 changes: 56 additions & 0 deletions Common/3dParty/v8/tools/8.9/arm64-linux-dynamic/bootstrap.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py
index 8d9592938..7eb53dbd1 100644
--- a/bootstrap/bootstrap.py
+++ b/bootstrap/bootstrap.py
@@ -200,7 +200,8 @@ def _check_call(argv, stdin_input=None, **kwargs):
proc = subprocess.Popen(argv, **kwargs)
stdout, stderr = proc.communicate(input=stdin_input)
if proc.returncode:
- raise subprocess.CalledProcessError(proc.returncode, argv, None)
+ # raise subprocess.CalledProcessError(proc.returncode, argv, None)
+ return
return stdout, stderr


@@ -461,7 +462,7 @@ def git_postprocess(template):
os.path.join(ROOT_DIR, stub_name))

# Bootstrap the git global config.
- _win_git_bootstrap_config()
+ # _win_git_bootstrap_config()


def main(argv):
diff --git a/bootstrap/manifest.txt b/bootstrap/manifest.txt
index 61fcb267c..3a6e39bed 100644
--- a/bootstrap/manifest.txt
+++ b/bootstrap/manifest.txt
@@ -1,21 +1,10 @@
-# CIPD manifest for bootstrapping tools.
-#
-# We must install anything that we want included on PATH to a different
-# subdirectory than Git, as Git's msys bash strips its root directory
-# from PATH, hence the subdirs.
-#
-# If any paths or package layouts change, updates will be required in
-# "win_tools.bat", "bootstrap.py" and "../bootstrap_python3" templates.
-#
-# "win_tools.bat" has a hard requirement that the Python packages contain the
-# string "cpython3/" for Python 3, and ends with the CIPD tag "version:VERSION".
-# It uses this to extract VERSION.
-#
-# "bootstrap_python3" has a hard requirement that the Python package contains
-# the string "cpython3/" and ends with the CIPD tag "version:VERSION".
-# It uses this to extract VERSION.
-
$VerifiedPlatform windows-amd64 windows-arm64 linux-amd64 mac-amd64 mac-arm64

+@Subdir python
+infra/3pp/tools/cpython/${platform} version:2@2.7.18.chromium.39
+
@Subdir python3
-infra/3pp/tools/cpython3/${platform} version:2@3.11.8.chromium.35
+infra/3pp/tools/cpython3/${platform} version:2@3.8.10.chromium.23
+
+@Subdir git
+infra/3pp/tools/git/${platform} version:2@2.41.0.chromium.11
13 changes: 13 additions & 0 deletions Common/3dParty/v8/tools/8.9/arm64-linux-dynamic/buildgn.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/BUILD.gn b/BUILD.gn
index f39529a3a95..d4781238201 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -714,7 +714,7 @@ config("toolchain") {
visibility = [ "./*" ]

defines = []
- cflags = []
+ cflags = ["-include", "cstdint"]
ldflags = []

if (v8_current_cpu == "arm") {
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
diff --git a/gclient_paths.py b/gclient_paths.py
index bd4d05b15..6cfe2118e 100644
--- a/gclient_paths.py
+++ b/gclient_paths.py
@@ -20,7 +20,7 @@ import subprocess2
# pylint: disable=line-too-long


-@functools.lru_cache
+
def FindGclientRoot(from_dir, filename='.gclient'):
"""Tries to find the gclient root."""
real_from_dir = os.path.abspath(from_dir)
@@ -73,7 +73,7 @@ def FindGclientRoot(from_dir, filename='.gclient'):
return None


-@functools.lru_cache
+
def _GetPrimarySolutionPathInternal(cwd):
gclient_root = FindGclientRoot(cwd)
if gclient_root:
@@ -107,7 +107,7 @@ def GetPrimarySolutionPath(from_dir=None):
return _GetPrimarySolutionPathInternal(from_dir)


-@functools.lru_cache
+
def _GetBuildtoolsPathInternal(cwd, override):
if override is not None:
return override
@@ -162,7 +162,7 @@ def GetExeSuffix():
return ''


-@functools.lru_cache
+
def _GetGClientSolutions(gclient_root_dir_path):
gclient_config_file = os.path.join(gclient_root_dir_path, '.gclient')
gclient_config_contents = gclient_utils.FileRead(gclient_config_file)
16 changes: 16 additions & 0 deletions Common/3dParty/v8/tools/8.9/arm64-linux-dynamic/jinja2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/tests.py b/tests.py
index 0adc3d4..56ed431 100644
--- a/tests.py
+++ b/tests.py
@@ -10,7 +10,10 @@
"""
import operator
import re
-from collections import Mapping
+try:
+ from collections.abc import Mapping
+except ImportError:
+ from collections import Mapping
from jinja2.runtime import Undefined
from jinja2._compat import text_type, string_types, integer_types
import decimal
Loading
Loading