build.sh: consistently use CC_ARG and LD_ARG
All make calls (especially `make defconfig`) might rely on the correct
compiler to be used. In order to use the same compiler consistently,
determine the CC_ARG and LD_ARG before the first call. Also combine them
to ensure they are used as a pair consistently.
The issue was discovered when building upstream-linux-4.19.y with
CC=clang and the deprecation warning got triggered during make mrproper
and make defconfig.
Change-Id: Ia1905adfda28d78f37f56724fe5fbfd13852f2c7
Cc: Alistair Strachan <astrachan@google.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
diff --git a/build.sh b/build.sh
index aaf26a2..c4a57721 100755
--- a/build.sh
+++ b/build.sh
@@ -139,12 +139,22 @@
export CLANG_TRIPLE CROSS_COMPILE CROSS_COMPILE_ARM32 ARCH SUBARCH
+if [ -n "${CC}" ]; then
+ CC_ARG="CC=${CC}"
+fi
+
+if [ -n "${LD}" ]; then
+ LD_ARG="LD=${LD}"
+fi
+
+CC_LD_ARG="${CC_ARG} ${LD_ARG}"
+
mkdir -p ${OUT_DIR}
echo "========================================================"
echo " Setting up for build"
if [ -z "${SKIP_MRPROPER}" ] ; then
set -x
- (cd ${KERNEL_DIR} && make O=${OUT_DIR} mrproper)
+ (cd ${KERNEL_DIR} && make ${CC_LD_ARG} O=${OUT_DIR} mrproper)
set +x
fi
@@ -158,7 +168,7 @@
if [ -z "${SKIP_DEFCONFIG}" ] ; then
set -x
-(cd ${KERNEL_DIR} && make O=${OUT_DIR} ${DEFCONFIG})
+(cd ${KERNEL_DIR} && make ${CC_LD_ARG} O=${OUT_DIR} ${DEFCONFIG})
set +x
if [ "${POST_DEFCONFIG_CMDS}" != "" ]; then
@@ -173,17 +183,9 @@
echo "========================================================"
echo " Building kernel"
-if [ -n "${CC}" ]; then
- CC_ARG="CC=${CC}"
-fi
-
-if [ -n "${LD}" ]; then
- LD_ARG="LD=${LD}"
-fi
-
set -x
(cd ${OUT_DIR} && \
- make O=${OUT_DIR} ${CC_ARG} ${LD_ARG} -j$(nproc) $@)
+ make O=${OUT_DIR} ${CC_LD_ARG} -j$(nproc) $@)
set +x
if [ "${POST_KERNEL_BUILD_CMDS}" != "" ]; then
@@ -202,7 +204,7 @@
echo " Installing kernel modules into staging directory"
(cd ${OUT_DIR} && \
- make O=${OUT_DIR} ${CC_ARG} ${LD_ARG} INSTALL_MOD_STRIP=1 \
+ make O=${OUT_DIR} ${CC_LD_ARG} INSTALL_MOD_STRIP=1 \
INSTALL_MOD_PATH=${MODULES_STAGING_DIR} modules_install)
fi
@@ -223,9 +225,9 @@
mkdir -p ${OUT_DIR}/${EXT_MOD_REL}
set -x
make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
- O=${OUT_DIR} ${CC_ARG} ${LD_ARG} -j$(nproc) "$@"
+ O=${OUT_DIR} ${CC_LD_ARG} -j$(nproc) "$@"
make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
- O=${OUT_DIR} ${CC_ARG} ${LD_ARG} INSTALL_MOD_STRIP=1 \
+ O=${OUT_DIR} ${CC_LD_ARG} INSTALL_MOD_STRIP=1 \
INSTALL_MOD_PATH=${MODULES_STAGING_DIR} modules_install
set +x
done
@@ -297,7 +299,7 @@
echo "========================================================"
echo " Installing UAPI kernel headers:"
mkdir -p "${KERNEL_UAPI_HEADERS_DIR}/usr"
- make -C ${OUT_DIR} O=${OUT_DIR} ${CC_ARG} INSTALL_HDR_PATH="${KERNEL_UAPI_HEADERS_DIR}/usr" -j$(nproc) headers_install
+ make -C ${OUT_DIR} O=${OUT_DIR} ${CC_LD_ARG} INSTALL_HDR_PATH="${KERNEL_UAPI_HEADERS_DIR}/usr" -j$(nproc) headers_install
# The kernel makefiles create files named ..install.cmd and .install which
# are only side products. We don't want those. Let's delete them.
find ${KERNEL_UAPI_HEADERS_DIR} \( -name ..install.cmd -o -name .install \) -exec rm '{}' +