gecko-dev/memory/build/moz.build
Mike Hommey e52769e834 Bug 1286613 - Use the same zone allocator implementation as replace-malloc for mozjemalloc. r=njn
We have been using a different zone allocator between mozjemalloc and
replace-malloc for a long time. Jemalloc 4 uses the same as
replace-malloc, albeit as part of the jemalloc upstream code base.

We've been bitten many times in the past with Apple changes breaking the
zone allocator, and each time we've had to make changes to the three
instances, although two of them are similar and the changes there are
straightforward.

It also turns out that the way the mozjemalloc zone allocator is set up,
when a new version of OSX appears with a new version of the system zone
allocator, Firefox ends up using the system allocator, because the zone
allocator version is not supported.

So, we use the same zone allocator for both replace-malloc and
mozjemalloc, making everything on par with jemalloc 4.

--HG--
extra : rebase_source : 9c0e245b5f82bb71294370d607e690c05cc89fbc
2017-01-18 11:45:45 +09:00

62 lines
1.7 KiB
Python

# -*- Mode: python; 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/.
EXPORTS += [
'mozmemory.h',
'mozmemory_wrap.h',
]
LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True
DEFINES['MOZ_MEMORY_IMPL'] = True
if CONFIG['MOZ_REPLACE_MALLOC']:
EXPORTS += [
'malloc_decls.h',
'replace_malloc.h',
'replace_malloc_bridge.h',
]
SOURCES += [
'jemalloc_config.cpp',
'mozmemory_wrap.c',
]
if CONFIG['MOZ_JEMALLOC4']:
SOURCES += [
'mozjemalloc_compat.c',
]
LOCAL_INCLUDES += ['!../jemalloc/src/include']
if CONFIG['_MSC_VER']:
LOCAL_INCLUDES += ['/memory/jemalloc/src/include/msvc_compat']
if not CONFIG['HAVE_INTTYPES_H']:
LOCAL_INCLUDES += ['/memory/jemalloc/src/include/msvc_compat/C99']
if CONFIG['MOZ_REPLACE_MALLOC']:
SOURCES += [
'replace_malloc.c',
]
if CONFIG['OS_TARGET'] == 'Darwin' and (CONFIG['MOZ_REPLACE_MALLOC'] or
CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_JEMALLOC4']):
SOURCES += [
'zone.c',
]
Library('memory')
if CONFIG['MOZ_GLUE_IN_PROGRAM']:
SDK_LIBRARY = True
DIST_INSTALL = True
# Keep jemalloc separated when mozglue is statically linked
if CONFIG['MOZ_MEMORY'] and (CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') or
CONFIG['MOZ_SYSTEM_JEMALLOC']):
FINAL_LIBRARY = 'mozglue'
if CONFIG['MOZ_REPLACE_MALLOC'] and CONFIG['OS_TARGET'] == 'Darwin':
# The zone allocator for OSX needs some jemalloc internal functions
LOCAL_INCLUDES += ['/memory/jemalloc/src/include']