Backed out changeset 263e45bdcd59 (bug 1520393) for build bustages on memory/replace/logalloc/replay/target. CLOSED TREE
authorBrindusan Cristian <cbrindusan@mozilla.com>
Thu, 17 Jan 2019 09:15:11 +0200
changeset 511344 364d2be12e37dad192b71f732720f815c3313b32
parent 511343 263e45bdcd59a06a69caa935a5e8ab8d2dd2a1d1
child 511345 59696b74a507d82a85b8ca318cc9a100554038a2
push id10547
push userffxbld-merge
push dateMon, 21 Jan 2019 13:03:58 +0000
treeherdermozilla-beta@24ec1916bffe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1520393
milestone66.0a1
backs out263e45bdcd59a06a69caa935a5e8ab8d2dd2a1d1
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 changeset 263e45bdcd59 (bug 1520393) for build bustages on memory/replace/logalloc/replay/target. CLOSED TREE
build/moz.configure/memory.configure
--- a/build/moz.configure/memory.configure
+++ b/build/moz.configure/memory.configure
@@ -5,48 +5,67 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 @deprecated_option(env='MOZ_JEMALLOC4')
 def moz_jemalloc4(value):
     die('MOZ_JEMALLOC4 is deprecated')
 
 
-@depends(target)
-def jemalloc_default(target):
-    return target.kernel in ('Darwin', 'Linux', 'WINNT')
-
-
-js_option('--enable-jemalloc', env='MOZ_MEMORY', default=jemalloc_default,
-          help='{Replace|Do not replace} memory allocator with jemalloc')
+option('--enable-jemalloc', env='MOZ_MEMORY',
+       help='Replace memory allocator with jemalloc')
 
 
-set_config('MOZ_MEMORY', True, when='--enable-jemalloc')
-set_define('MOZ_MEMORY', True, when='--enable-jemalloc')
-add_old_configure_assignment('MOZ_MEMORY', True, when='--enable-jemalloc')
-
+@depends('--enable-jemalloc', target)
+def jemalloc(value, target):
+    if value.origin != 'default':
+        return bool(value) or None
 
-@depends(milestone, build_project)
-def replace_malloc_default(milestone, build_project):
-    if build_project == 'memory':
-        return True
-    if milestone.is_nightly and build_project != 'js':
+    if target.kernel in ('Darwin', 'Linux', 'WINNT'):
         return True
 
 
-js_option('--enable-replace-malloc', default=replace_malloc_default,
-          when='--enable-jemalloc',
-          help='{Enable|Disable} ability to dynamically replace the malloc implementation')
+set_config('MOZ_MEMORY', jemalloc)
+set_define('MOZ_MEMORY', jemalloc)
+add_old_configure_assignment('MOZ_MEMORY', jemalloc)
+
+
+# Because --enable-jemalloc doesn't use a default because of the dependency
+# on the target, we can't use a js_option for it to propagate to js/src
+# through the old-configure.
+@depends(jemalloc)
+def jemalloc_for_old_configure(jemalloc):
+    return '--%s-jemalloc' % ('enable' if jemalloc else 'disable')
+
+
+add_old_configure_arg(jemalloc_for_old_configure)
+
+
+option('--enable-replace-malloc',
+       help='Enable ability to dynamically replace the malloc implementation')
 
 
-set_config('MOZ_REPLACE_MALLOC', True, when='--enable-replace-malloc')
-set_define('MOZ_REPLACE_MALLOC', True, when='--enable-replace-malloc')
+@depends('--enable-replace-malloc', jemalloc, milestone, build_project)
+def replace_malloc(value, jemalloc, milestone, build_project):
+    # Enable on central for the debugging opportunities it adds.
+    if value and not jemalloc:
+        die('--enable-replace-malloc requires --enable-jemalloc')
+    if value.origin != 'default':
+        return bool(value) or None
+    if build_project == 'memory':
+        return True
+    if milestone.is_nightly and jemalloc and build_project != 'js':
+        return True
 
 
-@depends(build_project, when='--enable-replace-malloc')
-def replace_malloc_static(build_project):
+set_config('MOZ_REPLACE_MALLOC', replace_malloc)
+set_define('MOZ_REPLACE_MALLOC', replace_malloc)
+
+
+@depends(replace_malloc, build_project)
+def replace_malloc_static(replace_malloc, build_project):
     # Default to statically linking replace-malloc libraries that can be
     # statically linked, except when building with --enable-project=memory.
-    if build_project != 'memory':
+    if replace_malloc and build_project != 'memory':
         return True
 
 
 set_config('MOZ_REPLACE_MALLOC_STATIC', replace_malloc_static)