Skip to content

Commit

Permalink
build_slider: Add checking for compatibility with prebuilts
Browse files Browse the repository at this point in the history
Currently, the prebuilts are updated to match the latest merge point
from AOSP, with the default behavior of build_slider.sh being to use
these prebuilts instead of building the aosp/ directory to cut down on
overall build time. However, if additional commits or uncommitted
changes which deviate from the prebuilts are present, the user should be
made aware and asked to explicitly choose whether or not to use the
prebuilts.

Bug: 184667897
Signed-off-by: J. Avila <[email protected]>
Change-Id: I16cbf2d0b479e10c569d08d884867bf24e1cc0ba
  • Loading branch information
J. Avila committed May 3, 2021
1 parent 8427144 commit 9343fc9
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions build_slider.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,12 @@ GKI_PREBUILTS_DIR=$(readlink -m "prebuilts/boot-artifacts/kernel/")
DEFAULT_CONFIG="private/gs-google/build.config.slider"
DEVICE_KERNEL_BUILD_CONFIG=${DEVICE_KERNEL_BUILD_CONFIG:-${DEFAULT_CONFIG}}
TRIM_NONLISTED_KMI=${TRIM_NONLISTED_KMI:-1}
CHECK_DIRTY_AOSP=0
if [ -z "${BUILD_KERNEL}" ]; then
if [ "${EXPERIMENTAL_BUILD}" != "0" -o -n "${GKI_DEFCONFIG_FRAGMENT}" ]; then
BUILD_KERNEL=1
else
CHECK_DIRTY_AOSP=1
BUILD_KERNEL=0
fi
fi
Expand Down Expand Up @@ -94,6 +96,26 @@ if [ "${BUILD_KERNEL}" = "0" ]; then
fi
fi

# If BUILD_KERNEL is not explicitly set, be sure that there are no aosp/
# changes not present in the prebuilt.
if [ "${CHECK_DIRTY_AOSP}" != "0" ]; then
PREBUILTS_SHA=$(strings ${GKI_PREBUILTS_DIR}/vmlinux |
grep "Linux version 5.10" |
sed -n "s/^.*-g\([0-9a-f]\{12\}\)-.*/\1/p")
pushd aosp/ > /dev/null
# The AOSP sha can sometimes be longer than 12 characters; fix its length.
AOSP_SHA=$(git log -1 --abbrev=12 --pretty="format:%h")
if [ "${PREBUILTS_SHA}" != "${AOSP_SHA}" -o -n \
"$(git --no-optional-locks status -uno --porcelain ||
git diff-index --name-only HEAD)" ]; then
echo "There are changes in aosp/ which are not in the prebuilts."
echo " Please set BUILD_KERNEL=1 if you wish to build these changes, or"
echo " BUILD_KERNEL=0 if you wish to disregard them and use prebuilts."
exit_if_error 1 "aosp/ changes detected without BUILD_KERNEL set"
fi
popd > /dev/null
fi

if [ "${EXPERIMENTAL_BUILD}" = "0" -a "${BUILD_KERNEL}" != "0" ]; then
pushd aosp/ > /dev/null
# Booting AOSP ToT does not always work; throw a warning to prevent this.
Expand Down

0 comments on commit 9343fc9

Please sign in to comment.