Backed out changesets 77fcbb01366c (bug 899792) and e7d81c2597f2 (bug 899241) for OSX bustage.
authorRyan VanderMeulen <ryanvm@gmail.com>
Tue, 30 Jul 2013 21:46:07 -0400
changeset 152967 aebee2f3b9b22529a2d3ad03f6ec6d8a7a76ac98
parent 152966 469af523851e336bb4df68aae55aa6e774a07a71
child 152968 a9e41a4c4ee4a65f5208c67a93e8f9319b12f360
push id2859
push userakeybl@mozilla.com
push dateMon, 16 Sep 2013 19:14:59 +0000
treeherdermozilla-beta@87d3c51cd2bf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs899792, 899241
milestone25.0a1
backs out77fcbb01366c192ba85567cf361de2a073eb45c3
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changesets 77fcbb01366c (bug 899792) and e7d81c2597f2 (bug 899241) for OSX bustage. CLOSED TREE
config/makefiles/nonrecursive.mk
config/makefiles/precompile/Makefile.in
config/makefiles/precompile/moz.build
dom/bindings/Makefile.in
ipc/ipdl/Makefile.in
js/src/config/makefiles/nonrecursive.mk
moz.build
python/mozbuild/mozbuild/action/process_install_manifest.py
python/mozbuild/mozbuild/controller/building.py
python/mozbuild/mozbuild/mach_commands.py
toolkit/toolkit.mozbuild
--- a/config/makefiles/nonrecursive.mk
+++ b/config/makefiles/nonrecursive.mk
@@ -14,55 +14,49 @@
 # NONRECURSIVE_TARGETS variable lists the make targets that modified. For
 # each target in this list, the NONRECURSIVE_TARGET_<target> variable will
 # contain a list of partial variable names. We will then look in variables
 # named NONRECURSIVE_TARGETS_<target>_<fragment>_* for information describing
 # how to evaluate non-recursive make targets.
 #
 # Targets are defined by the following variables:
 #
-#   FILE - The make file to evaluate. This is equivalent to
-#      |make -f <FILE>|
-#   DIRECTORY - The directory whose Makefile to evaluate. This is
-#      equivalent to |make -C <DIRECTORY>|.
+#   FILE - The make file to evaluate.
 #   TARGETS - Targets to evaluate in that make file.
 #
-# Only 1 of FILE or DIRECTORY may be defined.
-#
 # For example:
 #
 # NONRECURSIVE_TARGETS = export libs
 # NONRECURSIVE_TARGETS_export = headers
 # NONRECURSIVE_TARGETS_export_headers_FILE = /path/to/exports.mk
 # NONRECURSIVE_TARGETS_export_headers_TARGETS = $(DIST)/include/foo.h $(DIST)/include/bar.h
 # NONRECURSIVE_TARGETS_libs = cppsrcs
-# NONRECURSIVE_TARGETS_libs_cppsrcs_DIRECTORY = $(DEPTH)/foo
+# NONRECURSIVE_TARGETS_libs_cppsrcs_FILE = /path/to/compilation.mk
 # NONRECURSIVE_TARGETS_libs_cppsrcs_TARGETS = /path/to/foo.o /path/to/bar.o
 #
 # Will get turned into the following:
 #
 # exports::
-#     $(MAKE) -C $(DEPTH) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
+#     $(MAKE) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
 #
 # libs::
-#     $(MAKE) -C $(DEPTH)/foo /path/to/foo.o /path/to/bar.o
+#     $(MAKE) -f /path/to/compilation.mk /path/to/foo.o /path/to/bar.o
 
 ifndef INCLUDED_NONRECURSIVE_MK
 
 define define_nonrecursive_target
 $(1)::
-	$$(MAKE) -C $(or $(4),$$(DEPTH)) $(addprefix -f ,$(3)) $(2)
+	cd $$(DEPTH) && $$(MAKE) -f $(2) $(3)
 endef
 
 $(foreach target,$(NONRECURSIVE_TARGETS), \
     $(foreach entry,$(NONRECURSIVE_TARGETS_$(target)), \
         $(eval $(call define_nonrecursive_target, \
             $(target), \
-            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS), \
             $(NONRECURSIVE_TARGETS_$(target)_$(entry)_FILE), \
-            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_DIRECTORY), \
+            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS) \
         )) \
     ) \
 )
 
 INCLUDED_NONRECURSIVE_MK := 1
 endif
 
