From 2cace72d00e5277421d06d548f2b31b3d69560b0 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Mon, 15 Sep 2025 14:35:01 +0000 Subject: [PATCH 1/2] tools: fix `tools/make-v8.sh` for clang Update `tools/make-v8.sh` so that it can work with either `gcc` or `clang`. Adds: - clang settings when CC/CXX environment variables set to clang/clang++. - Turns off warnings as errors. Removes: - goma settings. - Machine specific settings (moved to Jenkins job configuration). Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5541431 --- tools/make-v8.sh | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/tools/make-v8.sh b/tools/make-v8.sh index 8d8f090f0fe794..05d8b88cc85dc1 100755 --- a/tools/make-v8.sh +++ b/tools/make-v8.sh @@ -20,37 +20,18 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then if [ "$ARCH" = "ppc64le" ]; then TARGET_ARCH="ppc64" fi - # set paths manually for now to use locally installed gn - export BUILD_TOOLS=/home/iojs/build-tools - export LD_LIBRARY_PATH="$BUILD_TOOLS:$LD_LIBRARY_PATH" - rm -f "$BUILD_TOOLS/g++" - rm -f "$BUILD_TOOLS/gcc" - # V8's build config looks for binaries called `gcc` and `g++` if not using - # clang. Ensure that `gcc` and `g++` point to the compilers we want to - # invoke, creating symbolic links placed at the front of PATH, if needed. - # Avoid linking to ccache symbolic links as ccache decides which binary - # to run based on the name of the link (i.e. `gcc`/`g++` in our case). - # shellcheck disable=SC2154 - if [ "$CC" != "" ] && [ "$CC" != "gcc" ]; then - CC_PATH=$(command -v "$CC" gcc | grep -v ccache | head -n 1) - ln -s "$CC_PATH" "$BUILD_TOOLS/gcc" - fi - # shellcheck disable=SC2154 - if [ "$CXX" != "" ] && [ "$CXX" != "g++" ]; then - CXX_PATH=$(command -v "$CXX" g++ | grep -v ccache | head -n 1) - ln -s "$CXX_PATH" "$BUILD_TOOLS/g++" - fi - export PATH="$BUILD_TOOLS:$PATH" # Propagate ccache to gn. case "$CXX" in *ccache*) CC_WRAPPER="cc_wrapper=\"ccache\"" ;; *) ;; esac - g++ --version - gcc --version + case "$CXX" in + *clang*) GN_COMPILER_OPTS="is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false treat_warnings_as_errors=false use_custom_libcxx=false" ;; + *) GN_COMPILER_OPTS="treat_warnings_as_errors=false use_custom_libcxx=false" ;; + esac export PKG_CONFIG_PATH=$BUILD_TOOLS/pkg-config - gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="is_component_build=false is_debug=false use_goma=false goma_dir=\"None\" use_custom_libcxx=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true $CC_WRAPPER" + gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="$GN_COMPILER_OPTS is_component_build=false is_debug=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true $CC_WRAPPER" ninja -v -C "out.gn/$BUILD_ARCH_TYPE" "${JOBS_ARG}" d8 cctest inspector-test else DEPOT_TOOLS_DIR="$(cd depot_tools && pwd)" From 626b5e344ba4d6a74f5b51db7b67856925452edb Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Mon, 15 Sep 2025 17:42:06 +0000 Subject: [PATCH 2/2] fixup! tools: fix `tools/make-v8.sh` for clang --- tools/make-v8.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/make-v8.sh b/tools/make-v8.sh index 05d8b88cc85dc1..ca3b5729043270 100755 --- a/tools/make-v8.sh +++ b/tools/make-v8.sh @@ -21,16 +21,17 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then TARGET_ARCH="ppc64" fi # Propagate ccache to gn. + # shellcheck disable=SC2154 case "$CXX" in *ccache*) CC_WRAPPER="cc_wrapper=\"ccache\"" ;; *) ;; esac + # shellcheck disable=SC2154 case "$CXX" in *clang*) GN_COMPILER_OPTS="is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false treat_warnings_as_errors=false use_custom_libcxx=false" ;; *) GN_COMPILER_OPTS="treat_warnings_as_errors=false use_custom_libcxx=false" ;; esac - export PKG_CONFIG_PATH=$BUILD_TOOLS/pkg-config gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="$GN_COMPILER_OPTS is_component_build=false is_debug=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true $CC_WRAPPER" ninja -v -C "out.gn/$BUILD_ARCH_TYPE" "${JOBS_ARG}" d8 cctest inspector-test else