Skip to content

Commit 40b0f8f

Browse files
richardlaujuanarbol
authored andcommitted
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 <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 03e9572 commit 40b0f8f

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

tools/make-v8.sh

+24-12
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,43 @@ cd deps/v8 || exit
99
find . -type d -name .git -print0 | xargs -0 rm -rf
1010
tools/node/fetch_deps.py .
1111

12-
ARCH="`arch`"
12+
ARCH=$(arch)
1313
if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
1414
TARGET_ARCH=$ARCH
1515
if [ "$ARCH" = "ppc64le" ]; then
1616
TARGET_ARCH="ppc64"
1717
fi
1818
# set paths manually for now to use locally installed gn
1919
export BUILD_TOOLS=/home/iojs/build-tools
20-
export LD_LIBRARY_PATH=$BUILD_TOOLS:$LD_LIBRARY_PATH
21-
# Avoid linking to ccache symbolic links as ccache decides which
22-
# binary to run based on the name of the link (we always name them gcc/g++).
23-
# shellcheck disable=SC2154
24-
CC_PATH=`command -v "$CC" gcc | grep -v ccache | head -n 1`
25-
# shellcheck disable=SC2154
26-
CXX_PATH=`command -v "$CXX" g++ | grep -v ccache | head -n 1`
20+
export LD_LIBRARY_PATH="$BUILD_TOOLS:$LD_LIBRARY_PATH"
2721
rm -f "$BUILD_TOOLS/g++"
2822
rm -f "$BUILD_TOOLS/gcc"
29-
ln -s "$CXX_PATH" "$BUILD_TOOLS/g++"
30-
ln -s "$CC_PATH" "$BUILD_TOOLS/gcc"
31-
export PATH=$BUILD_TOOLS:$PATH
23+
# V8's build config looks for binaries called `gcc` and `g++` if not using
24+
# clang. Ensure that `gcc` and `g++` point to the compilers we want to
25+
# invoke, creating symbolic links placed at the front of PATH, if needed.
26+
# Avoid linking to ccache symbolic links as ccache decides which binary
27+
# to run based on the name of the link (i.e. `gcc`/`g++` in our case).
28+
# shellcheck disable=SC2154
29+
if [ "$CC" != "" ] && [ "$CC" != "gcc" ]; then
30+
CC_PATH=$(command -v "$CC" gcc | grep -v ccache | head -n 1)
31+
ln -s "$CC_PATH" "$BUILD_TOOLS/gcc"
32+
fi
33+
# shellcheck disable=SC2154
34+
if [ "$CXX" != "" ] && [ "$CXX" != "g++" ]; then
35+
CXX_PATH=$(command -v "$CXX" g++ | grep -v ccache | head -n 1)
36+
ln -s "$CXX_PATH" "$BUILD_TOOLS/g++"
37+
fi
38+
export PATH="$BUILD_TOOLS:$PATH"
39+
# Propagate ccache to gn.
40+
case "$CXX" in
41+
*ccache*) CC_WRAPPER="cc_wrapper=\"ccache\"" ;;
42+
*) ;;
43+
esac
3244

3345
g++ --version
3446
gcc --version
3547
export PKG_CONFIG_PATH=$BUILD_TOOLS/pkg-config
36-
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"
48+
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"
3749
ninja -v -C "out.gn/$BUILD_ARCH_TYPE" d8 cctest inspector-test
3850
else
3951
DEPOT_TOOLS_DIR="$(cd _depot_tools && pwd)"

0 commit comments

Comments
 (0)