From 78549acb477c6dd0e0abba3184357280e7111c5a Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Fri, 2 Jun 2023 22:53:03 +0000 Subject: [PATCH] BOARD_VNDK_VERSION must be set first pass Removing all places that consider that this might not be set. Bug: 122954981 Test: build Change-Id: I62107d041410f4ee1d3652e394ed5e7688c12f25 --- core/binary.mk | 15 ++------------- core/board_config.mk | 24 +++++------------------- core/config.mk | 28 ++++++++++------------------ core/copy_headers.mk | 2 -- core/local_vndk.mk | 7 ------- target/product/gsi/Android.mk | 7 ------- 6 files changed, 17 insertions(+), 66 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index 579e6b54a0..e2e5be47fa 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1572,15 +1572,10 @@ ifdef LOCAL_USE_VNDK else ifdef LOCAL_SDK_VERSION my_target_global_c_includes := my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) -else ifdef BOARD_VNDK_VERSION - my_target_global_c_includes := $(SRC_HEADERS) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) - my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) else my_target_global_c_includes := $(SRC_HEADERS) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) - my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \ + my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) endif @@ -1667,14 +1662,8 @@ imported_includes := ifdef LOCAL_USE_VNDK imported_includes += $(call intermediates-dir-for,HEADER_LIBRARIES,device_kernel_headers,$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross)) -else ifdef LOCAL_SDK_VERSION - # Apps shouldn't need device-specific kernel headers -else ifdef BOARD_VNDK_VERSION - # For devices building with the VNDK, only the VNDK gets device-specific kernel headers by default - # In soong, it's entirely opt-in else - # For older non-VNDK builds, continue adding in kernel headers to everything like we used to - imported_includes += $(call intermediates-dir-for,HEADER_LIBRARIES,device_kernel_headers,$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross)) + # everything else should manually specify headers endif imported_includes := $(strip \ diff --git a/core/board_config.mk b/core/board_config.mk index f459d83728..663ec7c1cd 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -968,27 +968,13 @@ define check_vndk_version $(if $(wildcard $(vndk_path)/*/Android.bp),,$(error VNDK version $(1) not found)) endef -ifdef BOARD_VNDK_VERSION - ifeq ($(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION)) - $(error BOARD_VNDK_VERSION is equal to PLATFORM_VNDK_VERSION; use BOARD_VNDK_VERSION := current) - endif - ifneq ($(BOARD_VNDK_VERSION),current) - $(call check_vndk_version,$(BOARD_VNDK_VERSION)) - endif - TARGET_VENDOR_TEST_SUFFIX := /vendor -else - TARGET_VENDOR_TEST_SUFFIX := +ifeq ($(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION)) + $(error BOARD_VNDK_VERSION is equal to PLATFORM_VNDK_VERSION; use BOARD_VNDK_VERSION := current) endif - -# If PRODUCT_ENFORCE_INTER_PARTITION_JAVA_SDK_LIBRARY is set, -# BOARD_VNDK_VERSION must be set because PRODUCT_ENFORCE_INTER_PARTITION_JAVA_SDK_LIBRARY -# is a enforcement of inter-partition dependency, and it doesn't have any meaning -# when BOARD_VNDK_VERSION isn't set. -ifeq ($(PRODUCT_ENFORCE_INTER_PARTITION_JAVA_SDK_LIBRARY),true) - ifeq ($(BOARD_VNDK_VERSION),) - $(error BOARD_VNDK_VERSION must be set when PRODUCT_ENFORCE_INTER_PARTITION_JAVA_SDK_LIBRARY is true) - endif +ifneq ($(BOARD_VNDK_VERSION),current) + $(call check_vndk_version,$(BOARD_VNDK_VERSION)) endif +TARGET_VENDOR_TEST_SUFFIX := /vendor ########################################### # APEXes are by default not flattened, i.e. updatable. diff --git a/core/config.mk b/core/config.mk index c549296a02..519191773b 100644 --- a/core/config.mk +++ b/core/config.mk @@ -356,6 +356,16 @@ ANDROID_BUILDSPEC := $(TOPDIR)buildspec.mk endif -include $(ANDROID_BUILDSPEC) +# Starting in Android U, non-VNDK devices not supported +# WARNING: DO NOT CHANGE: if you are downstream of AOSP, and you change this, without +# letting upstream know it's important to you, we may do cleanup which breaks this +# significantly. Please let us know if you are changing this. +ifndef BOARD_VNDK_VERSION +# READ WARNING - DO NOT CHANGE +BOARD_VNDK_VERSION := current +# READ WARNING - DO NOT CHANGE +endif + # --------------------------------------------------------------- # Define most of the global variables. These are the ones that # are specific to the user's build configuration. @@ -775,24 +785,6 @@ ifeq ($(PRODUCT_FULL_TREBLE),true) BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED ?= true endif -# Starting in Android U, non-VNDK devices not supported -# WARNING: DO NOT CHANGE: if you are downstream of AOSP, and you change this, without -# letting upstream know it's important to you, we may do cleanup which breaks this -# significantly. Please let us know if you are changing this. -ifndef BOARD_VNDK_VERSION -# READ WARNING - DO NOT CHANGE -BOARD_VNDK_VERSION := current -# READ WARNING - DO NOT CHANGE -endif - -ifdef PRODUCT_PRODUCT_VNDK_VERSION - ifndef BOARD_VNDK_VERSION - # VNDK for product partition is not available unless BOARD_VNDK_VERSION - # defined. - $(error PRODUCT_PRODUCT_VNDK_VERSION cannot be defined without defining BOARD_VNDK_VERSION) - endif -endif - # Set BOARD_SYSTEMSDK_VERSIONS to the latest SystemSDK version starting from P-launching # devices if unset. ifndef BOARD_SYSTEMSDK_VERSIONS diff --git a/core/copy_headers.mk b/core/copy_headers.mk index 054d271d8d..c457eb0a42 100644 --- a/core/copy_headers.mk +++ b/core/copy_headers.mk @@ -18,11 +18,9 @@ include $(BUILD_SYSTEM)/local_vndk.mk # If we're using the VNDK, only vendor modules using the VNDK may use # LOCAL_COPY_HEADERS. Platform libraries will not have the include path # present. -ifdef BOARD_VNDK_VERSION ifndef LOCAL_USE_VNDK $(call pretty-error,Only vendor modules using LOCAL_USE_VNDK may use LOCAL_COPY_HEADERS) endif -endif # Clean up LOCAL_COPY_HEADERS_TO, since soong_ui will be comparing cleaned # paths to figure out which headers are obsolete and should be removed. diff --git a/core/local_vndk.mk b/core/local_vndk.mk index befbc59114..eb8f2c0a15 100644 --- a/core/local_vndk.mk +++ b/core/local_vndk.mk @@ -37,12 +37,5 @@ ifdef LOCAL_USE_VNDK $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must not be used with LOCAL_SDK_VERSION >&2) $(error done) endif - - # If we're not using the VNDK, drop all restrictions - ifndef BOARD_VNDK_VERSION - LOCAL_USE_VNDK:= - LOCAL_USE_VNDK_VENDOR:= - LOCAL_USE_VNDK_PRODUCT:= - endif endif diff --git a/target/product/gsi/Android.mk b/target/product/gsi/Android.mk index 107c94f685..86d4622bdb 100644 --- a/target/product/gsi/Android.mk +++ b/target/product/gsi/Android.mk @@ -33,9 +33,6 @@ ifeq ($(TARGET_IS_64_BIT)|$(TARGET_2ND_ARCH),true|) check-vndk-list: ; else ifeq ($(TARGET_SKIP_CURRENT_VNDK),true) check-vndk-list: ; -else ifeq ($(BOARD_VNDK_VERSION),) -# b/143233626 do not check vndk-list when vndk libs are not built -check-vndk-list: ; else check-vndk-list: $(check-vndk-list-timestamp) ifneq ($(SKIP_ABI_CHECKS),true) @@ -172,8 +169,6 @@ $(check-vndk-abi-dump-list-timestamp): ##################################################################### # VNDK package and snapshot. -ifneq ($(BOARD_VNDK_VERSION),) - include $(CLEAR_VARS) LOCAL_MODULE := vndk_package LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 @@ -214,8 +209,6 @@ include $(BUILD_PHONY_PACKAGE) _vndk_versions := -endif # BOARD_VNDK_VERSION is set - ##################################################################### # skip_mount.cfg, read by init to skip mounting some partitions when GSI is used.