From 893fca6e4634dbb4f093fced955970fcb44acb31 Mon Sep 17 00:00:00 2001 From: Jae Shin Date: Thu, 28 Dec 2017 16:00:10 +0900 Subject: [PATCH 1/2] Additionally package TARGET_2ND_ARCH variants Redefine VNDK snapshot top level dir with $(TARGET_PRODUCT) and additionally package TARGET_2ND_ARCH build variants of libs since they are needed by 32bit processes running on a 64bit device. Test: m -j vndk dist Bug: 71370248 Change-Id: I8c6953f1b52b61caf413559bab56b294479b6d86 --- core/tasks/vndk.mk | 61 +++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/core/tasks/vndk.mk b/core/tasks/vndk.mk index e42e0bd049..125ef7ea84 100644 --- a/core/tasks/vndk.mk +++ b/core/tasks/vndk.mk @@ -75,13 +75,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)) @@ -140,40 +137,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 @@ -206,13 +204,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 @@ -232,12 +229,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 # PLATFORM_VNDK_VERSION is NOT set From 240d97a249286d5a3e90f9c77a497c0431e9d392 Mon Sep 17 00:00:00 2001 From: Jae Shin Date: Fri, 29 Dec 2017 15:21:14 +0900 Subject: [PATCH 2/2] Apply snapshot variant to vndk package module name VNDK snapshot phony package, vndk_v$VER, is redefined to separate phony packages per VNDK snapshot build variant, vndk_v$VER_$VARIANT, where $VARIANT is defined as the primary $TARGET_ARCH of the build target. Accordingly, top level Android.bp file under prebuilts/vndk/v$VER is redefined as separate Android.bp files for each snapshot variant at prebuilts/vndk/v$VER/$VARIANT/Android.bp. Test: m -j PRODUCT_EXTRA_VNDK_VERSIONS=27 (after installing snapshot to prebuilts/vndk/v27) Bug: 71370248 Change-Id: Ida449978090fe8a4f16376c991d34fa0945be596 --- core/envsetup.mk | 2 +- target/product/vndk/Android.mk | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index 89a39a8f0f..255c02b692 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/target/product/vndk/Android.mk b/target/product/vndk/Android.mk index ea8c95e1a0..a134d020b0 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