diff --git a/core/config.mk b/core/config.mk index ee1ce4e038..e975214991 100644 --- a/core/config.mk +++ b/core/config.mk @@ -997,6 +997,16 @@ endif # PRODUCT_USE_DYNAMIC_PARTITIONS # Set up final options. # ############################################################### +# We run gcc/clang with PWD=/proc/self/cwd to remove the $TOP +# from the debug output. That way two builds in two different +# directories will create the same output. +# /proc doesn't exist on Darwin. +ifeq ($(HOST_OS),linux) +RELATIVE_PWD := PWD=/proc/self/cwd +else +RELATIVE_PWD := +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/definitions.mk b/core/definitions.mk index 0a65a157bc..bfbeee3a34 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1179,7 +1179,7 @@ define transform-cpp-to-o @echo "$($(PRIVATE_PREFIX)DISPLAY) $(PRIVATE_ARM_MODE) C++: $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(if $(PRIVATE_TIDY_CHECKS),$(clang-tidy-cpp)) -$(hide) $(PRIVATE_CXX) \ +$(hide) $(RELATIVE_PWD) $(PRIVATE_CXX) \ $(transform-cpp-to-o-compiler-args) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< endef @@ -1225,7 +1225,7 @@ define transform-c-to-o @echo "$($(PRIVATE_PREFIX)DISPLAY) $(PRIVATE_ARM_MODE) C: $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(if $(PRIVATE_TIDY_CHECKS),$(clang-tidy-c)) -$(hide) $(PRIVATE_CC) \ +$(hide) $(RELATIVE_PWD) $(PRIVATE_CC) \ $(transform-c-to-o-compiler-args) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< endef @@ -1234,7 +1234,7 @@ endif define transform-s-to-o @echo "$($(PRIVATE_PREFIX)DISPLAY) asm: $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) -$(PRIVATE_CC) \ +$(RELATIVE_PWD) $(PRIVATE_CC) \ $(call transform-c-or-s-to-o-compiler-args, $(PRIVATE_ASFLAGS)) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< endef @@ -1293,7 +1293,7 @@ define transform-host-cpp-to-o @echo "$($(PRIVATE_PREFIX)DISPLAY) C++: $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(if $(PRIVATE_TIDY_CHECKS),$(clang-tidy-host-cpp)) -$(hide) $(PRIVATE_CXX) \ +$(hide) $(RELATIVE_PWD) $(PRIVATE_CXX) \ $(transform-host-cpp-to-o-compiler-args) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< endef @@ -1316,7 +1316,7 @@ endef # $(1): extra flags define transform-host-c-or-s-to-o @mkdir -p $(dir $@) -$(hide) $(PRIVATE_CC) \ +$(hide) $(RELATIVE_PWD) $(PRIVATE_CC) \ $(transform-host-c-or-s-to-o-common-args) \ $(1) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< @@ -1343,7 +1343,7 @@ define transform-host-c-to-o @echo "$($(PRIVATE_PREFIX)DISPLAY) C: $(PRIVATE_MODULE) <= $<" @mkdir -p $(dir $@) $(if $(PRIVATE_TIDY_CHECKS), $(clang-tidy-host-c)) -$(hide) $(PRIVATE_CC) \ +$(hide) $(RELATIVE_PWD) $(PRIVATE_CC) \ $(transform-host-c-to-o-compiler-args) \ -MD -MF $(patsubst %.o,%.d,$@) -o $@ $< endef diff --git a/core/rbe.mk b/core/rbe.mk index 90375c7de3..91606d4004 100644 --- a/core/rbe.mk +++ b/core/rbe.mk @@ -57,7 +57,7 @@ ifneq ($(filter-out false,$(USE_RBE)),) java_r8_d8_platform := $(platform),Pool=java16 RBE_WRAPPER := $(rbe_dir)/rewrapper - RBE_CXX := --labels=type=compile,lang=cpp,compiler=clang --exec_strategy=$(cxx_rbe_exec_strategy) --platform=$(cxx_platform) --compare=$(cxx_compare) + RBE_CXX := --labels=type=compile,lang=cpp,compiler=clang --env_var_allowlist=PWD --exec_strategy=$(cxx_rbe_exec_strategy) --platform=$(cxx_platform) --compare=$(cxx_compare) # Append rewrapper to existing *_WRAPPER variables so it's possible to # use both ccache and rewrapper.