Bug 1035543 - Remove the MOZ_PSEUDO_DERECURSE variable. r=gps

This commit is contained in:
Mike Hommey 2014-07-10 14:11:52 +09:00
Родитель 553122ad41
Коммит c52d31562a
10 изменённых файлов: 15 добавлений и 73 удалений

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

@ -167,7 +167,7 @@ endif
endif endif
default all:: default all::
$(call BUILDSTATUS,TIERS export $(if $(COMPILE_ENVIRONMENT),$(if $(MOZ_PSEUDO_DERECURSE),compile ))libs tools $(if $(MOZ_AUTOMATION),$(MOZ_AUTOMATION_TIERS))) $(call BUILDSTATUS,TIERS export $(if $(COMPILE_ENVIRONMENT),compile )libs tools $(if $(MOZ_AUTOMATION),$(MOZ_AUTOMATION_TIERS)))
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
@ -309,11 +309,9 @@ config/export:
endif endif
ifdef MOZ_PSEUDO_DERECURSE
# Interdependencies for parallel export. # Interdependencies for parallel export.
js/xpconnect/src/export: dom/bindings/export xpcom/xpidl/export js/xpconnect/src/export: dom/bindings/export xpcom/xpidl/export
accessible/xpcom/export: xpcom/xpidl/export accessible/xpcom/export: xpcom/xpidl/export
ifdef ENABLE_CLANG_PLUGIN ifdef ENABLE_CLANG_PLUGIN
js/src/export config/export: build/clang-plugin/export js/src/export config/export: build/clang-plugin/export
endif endif
endif

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

@ -184,10 +184,6 @@ fi
dnl A high level macro for selecting compiler options. dnl A high level macro for selecting compiler options.
AC_DEFUN([MOZ_COMPILER_OPTS], AC_DEFUN([MOZ_COMPILER_OPTS],
[ [
if test "${MOZ_PSEUDO_DERECURSE-unset}" = unset; then
MOZ_PSEUDO_DERECURSE=1
fi
MOZ_DEBUGGING_OPTS MOZ_DEBUGGING_OPTS
MOZ_RTTI MOZ_RTTI
if test "$CLANG_CXX"; then if test "$CLANG_CXX"; then

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

@ -209,5 +209,3 @@ MOZ_RUN_CONFIG_STATUS()],
define([AC_CONFIG_HEADER], define([AC_CONFIG_HEADER],
[m4_fatal([Use CONFIGURE_DEFINE_FILES in moz.build files to produce header files.]) [m4_fatal([Use CONFIGURE_DEFINE_FILES in moz.build files to produce header files.])
]) ])
AC_SUBST([MOZ_PSEUDO_DERECURSE])

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

@ -20,7 +20,6 @@ export
compile compile
Build the *compile* tier. The *compile* tier compiles all C/C++ files. Build the *compile* tier. The *compile* tier compiles all C/C++ files.
Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.
libs libs
Build the *libs* tier. The *libs* tier performs linking and performs Build the *libs* tier. The *libs* tier performs linking and performs
@ -36,7 +35,6 @@ binaries:
build, but allows for much faster rebuilds of C/C++ code. For performance build, but allows for much faster rebuilds of C/C++ code. For performance
reasons, however, it skips nss, nspr, icu and ffi. This is targeted to reasons, however, it skips nss, nspr, icu and ffi. This is targeted to
improve local developer workflow when touching C/C++ code. improve local developer workflow when touching C/C++ code.
Only applies to builds with ``MOZ_PSEUDO_DERECURSE``.
install-manifests install-manifests
Process install manifests. Install manifests handle the installation of Process install manifests. Install manifests handle the installation of

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

@ -29,21 +29,3 @@ MACH_NO_WRITE_TIMES
If defined, mach commands will not prefix output lines with the If defined, mach commands will not prefix output lines with the
elapsed time since program start. This option is equivalent to elapsed time since program start. This option is equivalent to
passing ``--log-no-times`` to mach. passing ``--log-no-times`` to mach.
MOZ_PSEUDO_DERECURSE
Activate an *experimental* build mode where make directory traversal
is derecursified. This mode should result in faster build times at
the expense of busted builds from time-to-time. The end goal is for
this build mode to be the default. At which time, this variable will
likely go away.
A value of ``1`` activates the mode with full optimizations.
A value of ``no-parallel-export`` activates the mode without
optimizations to the *export* tier, which are known to be slightly
buggy.
A value of ``no-skip`` activates the mode without optimizations to skip
some directories during traversal.
Values may be combined with a comma.

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

@ -198,11 +198,6 @@ endif
CONFIG_TOOLS = $(MOZ_BUILD_ROOT)/config CONFIG_TOOLS = $(MOZ_BUILD_ROOT)/config
AUTOCONF_TOOLS = $(topsrcdir)/build/autoconf AUTOCONF_TOOLS = $(topsrcdir)/build/autoconf
# Disable MOZ_PSEUDO_DERECURSE on PGO builds until it's fixed.
ifneq (,$(MOZ_PROFILE_USE)$(MOZ_PROFILE_GENERATE))
MOZ_PSEUDO_DERECURSE :=
endif
# #
# Strip off the excessively long version numbers on these platforms, # Strip off the excessively long version numbers on these platforms,
# but save the version to allow multiple versions of the same base # but save the version to allow multiple versions of the same base

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

@ -100,7 +100,6 @@ endif
endif # !NO_DIST_INSTALL endif # !NO_DIST_INSTALL
ifdef MOZ_PSEUDO_DERECURSE
BINARIES_INSTALL_TARGETS := $(foreach category,$(INSTALL_TARGETS),$(if $(filter binaries,$($(category)_TARGET)),$(category))) BINARIES_INSTALL_TARGETS := $(foreach category,$(INSTALL_TARGETS),$(if $(filter binaries,$($(category)_TARGET)),$(category)))
# Fill a dependency file with all the binaries installed somewhere in $(DIST) # Fill a dependency file with all the binaries installed somewhere in $(DIST)
@ -114,9 +113,4 @@ $(BINARIES_PP): Makefile $(wildcard backend.mk) $(call mkdir_deps,$(MDDEPDIR))
)\ )\
))binaries: Makefile $(wildcard backend.mk)' | tr % '\n' > $@ ))binaries: Makefile $(wildcard backend.mk)' | tr % '\n' > $@
else
binaries::
$(error The binaries target is not supported without MOZ_PSEUDO_DERECURSE)
endif
# EOF # EOF

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

