From e6bd1d2060a8b176a8fd72ec34367f6507bc9336 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Thu, 30 Apr 2020 21:18:58 -0700 Subject: [PATCH] Remove TARGET_PROJECT[_SYSTEM]_INCLUDES Everything should be getting device specific kernel headers from the device_kernel_headers header library these days. This does change the behavior of system libraries on devices using the VNDK -- they no longer get device-specific kernel headers by default, as we generally expect the system image to be device-independent. The few libraries that may still need this can use: LOCAL_HEADER_LIBRARIES += device_kernel_headers Test: treehugger Change-Id: I90ccb921d58b8d27dd0118a974202696e0af745f --- core/binary.mk | 41 ++++++++++++++++++++++++----------------- core/config.mk | 16 ++++++---------- core/soong_config.mk | 2 +- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index 0582920c14..b14d8b82bf 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1570,28 +1570,22 @@ my_ldlibs += $(my_cxx_ldlibs) ## Define PRIVATE_ variables from global vars ########################################################### ifndef LOCAL_IS_HOST_MODULE + ifdef LOCAL_USE_VNDK -my_target_global_c_includes := \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) -my_target_global_c_system_includes := \ - $(TARGET_OUT_HEADERS) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) + my_target_global_c_includes := + my_target_global_c_system_includes := $(TARGET_OUT_HEADERS) 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) + 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)PROJECT_INCLUDES) \ + 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)PROJECT_SYSTEM_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)PROJECT_INCLUDES) \ + 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) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ + my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) endif @@ -1674,9 +1668,22 @@ endif #################################################### ## Import includes #################################################### +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)) +endif + imported_includes := $(strip \ - $(if $(LOCAL_USE_VNDK),\ - $(call intermediates-dir-for,HEADER_LIBRARIES,device_kernel_headers,$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))) \ + $(imported_includes) \ $(foreach l, $(installed_shared_library_module_names), \ $(call intermediates-dir-for,SHARED_LIBRARIES,$(l),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))) \ $(foreach l, $(my_static_libraries) $(my_whole_static_libraries), \ diff --git a/core/config.mk b/core/config.mk index 69e2b5c960..8910c11664 100644 --- a/core/config.mk +++ b/core/config.mk @@ -135,6 +135,12 @@ $(KATI_obsolete_var \ LOCAL_IS_AUX_MODULE \ ,AUX support has been removed) $(KATI_obsolete_var HOST_OUT_TEST_CONFIG TARGET_OUT_TEST_CONFIG LOCAL_TEST_CONFIG_OPTIONS) +$(KATI_obsolete_var \ + TARGET_PROJECT_INCLUDES \ + 2ND_TARGET_PROJECT_INCLUDES \ + TARGET_PROJECT_SYSTEM_INCLUDES \ + 2ND_TARGET_PROJECT_SYSTEM_INCLUDES \ + ,Project include variables have been removed) # Used to force goals to build. Only use for conditionally defined goals. .PHONY: FORCE @@ -1057,16 +1063,6 @@ else RELATIVE_PWD := endif -TARGET_PROJECT_INCLUDES := -TARGET_PROJECT_SYSTEM_INCLUDES := \ - $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) \ - $(TARGET_PRODUCT_KERNEL_HEADERS) - -ifdef TARGET_2ND_ARCH -$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES := $(TARGET_PROJECT_INCLUDES) -$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_SYSTEM_INCLUDES := $(TARGET_PROJECT_SYSTEM_INCLUDES) -endif - # Flags for DEX2OAT first_non_empty_of_three = $(if $(1),$(1),$(if $(2),$(2),$(3))) DEX2OAT_TARGET_ARCH := $(TARGET_ARCH) diff --git a/core/soong_config.mk b/core/soong_config.mk index cbc2dd1f4d..aa20eeb280 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -121,7 +121,7 @@ $(call add_json_bool, SamplingPGO, $(filter true,$(SAMPLIN $(call add_json_bool, ArtUseReadBarrier, $(call invert_bool,$(filter false,$(PRODUCT_ART_USE_READ_BARRIER)))) $(call add_json_bool, Binder32bit, $(BINDER32BIT)) $(call add_json_str, BtConfigIncludeDir, $(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR)) -$(call add_json_list, DeviceKernelHeaders, $(TARGET_PROJECT_SYSTEM_INCLUDES)) +$(call add_json_list, DeviceKernelHeaders, $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) $(TARGET_PRODUCT_KERNEL_HEADERS)) $(call add_json_bool, DevicePrefer32BitApps, $(filter true,$(TARGET_PREFER_32_BIT_APPS))) $(call add_json_bool, DevicePrefer32BitExecutables, $(filter true,$(TARGET_PREFER_32_BIT_EXECUTABLES))) $(call add_json_str, DeviceVndkVersion, $(BOARD_VNDK_VERSION))