Bug 1435498 - Change how Make depend files are included. r=froydnj

Make depend files related to object files are only really useful when
the corresponding build targets are being processed. OTOH, when they are
included too broadly, when the build recurses in the same directory for
different targets (e.g. target-objects, target, host-objects and/or
host), it is possible for one of them to start creating depend files
that the others would end up reading, and those reads might be
incomplete, possibly leading to build failures because Make think it's
malformed.

So, we only include the object files's depend files in when Make is
explicitly treating a target that will build objects.

Differential Revision: https://phabricator.services.mozilla.com/D42766

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Mike Hommey 2019-08-21 12:27:49 +00:00
Родитель b94d261b88
Коммит 58d070f0bd
1 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -1044,16 +1044,17 @@ endif
# dependency directory in the object directory, where we really need
# it.
ifneq (,$(filter-out all chrome default export realchrome clean clobber clobber_all distclean realclean,$(MAKECMDGOALS)))
MDDEPEND_FILES := $(strip $(wildcard $(addprefix $(MDDEPDIR)/,$(addsuffix .pp,$(notdir $(sort $(OBJS) $(PROGOBJS) $(HOST_OBJS) $(HOST_PROGOBJS)))))))
_MDDEPEND_FILES :=
ifneq (,$(MDDEPEND_FILES))
-include $(MDDEPEND_FILES)
ifneq (,$(filter target-objects target all default,$(MAKECMDGOALS)))
_MDDEPEND_FILES += $(addsuffix .pp,$(notdir $(sort $(OBJS) $(PROGOBJS))))
endif
ifneq (,$(filter host-objects host all default,$(MAKECMDGOALS)))
_MDDEPEND_FILES += $(addsuffix .pp,$(notdir $(sort $(HOST_OBJS) $(HOST_PROGOBJS))))
endif
MDDEPEND_FILES := $(strip $(wildcard $(addprefix $(MDDEPDIR)/,$(EXTRA_MDDEPEND_FILES))))
MDDEPEND_FILES := $(strip $(wildcard $(addprefix $(MDDEPDIR)/,$(_MDDEPEND_FILES) $(EXTRA_MDDEPEND_FILES))))
ifneq (,$(MDDEPEND_FILES))
-include $(MDDEPEND_FILES)