deleted file mode 100644
--- a/config/makefiles/precompile/Makefile.in
+++ /dev/null
@@ -1,34 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-# This make file defines the precompile tier. This tier effectively fans out
-# to other make files and specialized targets.
-
-DEPTH := @DEPTH@
-topsrcdir := @top_srcdir@
-srcdir := @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-SUPPRESS_DEFAULT_RULES := 1
-
-include $(topsrcdir)/config/rules.mk
-
-define make_subtier_dir
-@echo "BUILDSTATUS SUBTIER_START precompile $(1)"
-$(MAKE) -C $(2) $(3)
-@echo "BUILDSTATUS SUBTIER_FINISH precompile $(1)"
-
-endef
-
-export::
-	@echo "BUILDSTATUS SUBTIERS IPDL WebIDL"
-
-export:: ipdl webidl
-
-ipdl:
-	$(call make_subtier_dir,IPDL,$(DEPTH)/ipc/ipdl,ipdl)
-
-webidl:
-	$(call make_subtier_dir,WebIDL,$(DEPTH)/dom/bindings,webidl)
deleted file mode 100644
--- a/config/makefiles/precompile/moz.build
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
--- a/dom/bindings/Makefile.in
+++ b/dom/bindings/Makefile.in
@@ -237,24 +237,18 @@ GARBAGE += \
   $(binding_dependency_trackers) \
   $(NULL)
 
 # Make sure all binding header files are created during the export stage, so we
 # don't have issues with .cpp files being compiled before we've generated the
 # headers they depend on.  This is really only needed for the test files, since
 # the non-test headers are all exported above anyway.  Note that this means that
 # we do all of our codegen during export.
-webidl: $(binding_header_files)
+export:: $(binding_header_files)
 
 distclean::
 	-$(RM) \
         $(binding_header_files) \
         $(binding_cpp_files) \
         $(all_webidl_files) \
         $(globalgen_targets) \
         ParserResults.pkl \
         $(NULL)
-
-# This is only needed to support |make| from this leaf directory/Makefile.
-NONRECURSIVE_TARGETS := export
-NONRECURSIVE_TARGETS_export := webidl
-NONRECURSIVE_TARGETS_export_webidl_DIRECTORY := .
-NONRECURSIVE_TARGETS_export_webidl_TARGETS := webidl
--- a/ipc/ipdl/Makefile.in
+++ b/ipc/ipdl/Makefile.in
@@ -26,26 +26,20 @@ LOCAL_INCLUDES += -I$(DEPTH)/ipc/ipdl/_i
 
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/config/rules.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 
 # NB: the IPDL compiler manages .ipdl-->.h/.cpp dependencies itself,
 # which is why we don't have explicit .h/.cpp targets here
-ipdl: $(ALL_IPDLSRCS)
+export:: $(ALL_IPDLSRCS)
 	$(PYTHON) $(topsrcdir)/config/pythonpath.py \
 	  $(PLY_INCLUDE) \
 	  $(srcdir)/ipdl.py \
 	  --outheaders-dir=_ipdlheaders \
 	  --outcpp-dir=. \
 	  $(IPDLDIRS:%=-I%) \
 	  $^
 
 # We #include some things in the dom/plugins/ directory that rely on
 # toolkit libraries.
 CXXFLAGS    += $(TK_CFLAGS)
-
-# This is only needed to support |make| from this leaf directory/Makefile.
-NONRECURSIVE_TARGETS := export
-NONRECURSIVE_TARGETS_export := ipdl
-NONRECURSIVE_TARGETS_export_ipdl_DIRECTORY := .
-NONRECURSIVE_TARGETS_export_ipdl_TARGETS := ipdl
--- a/js/src/config/makefiles/nonrecursive.mk
+++ b/js/src/config/makefiles/nonrecursive.mk
@@ -14,55 +14,49 @@
 # NONRECURSIVE_TARGETS variable lists the make targets that modified. For
 # each target in this list, the NONRECURSIVE_TARGET_<target> variable will
 # contain a list of partial variable names. We will then look in variables
 # named NONRECURSIVE_TARGETS_<target>_<fragment>_* for information describing
 # how to evaluate non-recursive make targets.
 #
 # Targets are defined by the following variables:
 #
