Prevent vendor libs from depending on private VNDK libraries
For module installed to /vendor partition, direct linking to the libs marked as `vendor_available: false` is not allowed. The Bug: 64730695 Test: Add vendor_available: false to libft2 and libcompiler_rt. Add the two libs into LOCAL_SHARED_LIBRARIES of a vendor lib (e.g. libdrm). Build fails with the link_type check error message. Change-Id: Iaf23574ceddb0c087111e1d95997e9ddd60cdf87
This commit is contained in:
parent
0c0e2b0779
commit
a3fb1588f4
3 changed files with 27 additions and 5 deletions
|
@ -1415,9 +1415,22 @@ my_link_type := native:ndk
|
|||
my_warn_types :=
|
||||
my_allowed_types := native:ndk
|
||||
else ifdef LOCAL_USE_VNDK
|
||||
my_link_type := native:vendor
|
||||
my_warn_types :=
|
||||
my_allowed_types := native:vendor
|
||||
_name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
|
||||
ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
|
||||
ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
|
||||
my_link_type := native:vndk
|
||||
else
|
||||
my_link_type := native:vndk_private
|
||||
endif
|
||||
my_warn_types :=
|
||||
my_allowed_types := native:vndk native:vndk_private
|
||||
else
|
||||
# Modules installed to /vendor cannot directly depend on modules marked
|
||||
# with vendor_available: false
|
||||
my_link_type := native:vendor
|
||||
my_warn_types :=
|
||||
my_allowed_types := native:vendor native:vndk
|
||||
endif
|
||||
else
|
||||
my_link_type := native:platform
|
||||
my_warn_types :=
|
||||
|
|
|
@ -116,7 +116,7 @@ my_allowed_types := native:ndk
|
|||
else
|
||||
my_link_type := app:platform
|
||||
my_warn_types :=
|
||||
my_allowed_types := native:ndk native:platform native:vendor
|
||||
my_allowed_types := native:ndk native:platform native:vendor native:vndk native:vndk_private
|
||||
endif
|
||||
|
||||
my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
|
||||
|
|
|
@ -155,7 +155,16 @@ export_cflags :=
|
|||
ifdef LOCAL_SDK_VERSION
|
||||
my_link_type := native:ndk
|
||||
else ifdef LOCAL_USE_VNDK
|
||||
my_link_type := native:vendor
|
||||
_name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
|
||||
ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
|
||||
ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
|
||||
my_link_type := native:vndk
|
||||
else
|
||||
my_link_type := native:vndk_private
|
||||
endif
|
||||
else
|
||||
my_link_type := native:vendor
|
||||
endif
|
||||
else
|
||||
my_link_type := native:platform
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue