Merge "Exclude lib/arm(64) from the library absence check."
diff --git a/core/Makefile b/core/Makefile
index a04417e..5e9fb29 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -2195,6 +2195,15 @@
 # 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
@@ -2219,8 +2228,11 @@
 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; \