-#   FILE - The make file to evaluate. This is equivalent to
-#      |make -f <FILE>|
-#   DIRECTORY - The directory whose Makefile to evaluate. This is
-#      equivalent to |make -C <DIRECTORY>|.
+#   FILE - The make file to evaluate.
 #   TARGETS - Targets to evaluate in that make file.
 #
-# Only 1 of FILE or DIRECTORY may be defined.
-#
 # For example:
 #
 # NONRECURSIVE_TARGETS = export libs
 # NONRECURSIVE_TARGETS_export = headers
 # NONRECURSIVE_TARGETS_export_headers_FILE = /path/to/exports.mk
 # NONRECURSIVE_TARGETS_export_headers_TARGETS = $(DIST)/include/foo.h $(DIST)/include/bar.h
 # NONRECURSIVE_TARGETS_libs = cppsrcs
-# NONRECURSIVE_TARGETS_libs_cppsrcs_DIRECTORY = $(DEPTH)/foo
+# NONRECURSIVE_TARGETS_libs_cppsrcs_FILE = /path/to/compilation.mk
 # NONRECURSIVE_TARGETS_libs_cppsrcs_TARGETS = /path/to/foo.o /path/to/bar.o
 #
 # Will get turned into the following:
 #
 # exports::
-#     $(MAKE) -C $(DEPTH) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
+#     $(MAKE) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
 #
 # libs::
-#     $(MAKE) -C $(DEPTH)/foo /path/to/foo.o /path/to/bar.o
+#     $(MAKE) -f /path/to/compilation.mk /path/to/foo.o /path/to/bar.o
 
 ifndef INCLUDED_NONRECURSIVE_MK
 
 define define_nonrecursive_target
 $(1)::
-	$$(MAKE) -C $(or $(4),$$(DEPTH)) $(addprefix -f ,$(3)) $(2)
+	cd $$(DEPTH) && $$(MAKE) -f $(2) $(3)
 endef
 
 $(foreach target,$(NONRECURSIVE_TARGETS), \
     $(foreach entry,$(NONRECURSIVE_TARGETS_$(target)), \
         $(eval $(call define_nonrecursive_target, \
             $(target), \
-            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS), \
             $(NONRECURSIVE_TARGETS_$(target)_$(entry)_FILE), \
-            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_DIRECTORY), \
+            $(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS) \
         )) \
     ) \
 )
 
 INCLUDED_NONRECURSIVE_MK := 1
 endif
 
--- a/moz.build
+++ b/moz.build
@@ -21,8 +21,9 @@ if not CONFIG['LIBXUL_SDK']:
     if not CONFIG['MOZ_NATIVE_ZLIB']:
         add_tier_dir('base', ['modules/zlib'])
 
     add_tier_dir('base', ['mozglue', 'memory/mozalloc'])
 
 # Bring in the configuration for the configured application.
 if CONFIG['COMPILE_ENVIRONMENT']:
     include('/' + CONFIG['MOZ_BUILD_APP'] + '/app.mozbuild')
+
deleted file mode 100644
--- a/python/mozbuild/mozbuild/action/process_install_manifest.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-from __future__ import print_function, unicode_literals
-
-import argparse
-from mozpack.copier import FileCopier
-from mozpack.manifests import InstallManifest
-
-
-COMPLETE = 'From {dest}: Kept {existing} existing; Added/updated {updated}; ' \
-    'Removed {rm_files} files and {rm_dirs} directories.'
-
-
-def process_manifest(destdir, *paths):
-    manifest = InstallManifest()
-    for path in paths:
-        manifest |= InstallManifest(path=path)
-
-    copier = FileCopier()
-    manifest.populate_registry(copier)
-    return copier.copy(destdir)
-
-
-if __name__ == '__main__':
-    parser = argparse.ArgumentParser(
-        description='Process install manifest files.')
-
-    parser.add_argument('destdir', help='Destination directory.')
-    parser.add_argument('manifests', nargs='+', help='Path to manifest file(s).')
-
-    args = parser.parse_args()
-
-    result = process_manifest(args.destdir, *args.manifests)
-
-    print(COMPLETE.format(dest=args.destdir,
-        existing=result.existing_files_count,
-        updated=result.updated_files_count,
-        rm_files=result.removed_files_count,
-        rm_dirs=result.removed_directories_count))
--- a/python/mozbuild/mozbuild/controller/building.py
+++ b/python/mozbuild/mozbuild/controller/building.py
@@ -42,18 +42,16 @@ class BuildMonitor(object):
 
         self.tiers = []
         self.subtiers = []
         self.current_tier = None
         self.current_subtier = None
         self.current_tier_dirs = []
         self.current_tier_static_dirs = []
         self.current_subtier_dirs = []
