зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1035543 - Remove the MOZ_PSEUDO_DERECURSE variable. r=gps
This commit is contained in:
Родитель
553122ad41
Коммит
c52d31562a
|
@ -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.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче