From b4e549bfb77d491072e85df3b6dbf4b47bbcca79 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm Date: Wed, 17 Apr 2019 19:23:05 -0700 Subject: [PATCH] Exclude lib/arm(64) from the library absence check. (cherry picked from commit 46552062093bcfeb99b198df96a2d22aebe3cf19) Test: m systemimage Test: build_test on Forrest Bug: 132289438 Merged-In: I5dfb534aa2bc24a8d0a75fde31b139a6ed86e6a5 Change-Id: Ied158548f391d67f44ca31b74a3711d1cb5216fe --- core/Makefile | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/core/Makefile b/core/Makefile index 93129df4b..84707bc6f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2283,6 +2283,15 @@ APEX_MODULE_LIBS += \ # still may create these libraries in /system (b/129006418). DISABLE_APEX_LIBS_ABSENCE_CHECK ?= +# Exclude lib/arm and lib/arm64 which contain the native bridge proxy libs. +# They are compiled for the guest architecture and used with an entirely +# different linker config. The native libs are then linked to as usual via +# exported interfaces, so the proxy libs do not violate the interface boundaries +# on the native architecture. +# TODO(b/130630776): Introduce a make variable for the appropriate directory +# when native bridge is active. +APEX_LIBS_ABSENCE_CHECK_EXCLUDE=lib/arm lib/arm64 + # If the check below fails, some library has ended up in system/lib or # system/lib64 that is intended to only go into some APEX package. The likely # cause is that a library or binary in /system has grown a dependency that @@ -2307,8 +2316,11 @@ DISABLE_APEX_LIBS_ABSENCE_CHECK ?= ifndef DISABLE_APEX_LIBS_ABSENCE_CHECK define check-apex-libs-absence $(hide) ( \ - cd $(TARGET_OUT); \ - findres=$$(find lib* -type f \( -false $(foreach lib,$(APEX_MODULE_LIBS),-o -name $(lib)) \) -print) || exit 1; \ + cd $(TARGET_OUT) && \ + findres=$$(find lib* \ + $(foreach dir,$(APEX_LIBS_ABSENCE_CHECK_EXCLUDE),-path $(dir) -prune -o) \ + -type f \( -false $(foreach lib,$(APEX_MODULE_LIBS),-o -name $(lib)) \) \ + -print) && \ if [ -n "$$findres" ]; then \ echo "APEX libraries found in system image (see comment in build/make/core/Makefile for details):" 1>&2; \ echo "$$findres" | sort 1>&2; \