Remove support for making jemalloc4 the default memory allocator.

This commit is contained in:
wolfbeast 2018-04-27 13:56:47 +02:00 • committed by Roy Tam
commit 797ca533f9
12 changed files with 32 additions and 439 deletions

View file

@ -8,7 +8,7 @@ if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
# Run jemalloc configure script
if test "$MOZ_MEMORY" && test -n "$MOZ_JEMALLOC4" -o -n "$MOZ_REPLACE_MALLOC"; then
if test "$MOZ_MEMORY" && test -n "$MOZ_REPLACE_MALLOC"; then
ac_configure_args="--build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_ --disable-valgrind"
# We're using memalign for _aligned_malloc in memory/build/mozmemory_wrap.c
# on Windows, so just export memalign on all platforms.
@ -22,41 +22,8 @@ if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
ac_configure_args="$ac_configure_args --enable-ivsalloc"
fi
fi
if test -n "$MOZ_JEMALLOC4"; then
case "${OS_ARCH}" in
WINNT|Darwin)
# We want jemalloc functions to be kept hidden on both Mac and Windows
# See memory/build/mozmemory_wrap.h for details.
ac_configure_args="$ac_configure_args --without-export"
;;
esac
if test "${OS_ARCH}" = WINNT; then
# Lazy lock initialization doesn't play well with lazy linking of
# mozglue.dll on Windows XP (leads to startup crash), so disable it.
ac_configure_args="$ac_configure_args --disable-lazy-lock"
# 64-bit Windows builds require a minimum 16-byte alignment.
if test -n "$HAVE_64BIT_BUILD"; then
ac_configure_args="$ac_configure_args --with-lg-tiny-min=4"
fi
fi
elif test "${OS_ARCH}" = Darwin; then
# When building as a replace-malloc lib, disabling the zone allocator
# forces to use pthread_atfork.
ac_configure_args="$ac_configure_args --disable-zone-allocator"
fi
_MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size"
JEMALLOC_WRAPPER=
if test -z "$MOZ_REPLACE_MALLOC"; then
case "$OS_ARCH" in
Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
MANGLE=$_MANGLE
;;
esac
elif test -z "$MOZ_JEMALLOC4"; then
MANGLE=$_MANGLE
JEMALLOC_WRAPPER=replace_
fi
MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size"
JEMALLOC_WRAPPER=replace_
if test -n "$MANGLE"; then
MANGLED=
for mangle in ${MANGLE}; do

View file

@ -5,12 +5,13 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
option(env='MOZ_JEMALLOC4', help='Enable jemalloc 4')
imply_option('--enable-jemalloc', depends_if('MOZ_JEMALLOC4')(lambda x: '4'))
@deprecated_option(env='MOZ_JEMALLOC4')
def moz_jemalloc4(value):
die('MOZ_JEMALLOC4 is no longer supported')
option('--enable-jemalloc', nargs='?', choices=('4', 'moz'), env='MOZ_MEMORY',
help='Replace memory allocator with jemalloc')
option('--enable-jemalloc', env='MOZ_MEMORY',
help='Replace system memory allocator with jemalloc')
@depends('--enable-jemalloc', target, build_project, c_compiler)
def jemalloc(value, target, build_project, c_compiler):
@ -30,36 +31,25 @@ def jemalloc(value, target, build_project, c_compiler):
if target.kernel == 'Linux':
return True
@depends('--enable-jemalloc')
def jemalloc4(jemalloc):
if len(jemalloc) and jemalloc[0] == '4':
return True
set_config('MOZ_MEMORY', jemalloc)
set_define('MOZ_MEMORY', jemalloc)
add_old_configure_assignment('MOZ_MEMORY', jemalloc)
set_config('MOZ_JEMALLOC4', jemalloc4)
set_define('MOZ_JEMALLOC4', jemalloc4)
add_old_configure_assignment('MOZ_JEMALLOC4', jemalloc4)
# 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, jemalloc4)
def jemalloc_for_old_configure(jemalloc, jemalloc4):
if jemalloc:
return '--enable-jemalloc=4' if jemalloc4 else '--enable-jemalloc'
return '--disable-jemalloc'
@depends(jemalloc)
def jemalloc_for_old_configure(jemalloc):
return '--%s-jemalloc' % ('enable' if jemalloc else 'disable')
add_old_configure_arg(jemalloc_for_old_configure)
@depends(jemalloc, jemalloc4, target)
def jemalloc_os_define(jemalloc, jemalloc4, target):
if jemalloc and not jemalloc4:
@depends(jemalloc, target)
def jemalloc_os_define(jemalloc, target):
if jemalloc:
if target.kernel == 'WINNT':
return 'MOZ_MEMORY_WINDOWS'
if target.kernel == 'Linux':
@ -72,9 +62,9 @@ def jemalloc_os_define(jemalloc, jemalloc4, target):
set_define(jemalloc_os_define, '1')
@depends(jemalloc, jemalloc4, target)
def jemalloc_os_define_android(jemalloc, jemalloc4, target):
if jemalloc and not jemalloc4 and target.os == 'Android':
@depends(jemalloc, target)
def jemalloc_os_define_android(jemalloc, target):
if jemalloc and target.os == 'Android':
return 'MOZ_MEMORY_ANDROID'
set_define(jemalloc_os_define_android, '1')