8313374: --enable-ccache's CCACHE_BASEDIR breaks builds

Reviewed-by: erikj
This commit is contained in:
Jan Kratochvil 2023-08-23 06:26:18 +00:00 committed by Yuri Nesterenko
parent d1de3d082e
commit 571c435e1a

View File

@ -215,7 +215,21 @@ DEPENDENCY_TARGET_SED_PATTERN := \
# The fix-deps-file macro is used to adjust the contents of the generated make # The fix-deps-file macro is used to adjust the contents of the generated make
# dependency files to contain paths compatible with make. # dependency files to contain paths compatible with make.
# #
REWRITE_PATHS_RELATIVE = false
ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-) ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-)
REWRITE_PATHS_RELATIVE = true
endif
# CCACHE_BASEDIR needs fix-deps-file as makefiles use absolute filenames for
# object files while CCACHE_BASEDIR will make ccache relativize all paths for
# its compiler. The compiler then produces relative dependency files.
# make does not know a relative and absolute filename is the same so it will
# ignore such dependencies.
ifneq ($(CCACHE), )
REWRITE_PATHS_RELATIVE = true
endif
ifeq ($(REWRITE_PATHS_RELATIVE), true)
# Need to handle -I flags as both '-Ifoo' and '-I foo'. # Need to handle -I flags as both '-Ifoo' and '-I foo'.
MakeCommandRelative = \ MakeCommandRelative = \
$(CD) $(WORKSPACE_ROOT) && \ $(CD) $(WORKSPACE_ROOT) && \