Skip to content
Closed
Changes from 1 commit
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
Prev Previous commit
Next Next commit
build: use ccache in make-v8.sh on ppc64le and s390x
If `ccache` is available, use it during V8 builds on ppc64le and s390x.
Only create the `gcc` and `g++` shims if necessary.

PR-URL: #42204
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
richardlau authored and juanarbol committed Apr 28, 2022
commit 40b0f8fe364e206314752459a1927ebf47a6f9bc
36 changes: 24 additions & 12 deletions tools/make-v8.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,43 @@ cd deps/v8 || exit
find . -type d -name .git -print0 | xargs -0 rm -rf
tools/node/fetch_deps.py .

ARCH="`arch`"
ARCH=$(arch)
if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
TARGET_ARCH=$ARCH
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
# Avoid linking to ccache symbolic links as ccache decides which
# binary to run based on the name of the link (we always name them gcc/g++).
# shellcheck disable=SC2154
CC_PATH=`command -v "$CC" gcc | grep -v ccache | head -n 1`
# shellcheck disable=SC2154
CXX_PATH=`command -v "$CXX" g++ | grep -v ccache | head -n 1`
export LD_LIBRARY_PATH="$BUILD_TOOLS:$LD_LIBRARY_PATH"
rm -f "$BUILD_TOOLS/g++"
rm -f "$BUILD_TOOLS/gcc"
ln -s "$CXX_PATH" "$BUILD_TOOLS/g++"
ln -s "$CC_PATH" "$BUILD_TOOLS/gcc"
export PATH=$BUILD_TOOLS:$PATH
# 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
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"
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"
ninja -v -C "out.gn/$BUILD_ARCH_TYPE" d8 cctest inspector-test
else
DEPOT_TOOLS_DIR="$(cd _depot_tools && pwd)"
Expand Down