From a6a1e0b2d26b8fc39b3c000904151676d55125b7 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 25 Apr 2018 14:36:00 -0700 Subject: [PATCH] Restore kernel requirements for frozen matrices. Requirements for legacy/1/2.xml has changed because android-base.cfg files are changed. These files should build from an older snapshot of the requirements. Fixes: 78576469 Test: builds Test: vts_treble_vintf_test Change-Id: I908ebbe495ae06f983ef983a1be7937cf6be1c12 Merged-In: I908ebbe495ae06f983ef983a1be7937cf6be1c12 --- compatibility_matrices/Android.mk | 53 +++++++++---------- compatibility_matrices/clear_vars.mk | 24 +++++++++ .../compatibility_matrix.mk | 40 ++++---------- 3 files changed, 59 insertions(+), 58 deletions(-) create mode 100644 compatibility_matrices/clear_vars.mk diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 49ece22bf6..bb41ac4faa 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -18,68 +18,64 @@ LOCAL_PATH := $(call my-dir) BUILD_FRAMEWORK_COMPATIBILITY_MATRIX := $(LOCAL_PATH)/compatibility_matrix.mk -# Clear potential input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX -LOCAL_ADD_VBMETA_VERSION := -LOCAL_ASSEMBLE_VINTF_ENV_VARS := -LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := -LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := -LOCAL_ASSEMBLE_VINTF_FLAGS := -LOCAL_KERNEL_VERSIONS := -LOCAL_GEN_FILE_DEPENDENCIES := +my_kernel_config_data := kernel/configs # Install all compatibility_matrix.*.xml to /system/etc/vintf - include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.legacy.xml LOCAL_MODULE_STEM := compatibility_matrix.legacy.xml LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) -LOCAL_KERNEL_VERSIONS := \ - 3.18.0 \ - 4.4.0 \ - 4.9.0 \ - 4.14.0 \ +LOCAL_KERNEL_CONFIG_DATA_PATHS := \ + 3.18.0:$(my_kernel_config_data)/o/android-3.18 \ + 4.4.0:$(my_kernel_config_data)/o/android-4.4 \ + 4.9.0:$(my_kernel_config_data)/o/android-4.9 \ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.1.xml LOCAL_MODULE_STEM := compatibility_matrix.1.xml LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) -LOCAL_KERNEL_VERSIONS := \ - 3.18.0 \ - 4.4.0 \ - 4.9.0 \ - 4.14.0 \ +LOCAL_KERNEL_CONFIG_DATA_PATHS := \ + 3.18.0:$(my_kernel_config_data)/o/android-3.18 \ + 4.4.0:$(my_kernel_config_data)/o/android-4.4 \ + 4.9.0:$(my_kernel_config_data)/o/android-4.9 \ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.2.xml LOCAL_MODULE_STEM := compatibility_matrix.2.xml LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) -LOCAL_KERNEL_VERSIONS := \ - 3.18.0 \ - 4.4.0 \ - 4.9.0 \ - 4.14.0 \ +LOCAL_KERNEL_CONFIG_DATA_PATHS := \ + 3.18.0:$(my_kernel_config_data)/o-mr1/android-3.18 \ + 4.4.0:$(my_kernel_config_data)/o-mr1/android-4.4 \ + 4.9.0:$(my_kernel_config_data)/o-mr1/android-4.9 \ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.current.xml LOCAL_MODULE_STEM := compatibility_matrix.current.xml LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) -LOCAL_KERNEL_VERSIONS := \ - 4.4.0 \ - 4.9.0 \ - 4.14.0 \ +LOCAL_KERNEL_CONFIG_DATA_PATHS := \ + 4.4.0:$(my_kernel_config_data)/android-4.4 \ + 4.9.0:$(my_kernel_config_data)/android-4.9 \ + 4.14.0:$(my_kernel_config_data)/android-4.14 \ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) +my_kernel_config_data := + # Framework Compatibility Matrix (common to all FCM versions) include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.device.xml LOCAL_MODULE_STEM := compatibility_matrix.device.xml # define LOCAL_MODULE_CLASS for local-generated-sources-dir. @@ -126,6 +122,7 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) # Framework Compatibility Matrix include $(CLEAR_VARS) +include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := framework_compatibility_matrix.xml LOCAL_MODULE_STEM := compatibility_matrix.xml LOCAL_MODULE_PATH := $(TARGET_OUT) diff --git a/compatibility_matrices/clear_vars.mk b/compatibility_matrices/clear_vars.mk new file mode 100644 index 0000000000..8fde301feb --- /dev/null +++ b/compatibility_matrices/clear_vars.mk @@ -0,0 +1,24 @@ +# +# Copyright (C) 2017 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Clear input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX +LOCAL_ADD_VBMETA_VERSION := +LOCAL_ASSEMBLE_VINTF_ENV_VARS := +LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := +LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := +LOCAL_ASSEMBLE_VINTF_FLAGS := +LOCAL_KERNEL_CONFIG_DATA_PATHS := +LOCAL_GEN_FILE_DEPENDENCIES := diff --git a/compatibility_matrices/compatibility_matrix.mk b/compatibility_matrices/compatibility_matrix.mk index 6dc2b4fb69..1b6fd3b489 100644 --- a/compatibility_matrices/compatibility_matrix.mk +++ b/compatibility_matrices/compatibility_matrix.mk @@ -14,17 +14,6 @@ # limitations under the License. # -########################################################### -## Remove minor revision from a kernel version. For example, -## 3.18.0 becomes 3.18. -## $(1): kernel version -########################################################### -define remove-minor-revision -$(strip $(subst $(space),.,$(wordlist 1,2,$(subst .,$(space),$(strip $(1)))))) -endef - -# $(warning $(call remove-minor-revision,3.18.0)) - ##### Input Variables: # LOCAL_MODULE: required. Module name for the build system. # LOCAL_MODULE_CLASS: optional. Default is ETC. @@ -42,8 +31,8 @@ endef # LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE: Add a list of environment variables that is local to # assemble_vintf invocation. Format is "VINTF_ENFORCE_NO_UNUSED_HALS=true". # LOCAL_ASSEMBLE_VINTF_FLAGS: Add additional command line arguments to assemble_vintf invocation. -# LOCAL_KERNEL_VERSIONS: Parse kernel configurations and add to the output matrix -# (corresponds to tags.) +# LOCAL_KERNEL_CONFIG_DATA_PATHS: Paths to search for kernel config requirements. Format for each is +# :. # LOCAL_GEN_FILE_DEPENDENCIES: A list of additional dependencies for the generated file. ifndef LOCAL_MODULE @@ -88,14 +77,13 @@ endif # BOARD_AVB_ENABLE $(GEN): PRIVATE_ENV_VARS += FRAMEWORK_VBMETA_VERSION endif # LOCAL_ADD_VBMETA_VERSION -ifneq (,$(strip $(LOCAL_KERNEL_VERSIONS))) -$(GEN): PRIVATE_KERNEL_CONFIG_DATA := kernel/configs -$(GEN): PRIVATE_KERNEL_VERSIONS := $(LOCAL_KERNEL_VERSIONS) -$(GEN): $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\ - $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(call remove-minor-revision,$(version))/android-base*.cfg)) -$(GEN): PRIVATE_FLAGS += $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\ - --kernel=$(version):$(call normalize-path-list,\ - $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(call remove-minor-revision,$(version))/android-base*.cfg))) +ifneq (,$(strip $(LOCAL_KERNEL_CONFIG_DATA_PATHS))) +$(GEN): PRIVATE_KERNEL_CONFIG_DATA_PATHS := $(LOCAL_KERNEL_CONFIG_DATA_PATHS) +$(GEN): $(foreach pair,$(PRIVATE_KERNEL_CONFIG_DATA_PATHS),\ + $(wildcard $(call word-colon,2,$(pair))/android-base*.cfg)) +$(GEN): PRIVATE_FLAGS += $(foreach pair,$(PRIVATE_KERNEL_CONFIG_DATA_PATHS),\ + --kernel=$(call word-colon,1,$(pair)):$(call normalize-path-list,\ + $(wildcard $(call word-colon,2,$(pair))/android-base*.cfg))) endif my_matrix_src_files := \ @@ -124,15 +112,7 @@ LOCAL_PREBUILT_MODULE_FILE := $(GEN) LOCAL_SRC_FILES := LOCAL_GENERATED_SOURCES := -LOCAL_ADD_VBMETA_VERSION := -LOCAL_ASSEMBLE_VINTF_ENV_VARS := -LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := -LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := -LOCAL_ASSEMBLE_VINTF_FLAGS := -LOCAL_KERNEL_VERSIONS := -LOCAL_GEN_FILE_DEPENDENCIES := +include $(LOCAL_PATH)/clear_vars.mk my_matrix_src_files := include $(BUILD_PREBUILT) - -remove-minor-revision :=