diff --git a/core/envsetup.mk b/core/envsetup.mk index 89a39a8f0..255c02b69 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -287,7 +287,7 @@ endif # Check BOARD_VNDK_VERSION define check_vndk_version $(eval vndk_path := prebuilts/vndk/v$(1)) \ - $(if $(wildcard $(vndk_path)/Android.bp),,$(error VNDK version $(1) not found)) + $(if $(wildcard $(vndk_path)/*/Android.bp),,$(error VNDK version $(1) not found)) endef ifdef BOARD_VNDK_VERSION diff --git a/core/tasks/vndk.mk b/core/tasks/vndk.mk index c2dadbd2c..3604aedf4 100644 --- a/core/tasks/vndk.mk +++ b/core/tasks/vndk.mk @@ -78,13 +78,10 @@ ifeq (,$(filter libclang_rt.ubsan%,$(VNDK_CORE_LIBRARIES))) else vndk_core_libs := $(addsuffix .vendor,$(filter-out libclang_rt.ubsan%,$(VNDK_CORE_LIBRARIES))) - # for TARGET_ARCH vndk_core_libs += $(call clang-ubsan-vndk-core) - - # TODO(b/69834489): Package additional arch variants - # ifdef TARGET_2ND_ARCH - # vndk_core_libs += $(call clang-ubsan-vndk-core,true) - # endif + ifdef TARGET_2ND_ARCH + vndk_core_libs += $(call clang-ubsan-vndk-core,true) + endif endif vndk_sp_libs := $(addsuffix .vendor,$(VNDK_SAMEPROCESS_LIBRARIES)) @@ -143,40 +140,41 @@ vndk_snapshot_configs := \ ####################################### # vndk_snapshot_zip -vndk_snapshot_arch := $(vndk_snapshot_out)/arch-$(TARGET_ARCH)-$(TARGET_ARCH_VARIANT) +vndk_snapshot_variant := $(vndk_snapshot_out)/$(TARGET_ARCH) +vndk_lib_dir := $(vndk_snapshot_variant)/arch-$(TARGET_ARCH)-$(TARGET_ARCH_VARIANT) +vndk_lib_dir_2nd := $(vndk_snapshot_variant)/arch-$(TARGET_2ND_ARCH)-$(TARGET_2ND_ARCH_VARIANT) vndk_snapshot_zip := $(PRODUCT_OUT)/android-vndk-$(TARGET_ARCH).zip $(vndk_snapshot_zip): PRIVATE_VNDK_SNAPSHOT_OUT := $(vndk_snapshot_out) -$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT := $(vndk_snapshot_arch)/shared/vndk-core +$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT := $(vndk_lib_dir)/shared/vndk-core $(vndk_snapshot_zip): PRIVATE_VNDK_CORE_INTERMEDIATES := \ $(call paths-of-intermediates,$(foreach lib,$(vndk_core_libs),$(lib):$(lib).so),SHARED_LIBRARIES) -$(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT := $(vndk_snapshot_arch)/shared/vndk-sp +$(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT := $(vndk_lib_dir)/shared/vndk-sp $(vndk_snapshot_zip): PRIVATE_VNDK_SP_INTERMEDIATES := \ $(call paths-of-intermediates,$(foreach lib,$(vndk_sp_libs),$(lib):$(lib).so),SHARED_LIBRARIES) -$(vndk_snapshot_zip): PRIVATE_CONFIGS_OUT := $(vndk_snapshot_arch)/configs +$(vndk_snapshot_zip): PRIVATE_CONFIGS_OUT := $(vndk_snapshot_variant)/configs $(vndk_snapshot_zip): PRIVATE_CONFIGS_INTERMEDIATES := \ $(call paths-of-intermediates,$(foreach txt,$(vndk_prebuilt_txts), \ $(txt):$(patsubst %.txt,%.$(PLATFORM_VNDK_VERSION).txt,$(txt))),ETC) \ $(vndk_snapshot_configs) -$(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_OUT := $(vndk_snapshot_arch)/NOTICE_FILES +$(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_OUT := $(vndk_snapshot_variant)/NOTICE_FILES $(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_INTERMEDIATES := \ $(call paths-of-notice-files,$(vndk_core_libs),vndk) \ $(call paths-of-notice-files,$(vndk_sp_libs),vndk-sp) -# TODO(b/69834489): Package additional arch variants -# ifdef TARGET_2ND_ARCH -# vndk_snapshot_arch_2ND := $(vndk_snapshot_out)/arch-$(TARGET_2ND_ARCH)-$(TARGET_2ND_ARCH_VARIANT) -# $(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT_2ND := $(vndk_snapshot_arch_2ND)/shared/vndk-core -# $(vndk_snapshot_zip): PRIVATE_VNDK_CORE_INTERMEDIATES_2ND := \ -# $(call paths-of-intermediates,$(foreach lib,$(vndk_core_libs),$(lib):$(lib).so),SHARED_LIBRARIES,true) -# $(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT_2ND := $(vndk_snapshot_arch_2ND)/shared/vndk-sp -# $(vndk_snapshot_zip): PRIVATE_VNDK_SP_INTERMEDIATES_2ND := \ -# $(call paths-of-intermediates,$(foreach lib,$(vndk_sp_libs),$(lib):$(lib).so),SHARED_LIBRARIES,true) -# endif +ifdef TARGET_2ND_ARCH +$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT_2ND := $(vndk_lib_dir_2nd)/shared/vndk-core +$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_INTERMEDIATES_2ND := \ + $(call paths-of-intermediates,$(foreach lib,$(vndk_core_libs),$(lib):$(lib).so),SHARED_LIBRARIES,true) + +$(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT_2ND := $(vndk_lib_dir_2nd)/shared/vndk-sp +$(vndk_snapshot_zip): PRIVATE_VNDK_SP_INTERMEDIATES_2ND := \ + $(call paths-of-intermediates,$(foreach lib,$(vndk_sp_libs),$(lib):$(lib).so),SHARED_LIBRARIES,true) +endif # Args # $(1): destination directory @@ -209,13 +207,12 @@ $(vndk_snapshot_zip): $(vndk_snapshot_dependencies) $(SOONG_ZIP) $(PRIVATE_CONFIGS_OUT),$(PRIVATE_CONFIGS_INTERMEDIATES)) $(call private-copy-vndk-intermediates, \ $(PRIVATE_NOTICE_FILES_OUT),$(PRIVATE_NOTICE_FILES_INTERMEDIATES)) -# TODO(b/69834489): Package additional arch variants -# ifdef TARGET_2ND_ARCH -# $(call private-copy-vndk-intermediates, \ -# $(PRIVATE_VNDK_CORE_OUT_2ND),$(PRIVATE_VNDK_CORE_INTERMEDIATES_2ND)) -# $(call private-copy-vndk-intermediates, \ -# $(PRIVATE_VNDK_SP_OUT_2ND),$(PRIVATE_VNDK_SP_INTERMEDIATES_2ND)) -# endif +ifdef TARGET_2ND_ARCH + $(call private-copy-vndk-intermediates, \ + $(PRIVATE_VNDK_CORE_OUT_2ND),$(PRIVATE_VNDK_CORE_INTERMEDIATES_2ND)) + $(call private-copy-vndk-intermediates, \ + $(PRIVATE_VNDK_SP_OUT_2ND),$(PRIVATE_VNDK_SP_INTERMEDIATES_2ND)) +endif $(hide) $(SOONG_ZIP) -o $@ -C $(PRIVATE_VNDK_SNAPSHOT_OUT) -D $(PRIVATE_VNDK_SNAPSHOT_OUT) .PHONY: vndk @@ -235,12 +232,10 @@ vndk_snapshot_configs := vndk_snapshot_top := vndk_snapshot_out := vndk_snapshot_configs_out := -vndk_snapshot_arch := +vndk_snapshot_variant := +vndk_lib_dir := +vndk_lib_dir_2nd := vndk_snapshot_dependencies := -# TODO(b/69834489): Package additional arch variants -# ifdef TARGET_2ND_ARCH -# vndk_snapshot_arch_2ND := -# endif else # BOARD_VNDK_RUNTIME_DISABLE is set to 'true' error_msg := "CANNOT generate VNDK snapshot. BOARD_VNDK_RUNTIME_DISABLE must not be set to 'true'." diff --git a/target/product/vndk/Android.mk b/target/product/vndk/Android.mk index ea8c95e1a..a134d020b 100644 --- a/target/product/vndk/Android.mk +++ b/target/product/vndk/Android.mk @@ -94,9 +94,9 @@ LOCAL_REQUIRED_MODULES := \ vndk_current else LOCAL_REQUIRED_MODULES := \ - vndk_v$(BOARD_VNDK_VERSION) + vndk_v$(BOARD_VNDK_VERSION)_$(TARGET_ARCH) endif LOCAL_REQUIRED_MODULES += \ - $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),vndk_v$(vndk_ver)) + $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),vndk_v$(vndk_ver)_$(TARGET_ARCH)) include $(BUILD_PHONY_PACKAGE) endif # BOARD_VNDK_VERSION is set