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:
@@ -1415,9 +1415,22 @@ my_link_type := native:ndk
|
|||||||
my_warn_types :=
|
my_warn_types :=
|
||||||
my_allowed_types := native:ndk
|
my_allowed_types := native:ndk
|
||||||
else ifdef LOCAL_USE_VNDK
|
else ifdef LOCAL_USE_VNDK
|
||||||
my_link_type := native:vendor
|
_name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
|
||||||
my_warn_types :=
|
ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
|
||||||
my_allowed_types := native:vendor
|
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
|
else
|
||||||
my_link_type := native:platform
|
my_link_type := native:platform
|
||||||
my_warn_types :=
|
my_warn_types :=
|
||||||
|
@@ -116,7 +116,7 @@ my_allowed_types := native:ndk
|
|||||||
else
|
else
|
||||||
my_link_type := app:platform
|
my_link_type := app:platform
|
||||||
my_warn_types :=
|
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
|
endif
|
||||||
|
|
||||||
my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
|
my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
|
||||||
|
@@ -155,7 +155,16 @@ export_cflags :=
|
|||||||
ifdef LOCAL_SDK_VERSION
|
ifdef LOCAL_SDK_VERSION
|
||||||
my_link_type := native:ndk
|
my_link_type := native:ndk
|
||||||
else ifdef LOCAL_USE_VNDK
|
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
|
else
|
||||||
my_link_type := native:platform
|
my_link_type := native:platform
|
||||||
endif
|
endif
|
||||||
|
Reference in New Issue
Block a user