-        self.current_subtier_started = set()
-        self.current_subtier_finished = set()
         self.current_tier_dir = None
         self.current_tier_dir_index = 0
 
         self.warnings_database = WarningsDatabase()
         if os.path.exists(warnings_path):
             try:
                 self.warnings_database.load_from_file(warnings_path)
             except ValueError:
@@ -104,38 +102,35 @@ class BuildMonitor(object):
             elif action == 'DIRS':
                 self.current_tier_dirs = args
                 update_needed = False
             elif action == 'TIER_START':
                 assert len(args) == 1
                 self.current_tier = args[0]
                 self.current_subtier = None
                 self.current_tier_dirs = []
-                self.current_subtier_started = set()
-                self.current_subtier_finished = set()
                 self.current_tier_dir = None
             elif action == 'TIER_FINISH':
                 assert len(args) == 1
                 assert args[0] == self.current_tier
             elif action == 'SUBTIER_START':
                 assert len(args) == 2
                 tier, subtier = args
                 assert tier == self.current_tier
                 self.current_subtier = subtier
                 if subtier == 'static':
                     self.current_subtier_dirs = self.current_tier_static_dirs
                 else:
                     self.current_subtier_dirs = self.current_tier_dirs
                 self.current_tier_dir_index = 0
-                self.current_subtier_started.add(subtier)
             elif action == 'SUBTIER_FINISH':
                 assert len(args) == 2
                 tier, subtier = args
                 assert tier == self.current_tier
-                self.current_subtier_finished.add(subtier)
+                assert subtier == self.current_subtier
             elif action == 'TIERDIR_START':
                 assert len(args) == 1
                 self.current_tier_dir = args[0]
                 self.current_tier_dir_index += 1
             elif action == 'TIERDIR_FINISH':
                 assert len(args) == 1
                 assert self.current_tier_dir == args[0]
             else:
--- a/python/mozbuild/mozbuild/mach_commands.py
+++ b/python/mozbuild/mozbuild/mach_commands.py
@@ -124,22 +124,24 @@ class BuildProgressFooter(object):
             if tier == self._monitor.current_tier:
                 parts.extend([('underline_yellow', tier), ' '])
                 current_encountered = True
             elif not current_encountered:
                 parts.extend([('green', tier), ' '])
             else:
                 parts.extend([tier, ' '])
 
+        current_encountered = False
         parts.extend([('bold', 'SUBTIER'), ':', ' '])
         for subtier in self._monitor.subtiers:
-            if subtier in self._monitor.current_subtier_finished:
+            if subtier == self._monitor.current_subtier:
+                parts.extend([('underline_yellow', subtier), ' '])
+                current_encountered = True
+            elif not current_encountered:
                 parts.extend([('green', subtier), ' '])
-            elif subtier in self._monitor.current_subtier_started:
-                parts.extend([('underline_yellow', subtier), ' '])
             else:
                 parts.extend([subtier, ' '])
 
         if self._monitor.current_subtier_dirs and self._monitor.current_tier_dir:
             parts.extend([
                 ('bold', 'DIRECTORIES'), ': ',
                 '%02d' % self._monitor.current_tier_dir_index,
                 '/',
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -4,18 +4,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 if CONFIG['LIBXUL_SDK']:
     error('toolkit.mozbuild is not compatible with --enable-libxul-sdk=')
 
 if not CONFIG['MOZ_NATIVE_NSPR']:
     add_tier_dir('nspr', 'config/nspr')
 
-add_tier_dir('precompile', 'config/makefiles/precompile')
-
 if not CONFIG['MOZ_NATIVE_SQLITE']:
     add_tier_dir('nss', 'db/sqlite3/src')
 
 if not CONFIG['MOZ_NATIVE_NSS']:
     add_tier_dir('nss', 'security/build')
 
 include('/config/js/js.mozbuild')