From 9d27901e4a27a670ede3ce1c517bf111ae746c30 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Thu, 6 Aug 2020 18:02:31 +0000 Subject: [PATCH] Add more details to divergent vndk lib error. Bash better broadcast better build-backstop baggage because baffled beings' bewilderement begets badness. Fixes: 162379658 Test: view error by removing "libbinder" from VndkMustUseVendorVariantList. Change-Id: Ib425e30bc7b5388b78af4bfab84dd24072d550a6 --- tools/check_identical_lib.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/check_identical_lib.sh b/tools/check_identical_lib.sh index c3aa41a722..c9f436f0bb 100755 --- a/tools/check_identical_lib.sh +++ b/tools/check_identical_lib.sh @@ -26,7 +26,19 @@ function strip_lib() { 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." + echo "ERROR: VNDK library $(basename ${CORE%.so}) has different core and" \ + "vendor variants! This means that the copy used in the system.img/etc" \ + "and vendor.img/etc images are different. In order to preserve space on" \ + "some devices, it is helpful if they are the same. Frequently, " \ + "libraries are different because they or their dependencies compile" \ + "things based on the macro '__ANDROID_VNDK__' or they specify custom" \ + "options under 'target: { vendor: { ... } }'. Here are some possible" \ + "resolutions:" + echo "ERROR: 1). Remove differences, possibly using the libvndksupport" \ + "function android_is_in_vendor_process in order to turn this into a" \ + "runtime difference." + echo "ERROR: 2). Add the library to the VndkMustUseVendorVariantList" \ + "variable in build/soong/cc/config/vndk.go, which is used to" \ + "acknowledge this difference." exit 1 fi