Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3fb1588 authored by Jiyong Park's avatar Jiyong Park
Browse files

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
parent 0c0e2b07
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -1415,9 +1415,22 @@ my_link_type := native:ndk
my_warn_types :=
my_allowed_types := native:ndk
else ifdef LOCAL_USE_VNDK
    _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
        my_allowed_types := native:vendor native:vndk
    endif
else
my_link_type := native:platform
my_warn_types :=
+1 −1
Original line number Diff line number Diff line
@@ -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))
+10 −1
Original line number Diff line number Diff line
@@ -155,7 +155,16 @@ export_cflags :=
ifdef LOCAL_SDK_VERSION
my_link_type := native:ndk
else ifdef LOCAL_USE_VNDK
    _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