Skip to content

Commit

Permalink
build: use ccache in make-v8.sh on ppc64le and s390x
Browse files Browse the repository at this point in the history
If `ccache` is available, use it during V8 builds on ppc64le and s390x.
Only create the `gcc` and `g++` shims if necessary.

PR-URL: nodejs#42204
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
richardlau authored and xtx1130 committed Apr 25, 2022
1 parent 7fee315 commit 97ea5bc
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions tools/make-v8.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd deps/v8 || exit
find . -type d -name .git -print0 | xargs -0 rm -rf
../../tools/v8/fetch_deps.py .

ARCH="`arch`"
ARCH=$(arch)
if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
TARGET_ARCH=$ARCH
if [ "$ARCH" = "ppc64le" ]; then
Expand All @@ -18,22 +18,34 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
# 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`
rm -f "$BUILD_TOOLS/g++"
rm -f "$BUILD_TOOLS/gcc"
ln -s "$CXX_PATH" "$BUILD_TOOLS/g++"
ln -s "$CC_PATH" "$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
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

0 comments on commit 97ea5bc

Please sign in to comment.