4873e65c8d
Previously, we only check VNDK core and vendor variants are identical when a VNDK library is not declared to have different variants AND the target has TARGET_VNDK_USE_CORE_VARIANT set. Therefore, it is fairly easily to break a TARGET_VNDK_USE_CORE_VARIANT target as it needs to be tested explicitly. This change uses the new LOCAL_CHECK_SAME_VNDK_VARIANTS and expands the check to run regardless of TARGET_VNDK_USE_CORE_VARIANT. Also adds support for VNDK-in-product. Bug: 145157349 Test: Build success for targets with and without TARGET_VNDK_USE_CORE_VARIANT. Test: With the corresponding change in build/make, remove libbinder from build/soong/cc/config/vndk.go and check build fails even when TARGET_VNDK_USE_CORE_VARIANT is not set. Change-Id: Iec708b971072e6580f77a03e243b30b89b3b054d
32 lines
771 B
Bash
Executable file
32 lines
771 B
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
STRIP_PATH="${1}"
|
|
CORE="${2}"
|
|
VENDOR="${3}"
|
|
|
|
TMPDIR="$(mktemp -d ${CORE}.vndk_lib_check.XXXXXXXX)"
|
|
stripped_core="${TMPDIR}/core"
|
|
stripped_vendor="${TMPDIR}/vendor"
|
|
|
|
function cleanup() {
|
|
rm -f "${stripped_core}" "${stripped_vendor}"
|
|
rmdir "${TMPDIR}"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
function strip_lib() {
|
|
${STRIP_PATH} \
|
|
-i ${1} \
|
|
-o ${2} \
|
|
-d /dev/null \
|
|
--remove-build-id
|
|
}
|
|
|
|
strip_lib ${CORE} ${stripped_core}
|
|
strip_lib ${VENDOR} ${stripped_vendor}
|
|
if ! cmp -s ${stripped_core} ${stripped_vendor}; then
|
|
echo "VNDK library not in vndkMustUseVendorVariantList but has different core and vendor variant: $(basename ${CORE})"
|
|
echo "If the two variants need to have different runtime behavior, consider using libvndksupport."
|
|
exit 1
|
|
fi
|