From c5b7c4fbefa83cf002c5f30c1b4646f35e718ca2 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Wed, 12 Jun 2019 05:59:53 +0000 Subject: [PATCH] Add dependencies on the toolchain (clang, etc) Historically, we've relied on the path to the clang compiler changing in order to trigger rebuilds instead of direct dependencies on the compiler itself. That's somewhat more reliable, since the actual $(CLANG) file is often a script that doesn't actually change during every update. In Soong, we've added the dependency anyway, so do it here as well. This makes it easier for my RBE experiments to identify when we intend to use clang and to send the entire compiler. Test: treehugger Test: build a system image with RBE, find that every command that needed the compiler gets it. Change-Id: I3838b5d77884394a8c0f7a1ba133142102602084 --- core/binary.mk | 22 +++++++++++----------- core/definitions.mk | 8 ++++---- core/executable_internal.mk | 4 ++-- core/host_executable_internal.mk | 2 +- core/shared_library_internal.mk | 2 +- core/static_library_internal.mk | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index a420c02d83..ad848626c2 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -876,7 +876,7 @@ $(dotdot_objects) $(cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) ifneq ($(strip $(cpp_objects)),) $(cpp_objects): $(intermediates)/%.o: \ $(TOPDIR)$(LOCAL_PATH)/%$(LOCAL_CPP_EXTENSION) \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)cpp-to-o) $(call include-depfiles-for-objs, $(cpp_objects)) endif @@ -897,7 +897,7 @@ $(gen_cpp_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(gen_cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(gen_cpp_objects): $(intermediates)/%.o: \ $(intermediates)/%$(LOCAL_CPP_EXTENSION) \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)cpp-to-o) $(call include-depfiles-for-objs, $(gen_cpp_objects)) endif @@ -912,7 +912,7 @@ $(call track-gen-file-obj,$(gen_S_sources),$(gen_S_objects)) ifneq ($(strip $(gen_S_sources)),) $(gen_S_objects): $(intermediates)/%.o: $(intermediates)/%.S \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) $(call include-depfiles-for-objs, $(gen_S_objects)) endif @@ -923,7 +923,7 @@ $(call track-gen-file-obj,$(gen_s_sources),$(gen_s_objects)) ifneq ($(strip $(gen_s_objects)),) $(gen_s_objects): $(intermediates)/%.o: $(intermediates)/%.s \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) endif @@ -961,7 +961,7 @@ $(dotdot_objects) $(c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) ifneq ($(strip $(c_objects)),) $(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)c-to-o) $(call include-depfiles-for-objs, $(c_objects)) endif @@ -981,7 +981,7 @@ ifneq ($(strip $(gen_c_objects)),) $(gen_c_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(gen_c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)c-to-o) $(call include-depfiles-for-objs, $(gen_c_objects)) endif @@ -997,7 +997,7 @@ $(call track-src-file-obj,$(objc_sources),$(objc_objects)) ifneq ($(strip $(objc_objects)),) my_soong_problems += objc $(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)m-to-o) $(call include-depfiles-for-objs, $(objc_objects)) endif @@ -1012,7 +1012,7 @@ $(call track-src-file-obj,$(objcpp_sources),$(objcpp_objects)) ifneq ($(strip $(objcpp_objects)),) $(objcpp_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.mm \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG_CXX) $(transform-$(PRIVATE_HOST)mm-to-o) $(call include-depfiles-for-objs, $(objcpp_objects)) endif @@ -1036,7 +1036,7 @@ $(call track-src-file-obj,$(dotdot_sources),$(dotdot_objects_S)) ifneq ($(strip $(asm_objects_S)),) $(asm_objects_S): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.S \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) $(call include-depfiles-for-objs, $(asm_objects_S)) endif @@ -1056,7 +1056,7 @@ $(call track-src-file-obj,$(dotdot_sources),$(dotdot_objects_s)) ifneq ($(strip $(asm_objects_s)),) $(asm_objects_s): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.s \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(CLANG) $(transform-$(PRIVATE_HOST)s-to-o) endif @@ -1069,7 +1069,7 @@ asm_sources_asm := $(filter %.asm,$(my_src_files)) ifneq ($(strip $(asm_sources_asm)),) asm_objects_asm := $(addprefix $(intermediates)/,$(asm_sources_asm:.asm=.o)) $(asm_objects_asm): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.asm \ - $(my_additional_dependencies) + $(my_additional_dependencies) $(YASM) $(transform-asm-to-o) $(call track-src-file-obj,$(asm_sources_asm),$(asm_objects_asm)) diff --git a/core/definitions.mk b/core/definitions.mk index dfb1b7d3f2..e1977ba9b2 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1365,7 +1365,7 @@ DOTDOT_REPLACEMENT := dotdot/ # $(3): the variable name to collect the output object file. define compile-dotdot-cpp-file o := $(intermediates)/$(patsubst %$(LOCAL_CPP_EXTENSION),%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG_CXX) $$(transform-$$(PRIVATE_HOST)cpp-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1378,7 +1378,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-c-file o := $(intermediates)/$(patsubst %.c,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)c-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1391,7 +1391,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-s-file o := $(intermediates)/$(patsubst %.S,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)s-to-o) $$(call include-depfiles-for-objs, $$(o)) $(3) += $$(o) @@ -1404,7 +1404,7 @@ endef # $(3): the variable name to collect the output object file. define compile-dotdot-s-file-no-deps o := $(intermediates)/$(patsubst %.s,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1))) -$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) +$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2) $(CLANG) $$(transform-$$(PRIVATE_HOST)s-to-o) $(3) += $$(o) endef diff --git a/core/executable_internal.mk b/core/executable_internal.mk index c28c144f67..c913a41d4f 100644 --- a/core/executable_internal.mk +++ b/core/executable_internal.mk @@ -74,11 +74,11 @@ $(linked_module): PRIVATE_TARGET_CRTEND_O := $(my_target_crtend_o) $(linked_module): PRIVATE_POST_LINK_CMD := $(LOCAL_POST_LINK_CMD) ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true) -$(linked_module): $(my_target_crtbegin_static_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) +$(linked_module): $(my_target_crtbegin_static_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) $(CLANG_CXX) $(transform-o-to-static-executable) $(PRIVATE_POST_LINK_CMD) else -$(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) +$(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries) $(my_target_crtend_o) $(my_target_libcrt_builtins) $(my_target_libgcc) $(my_target_libatomic) $(CLANG_CXX) $(transform-o-to-executable) $(PRIVATE_POST_LINK_CMD) endif diff --git a/core/host_executable_internal.mk b/core/host_executable_internal.mk index e72c4192bd..0cf62a4323 100644 --- a/core/host_executable_internal.mk +++ b/core/host_executable_internal.mk @@ -39,7 +39,7 @@ $(LOCAL_BUILT_MODULE): PRIVATE_RPATHS := ../$(my_libdir) $(my_libdir) endif my_libdir := -$(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) +$(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) $(CLANG_CXX) $(transform-host-o-to-executable) endif # skip_build_from_source diff --git a/core/shared_library_internal.mk b/core/shared_library_internal.mk index 44bb0203bb..746cb722ab 100644 --- a/core/shared_library_internal.mk +++ b/core/shared_library_internal.mk @@ -73,7 +73,7 @@ $(linked_module): \ $(my_target_libcrt_builtins) \ $(my_target_libgcc) \ $(my_target_libatomic) \ - $(LOCAL_ADDITIONAL_DEPENDENCIES) + $(LOCAL_ADDITIONAL_DEPENDENCIES) $(CLANG_CXX) $(transform-o-to-shared-lib) ifeq ($(my_native_coverage),true) diff --git a/core/static_library_internal.mk b/core/static_library_internal.mk index 6b4d22f129..17731e4e3c 100644 --- a/core/static_library_internal.mk +++ b/core/static_library_internal.mk @@ -21,7 +21,7 @@ endif include $(BUILD_SYSTEM)/binary.mk $(LOCAL_BUILT_MODULE) : $(built_whole_libraries) -$(LOCAL_BUILT_MODULE) : $(all_objects) +$(LOCAL_BUILT_MODULE) : $(all_objects) $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_AR) $(transform-o-to-static-lib) ifeq ($(NATIVE_COVERAGE),true)