@ -22,8 +22,7 @@ endif
# make -C foo/baz # make -C foo/baz
# make -C qux # make -C qux
# MOZ_PSEUDO_DERECURSE can have values other than 1. ifeq (.,$(DEPTH))
ifeq (1_.,$(if $(MOZ_PSEUDO_DERECURSE),1)_$(DEPTH))
include root.mk include root.mk
@ -106,6 +105,8 @@ $(addsuffix /$(CURRENT_TIER),$(filter-out config,$(CURRENT_DIRS))): config/$(CUR
endif endif
ifdef COMPILE_ENVIRONMENT ifdef COMPILE_ENVIRONMENT
# Disable dependency aggregation on PGO builds because of bug 934166.
ifeq (,$(MOZ_PGO)$(MOZ_PROFILE_USE)$(MOZ_PROFILE_GENERATE))
ifneq (,$(filter libs binaries,$(CURRENT_TIER))) ifneq (,$(filter libs binaries,$(CURRENT_TIER)))
# When doing a "libs" build, target_libs.mk ensures the interesting dependency data # When doing a "libs" build, target_libs.mk ensures the interesting dependency data
# is available in the "binaries" stamp. Once recursion is done, aggregate all that # is available in the "binaries" stamp. Once recursion is done, aggregate all that
@ -135,6 +136,8 @@ DIST_GARBAGE += binaries-deps.mk binaries-deps
endif endif
endif
else else
# Don't recurse if MAKELEVEL is NO_RECURSE_MAKELEVEL as defined above # Don't recurse if MAKELEVEL is NO_RECURSE_MAKELEVEL as defined above
@ -185,9 +188,7 @@ endif # ifdef TIERS
endif # ifeq ($(NO_RECURSE_MAKELEVEL),$(MAKELEVEL)) endif # ifeq ($(NO_RECURSE_MAKELEVEL),$(MAKELEVEL))
endif # ifeq (1_.,$(MOZ_PSEUDO_DERECURSE)_$(DEPTH)) endif # ifeq (.,$(DEPTH))
ifdef MOZ_PSEUDO_DERECURSE
ifdef COMPILE_ENVIRONMENT ifdef COMPILE_ENVIRONMENT
@ -204,13 +205,14 @@ ALL_DEP_FILES := \
endif endif
binaries libs:: $(TARGETS) $(BINARIES_PP) binaries libs:: $(TARGETS) $(BINARIES_PP)
# Disable dependency aggregation on PGO builds because of bug 934166.
ifeq (,$(MOZ_PGO)$(MOZ_PROFILE_USE)$(MOZ_PROFILE_GENERATE))
ifneq (.,$(DEPTH)) ifneq (.,$(DEPTH))
@$(if $^,$(call py_action,link_deps,-o binaries --group-all --topsrcdir $(topsrcdir) --topobjdir $(DEPTH) --dist $(DIST) $(ALL_DEP_FILES))) @$(if $^,$(call py_action,link_deps,-o binaries --group-all --topsrcdir $(topsrcdir) --topobjdir $(DEPTH) --dist $(DIST) $(ALL_DEP_FILES)))
endif endif
endif endif
endif # ifdef MOZ_PSEUDO_DERECURSE endif
recurse: recurse:
@$(RECURSED_COMMAND) @$(RECURSED_COMMAND)

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

@ -583,10 +583,8 @@ endif
# default rule before including rules.mk # default rule before including rules.mk
default all:: default all::
$(MAKE) export $(MAKE) export
ifdef MOZ_PSEUDO_DERECURSE
ifdef COMPILE_ENVIRONMENT ifdef COMPILE_ENVIRONMENT
$(MAKE) compile $(MAKE) compile
endif
endif endif
$(MAKE) libs $(MAKE) libs
$(MAKE) tools $(MAKE) tools

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

@ -320,13 +320,6 @@ class RecursiveMakeBackend(CommonBackend):
'tools': set(), 'tools': set(),
} }
derecurse = self.environment.substs.get('MOZ_PSEUDO_DERECURSE', '').split(',')
self._parallel_export = False
self._no_skip = False
if derecurse != ['']:
self._parallel_export = 'no-parallel-export' not in derecurse
self._no_skip = 'no-skip' in derecurse
def consume_object(self, obj): def consume_object(self, obj):
"""Write out build files necessary to build with recursive make.""" """Write out build files necessary to build with recursive make."""
@ -480,11 +473,10 @@ class RecursiveMakeBackend(CommonBackend):
convenience variables, and the other dependency definitions for a convenience variables, and the other dependency definitions for a
hopefully proper directory traversal. hopefully proper directory traversal.
""" """
if not self._no_skip: for tier, skip in self._may_skip.items():
for tier, skip in self._may_skip.items(): self.log(logging.DEBUG, 'fill_root_mk', {
self.log(logging.DEBUG, 'fill_root_mk', { 'number': len(skip), 'tier': tier
'number': len(skip), 'tier': tier }, 'Ignoring {number} directories during {tier}')
}, 'Ignoring {number} directories during {tier}')
# Traverse directories in parallel, and skip static dirs # Traverse directories in parallel, and skip static dirs
def parallel_filter(current, subdirs): def parallel_filter(current, subdirs):
@ -504,14 +496,6 @@ class RecursiveMakeBackend(CommonBackend):
current, parallel, sequential = parallel_filter(current, subdirs) current, parallel, sequential = parallel_filter(current, subdirs)
return current, subdirs.static + parallel, sequential return current, subdirs.static + parallel, sequential
# Skip static dirs during export traversal, or build everything in
# parallel when enabled.
def export_filter(current, subdirs):
if self._parallel_export:
return parallel_filter(current, subdirs)
return current, subdirs.parallel, \
subdirs.dirs + subdirs.tests + subdirs.tools
# Skip tools dirs during libs traversal. Because of bug 925236 and # Skip tools dirs during libs traversal. Because of bug 925236 and
# possible other unknown race conditions, don't parallelize the libs # possible other unknown race conditions, don't parallelize the libs
# tier. # tier.
@ -531,7 +515,7 @@ class RecursiveMakeBackend(CommonBackend):
# compile, binaries and tools tiers use the same traversal as export # compile, binaries and tools tiers use the same traversal as export
filters = { filters = {
'export': export_filter, 'export': parallel_filter,
'compile': compile_filter, 'compile': compile_filter,
'binaries': parallel_filter, 'binaries': parallel_filter,
'libs': libs_filter, 'libs': libs_filter,
@ -877,9 +861,6 @@ class RecursiveMakeBackend(CommonBackend):
if obj.is_tool_dir: if obj.is_tool_dir:
fh.write('IS_TOOL_DIR := 1\n') fh.write('IS_TOOL_DIR := 1\n')
if self._no_skip:
return
affected_tiers = set(obj.affected_tiers) affected_tiers = set(obj.affected_tiers)
# Until all SOURCES are really in moz.build, consider all directories # Until all SOURCES are really in moz.build, consider all directories
# building binaries to require a pass at compile, too. # building binaries to require a pass at compile, too.