diff --git a/CleanSpec.mk b/CleanSpec.mk index 3ba1f45e93..1a84e8faf2 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -444,6 +444,12 @@ $(call add-clean-step, rm -f $(OUT_DIR)/host/common/obj/*/*_intermediates/java-s $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*/flat-res) +# Remove old VNDK directories without version +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/vndk) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/vndk-sp) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index 521d78d092..5e68d00026 100644 --- a/core/Makefile +++ b/core/Makefile @@ -175,9 +175,13 @@ INSTALLED_VENDOR_DEFAULT_PROP_TARGET := $(TARGET_OUT_VENDOR)/default.prop ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET) ifdef BOARD_VNDK_VERSION -FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=${BOARD_VNDK_VERSION} + ifeq ($(BOARD_VNDK_VERSION),current) + FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=$(PLATFORM_VNDK_VERSION) + else + FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=$(BOARD_VNDK_VERSION) + endif else -FINAL_VENDOR_DEFAULT_PROPERTIES := + FINAL_VENDOR_DEFAULT_PROPERTIES := endif FINAL_VENDOR_DEFAULT_PROPERTIES += \ $(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES)) diff --git a/core/envsetup.mk b/core/envsetup.mk index e220fae690..89a39a8f0f 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -292,7 +292,7 @@ endef ifdef BOARD_VNDK_VERSION ifneq ($(BOARD_VNDK_VERSION),current) - $(call check_vndk_version,$(BOARD_VNDK_VERSION)) + $(error BOARD_VNDK_VERSION: Only "current" is implemented) endif TARGET_VENDOR_TEST_SUFFIX := /vendor diff --git a/core/soong_config.mk b/core/soong_config.mk index f1f1e09511..b9b9cbe69b 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -112,6 +112,7 @@ $(call add_json_list, DeviceKernelHeaders, $(TARGET_PROJECT_SYSTEM $(call add_json_bool, DevicePrefer32BitExecutables, $(filter true,$(TARGET_PREFER_32_BIT_EXECUTABLES))) $(call add_json_val, DeviceUsesClang, $(if $(USE_CLANG_PLATFORM_BUILD),$(USE_CLANG_PLATFORM_BUILD),false)) $(call add_json_str, DeviceVndkVersion, $(BOARD_VNDK_VERSION)) +$(call add_json_str, Platform_vndk_version, $(PLATFORM_VNDK_VERSION)) $(call add_json_list, ExtraVndkVersions, $(PRODUCT_EXTRA_VNDK_VERSIONS)) $(call add_json_bool, Malloc_not_svelte, $(call invert_bool,$(filter true,$(MALLOC_SVELTE)))) $(call add_json_str, Override_rs_driver, $(OVERRIDE_RS_DRIVER)) diff --git a/core/version_defaults.mk b/core/version_defaults.mk index ca7401bd20..32d900319b 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -26,6 +26,7 @@ # BUILD_NUMBER # BUILD_DATETIME # PLATFORM_SECURITY_PATCH +# PLATFORM_VNDK_VERSION # # Look for an optional file containing overrides of the defaults, @@ -183,6 +184,23 @@ ifndef DEFAULT_APP_TARGET_SDK endif endif +ifndef PLATFORM_VNDK_VERSION + # This is the definition of the VNDK version for the current VNDK libraries. + # The version is only available when PLATFORM_VERSION_CODENAME == REL. + # Otherwise, it will be set to "current". The ABI is allowed to be changed + # only if PLATFORM_VNDK_VERSION == current. Once PLATFORM_VNDK_VERSION is set + # to actual version, the ABI for this version will be frozon and emit build + # errors if any ABI for the VNDK libs are changed. + # After that the snapshot of the VNDK with this version will be generated. + # + # The version follows PLATFORM_SDK_VERSION. + ifeq (REL,$(PLATFORM_VERSION_CODENAME)) + PLATFORM_VNDK_VERSION := $(PLATFORM_SDK_VERSION) + else + PLATFORM_VNDK_VERSION := current + endif +endif + ifndef PLATFORM_SECURITY_PATCH # Used to indicate the security patch that has been applied to the device. # It must signify that the build includes all security patches issued up through the designated Android Public Security Bulletin. diff --git a/target/product/vndk/Android.mk b/target/product/vndk/Android.mk index d2d9562821..ea8c95e1a0 100644 --- a/target/product/vndk/Android.mk +++ b/target/product/vndk/Android.mk @@ -1,25 +1,6 @@ ifneq ($(BOARD_VNDK_VERSION),) LOCAL_PATH:= $(call my-dir) -##################################################################### -# Setting the VNDK version. Version is 10000.0 for not-yet-published -# platform and xx.y for released platform. -vndk_major_ver := 10000 -vndk_minor_ver := 0 - -#TODO(b/68027291): Revive this check when we have stable VNDK in P or later. -#ifneq ($(vndk_major_ver), $(PLATFORM_SDK_VERSION)) -#$(error vndk_major_version does not match PLATFORM_SDK_VERSION, please update.) -#endif - -ifneq (REL,$(PLATFORM_VERSION_CODENAME)) - vndk_major_ver := 10000 - vndk_minor_ver := 0 -endif -PLATFORM_VNDK_VERSION := $(vndk_major_ver).$(vndk_minor_ver) -vndk_major_ver := -vndk_minor_ver := - ##################################################################### # Create the list of vndk libraries from the source code. INTERNAL_VNDK_LIB_LIST := $(call intermediates-dir-for,PACKAGING,vndk)/libs.txt