mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
60d5eed4e8
If `ccache` is available, use it during V8 builds on ppc64le and s390x. Only create the `gcc` and `g++` shims if necessary. PR-URL: https://github.com/nodejs/node/pull/42204 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
56 lines
2.0 KiB
Bash
Executable File
56 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -xe
|
|
|
|
BUILD_ARCH_TYPE=$1
|
|
V8_BUILD_OPTIONS=$2
|
|
|
|
cd deps/v8 || exit
|
|
find . -type d -name .git -print0 | xargs -0 rm -rf
|
|
../../tools/v8/fetch_deps.py .
|
|
|
|
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"
|
|
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
|
|
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"
|
|
ninja -v -C "out.gn/$BUILD_ARCH_TYPE" d8 cctest inspector-test
|
|
else
|
|
DEPOT_TOOLS_DIR="$(cd _depot_tools && pwd)"
|
|
# shellcheck disable=SC2086
|
|
PATH="$DEPOT_TOOLS_DIR":$PATH tools/dev/v8gen.py "$BUILD_ARCH_TYPE" --no-goma $V8_BUILD_OPTIONS
|
|
PATH="$DEPOT_TOOLS_DIR":$PATH ninja -C "out.gn/$BUILD_ARCH_TYPE/" d8 cctest inspector-test
|
|
fi
|