From dd5401713c038e368497dbaa87978bd042fa7f56 Mon Sep 17 00:00:00 2001 From: Justin Yun Date: Mon, 20 Jan 2020 07:39:41 +0000 Subject: [PATCH] Revert "Linktype check for native:product" This reverts commit 4e7e76fe5a19996ad02f7260ef81c780b41f1a99. Reason for revert: build breaks (bid: 6147225) and postsubmit test fails. There are some modules that have both "product_specific: true" and "vendor_available: true", which tags the module as "native:product" unintentionally. We need to clean up these cases first and revisit this CL. Bug: 146620523 Bug: 147987741 Change-Id: Ib07543235d72a135b6b732aaa909c147d2df832b --- core/base_rules.mk | 32 ++++++++----------- core/binary.mk | 52 ++++++++++--------------------- core/cc_prebuilt_internal.mk | 16 ++-------- core/install_jni_libs_internal.mk | 4 +-- core/local_vndk.mk | 10 ++---- core/soong_cc_prebuilt.mk | 7 +---- 6 files changed, 36 insertions(+), 85 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 998453364..6b80a1580 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -800,28 +800,22 @@ ifdef LOCAL_IS_HOST_MODULE my_required_modules += $(LOCAL_REQUIRED_MODULES_$($(my_prefix)OS)) endif -########################################################################## -## When compiling against the VNDK, add the .vendor or .product suffix to -## required modules. -########################################################################## +############################################################################### +## When compiling against the VNDK, add the .vendor suffix to required modules. +############################################################################### ifneq ($(LOCAL_USE_VNDK),) - ##################################################### - ## Soong modules may be built three times, once for - ## /system, once for /vendor and once for /product. - ## If we're using the VNDK, switch all soong - ## libraries over to the /vendor or /product variant. - ##################################################### + #################################################### + ## Soong modules may be built twice, once for /system + ## and once for /vendor. If we're using the VNDK, + ## switch all soong libraries over to the /vendor + ## variant. + #################################################### ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) # We don't do this renaming for soong-defined modules since they already - # have correct names (with .vendor or .product suffix when necessary) in - # their LOCAL_*_LIBRARIES. - ifeq ($(LOCAL_PRODUCT_MODULE),true) - my_required_modules := $(foreach l,$(my_required_modules),\ - $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l))) - else - my_required_modules := $(foreach l,$(my_required_modules),\ - $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) - endif + # have correct names (with .vendor suffix when necessary) in their + # LOCAL_*_LIBRARIES. + my_required_modules := $(foreach l,$(my_required_modules),\ + $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) endif endif diff --git a/core/binary.mk b/core/binary.mk index d6cdf463b..560fff753 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1145,35 +1145,22 @@ endif ## When compiling against the VNDK, use LL-NDK libraries ########################################################### ifneq ($(LOCAL_USE_VNDK),) - ##################################################### - ## Soong modules may be built three times, once for - ## /system, once for /vendor and once for /product. - ## If we're using the VNDK, switch all soong - ## libraries over to the /vendor or /product variant. - ##################################################### - ifeq ($(LOCAL_PRODUCT_MODULE),true) - my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\ - $(if $(SPLIT_PRODUCT.STATIC_LIBRARIES.$(l)),$(l).product,$(l))) - my_static_libraries := $(foreach l,$(my_static_libraries),\ - $(if $(SPLIT_PRODUCT.STATIC_LIBRARIES.$(l)),$(l).product,$(l))) - my_shared_libraries := $(foreach l,$(my_shared_libraries),\ - $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l))) - my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\ - $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l))) - my_header_libraries := $(foreach l,$(my_header_libraries),\ - $(if $(SPLIT_PRODUCT.HEADER_LIBRARIES.$(l)),$(l).product,$(l))) - else - my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\ - $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) - my_static_libraries := $(foreach l,$(my_static_libraries),\ - $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) - my_shared_libraries := $(foreach l,$(my_shared_libraries),\ - $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) - my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\ - $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) - my_header_libraries := $(foreach l,$(my_header_libraries),\ - $(if $(SPLIT_VENDOR.HEADER_LIBRARIES.$(l)),$(l).vendor,$(l))) - endif + #################################################### + ## Soong modules may be built twice, once for /system + ## and once for /vendor. If we're using the VNDK, + ## switch all soong libraries over to the /vendor + ## variant. + #################################################### + my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\ + $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) + my_static_libraries := $(foreach l,$(my_static_libraries),\ + $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) + my_shared_libraries := $(foreach l,$(my_shared_libraries),\ + $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) + my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\ + $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) + my_header_libraries := $(foreach l,$(my_header_libraries),\ + $(if $(SPLIT_VENDOR.HEADER_LIBRARIES.$(l)),$(l).vendor,$(l))) endif # Platform can use vendor public libraries. If a required shared lib is one of @@ -1220,7 +1207,6 @@ my_warn_types := $(my_warn_ndk_types) my_allowed_types := $(my_allowed_ndk_types) else ifdef LOCAL_USE_VNDK _name := $(patsubst %.vendor,%,$(LOCAL_MODULE)) - _name := $(patsubst %.product,%,$(LOCAL_MODULE)) ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),) ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),) my_link_type := native:vndk @@ -1229,12 +1215,6 @@ else ifdef LOCAL_USE_VNDK endif my_warn_types := my_allowed_types := native:vndk native:vndk_private - else ifeq ($(LOCAL_PRODUCT_MODULE),true) - # Modules installed to /product cannot directly depend on modules marked - # with vendor_available: false - my_link_type := native:product - my_warn_types := - my_allowed_types := native:product native:vndk native:platform_vndk else # Modules installed to /vendor cannot directly depend on modules marked # with vendor_available: false diff --git a/core/cc_prebuilt_internal.mk b/core/cc_prebuilt_internal.mk index 378483b63..6313019eb 100644 --- a/core/cc_prebuilt_internal.mk +++ b/core/cc_prebuilt_internal.mk @@ -85,7 +85,6 @@ ifdef LOCAL_SDK_VERSION my_link_type := native:ndk:$(my_ndk_stl_family):$(my_ndk_stl_link_type) else ifdef LOCAL_USE_VNDK _name := $(patsubst %.vendor,%,$(LOCAL_MODULE)) - _name := $(patsubst %.product,%,$(LOCAL_MODULE)) ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),) ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),) my_link_type := native:vndk @@ -93,11 +92,7 @@ else ifdef LOCAL_USE_VNDK my_link_type := native:vndk_private endif else - ifeq ($(LOCAL_PRODUCT_MODULE),true) - my_link_type := native:product - else - my_link_type := native:vendor - endif + my_link_type := native:vendor endif else ifneq ($(filter $(TARGET_RECOVERY_OUT)/%,$(LOCAL_MODULE_PATH)),) my_link_type := native:recovery @@ -141,13 +136,8 @@ include $(BUILD_SYSTEM)/cxx_stl_setup.mk ifdef my_shared_libraries ifdef LOCAL_USE_VNDK - ifeq ($(LOCAL_PRODUCT_MODULE),true) - my_shared_libraries := $(foreach l,$(my_shared_libraries),\ - $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l))) - else - my_shared_libraries := $(foreach l,$(my_shared_libraries),\ - $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) - endif + my_shared_libraries := $(foreach l,$(my_shared_libraries),\ + $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) endif $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \ $(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(my_shared_libraries)) diff --git a/core/install_jni_libs_internal.mk b/core/install_jni_libs_internal.mk index d87513bd0..25a16a373 100644 --- a/core/install_jni_libs_internal.mk +++ b/core/install_jni_libs_internal.mk @@ -106,13 +106,11 @@ ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),) my_allowed_types := $(my_allowed_ndk_types) ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_PROPRIETARY_MODULE))) my_allowed_types += native:vendor native:vndk native:platform_vndk - else ifeq ($(LOCAL_PRODUCT_MODULE),true) - my_allowed_types += native:product native:vndk native:platform_vndk endif else my_link_type := app:platform my_warn_types := $(my_warn_ndk_types) - my_allowed_types := $(my_allowed_ndk_types) native:platform native:product native:vendor native:vndk native:vndk_private native:platform_vndk + my_allowed_types := $(my_allowed_ndk_types) native:platform native:vendor native:vndk native:vndk_private native:platform_vndk endif my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES)) diff --git a/core/local_vndk.mk b/core/local_vndk.mk index 91b5eb442..198e3615b 100644 --- a/core/local_vndk.mk +++ b/core/local_vndk.mk @@ -1,9 +1,9 @@ -#Set LOCAL_USE_VNDK for modules going into product, vendor or odm partition, except for host modules +#Set LOCAL_USE_VNDK for modules going into vendor or odm partition, except for host modules #If LOCAL_SDK_VERSION is set, thats a more restrictive set, so they dont need LOCAL_USE_VNDK ifndef LOCAL_IS_HOST_MODULE ifndef LOCAL_SDK_VERSION - ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE) $(LOCAL_PRODUCT_MODULE))) + ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE))) LOCAL_USE_VNDK:=true # Note: no need to check LOCAL_MODULE_PATH* since LOCAL_[VENDOR|ODM|OEM]_MODULE is already # set correctly before this is included. @@ -34,11 +34,5 @@ ifdef LOCAL_USE_VNDK ifndef BOARD_VNDK_VERSION LOCAL_USE_VNDK:= endif - - ifndef PRODUCT_PRODUCT_VNDK_VERSION - ifneq (,$(filter true,$(LOCAL_PRODUCT_MODULE))) - LOCAL_USE_VNDK := - endif - endif endif diff --git a/core/soong_cc_prebuilt.mk b/core/soong_cc_prebuilt.mk index 8ea1e5067..b095b7c38 100644 --- a/core/soong_cc_prebuilt.mk +++ b/core/soong_cc_prebuilt.mk @@ -75,13 +75,8 @@ endif ifdef LOCAL_USE_VNDK ifneq ($(LOCAL_VNDK_DEPEND_ON_CORE_VARIANT),true) name_without_suffix := $(patsubst %.vendor,%,$(LOCAL_MODULE)) - ifneq ($(name_without_suffix),$(LOCAL_MODULE)) + ifneq ($(name_without_suffix),$(LOCAL_MODULE) SPLIT_VENDOR.$(LOCAL_MODULE_CLASS).$(name_without_suffix) := 1 - else - name_without_suffix := $(patsubst %.product,%,$(LOCAL_MODULE)) - ifneq ($(name_without_suffix),$(LOCAL_MODULE)) - SPLIT_PRODUCT.$(LOCAL_MODULE_CLASS).$(name_without_suffix) := 1 - endif endif name_without_suffix := endif