mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 11:15:34 +00:00
1f279f7006
In the MinGW build, calls to malloc inside mozglue were not being redirected as defined in the .def file. We create aliases for the redirected functions to correctly redirect them inside mozglue. An alternate solution for this exists. Rather than creating the importlib during the linking step for mozglue, we could have used dlltool to create it, and then provided it during linking. This would allow mozglue to know that it should redirect calls to malloc to je_malloc as specified in the .def file. Differential Revision: https://phabricator.services.mozilla.com/D38407 --HG-- extra : moz-landing-system : lando
64 lines
1.7 KiB
Python
64 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/.
|
|
NoVisibilityFlags()
|
|
|
|
EXPORTS.mozilla += [
|
|
'cxxalloc.h',
|
|
'mozalloc.h',
|
|
'mozalloc_abort.h',
|
|
'mozalloc_oom.h',
|
|
]
|
|
|
|
if CONFIG['WRAP_STL_INCLUDES']:
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
|
EXPORTS.mozilla += ['throw_gcc.h']
|
|
elif CONFIG['CC_TYPE'] == 'clang-cl':
|
|
DEFINES['_HAS_EXCEPTIONS'] = 0
|
|
SOURCES += [
|
|
'msvc_raise_wrappers.cpp',
|
|
]
|
|
|
|
if CONFIG['OS_TARGET'] == 'WINNT':
|
|
# Keep this file separate to avoid #include'ing windows.h everywhere.
|
|
SOURCES += [
|
|
'winheap.cpp',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'mozalloc.cpp',
|
|
'mozalloc_oom.cpp',
|
|
]
|
|
|
|
SOURCES += [
|
|
'mozalloc_abort.cpp',
|
|
]
|
|
|
|
if CONFIG['MOZ_MEMORY']:
|
|
# In MinGW, we don't want to actually export these functions out of the library
|
|
# as the functions in libc++ correctly forward to jemalloc and exporting them
|
|
# produces duplicate symbol errors.
|
|
if not (CONFIG['CC_TYPE'] == 'clang' and CONFIG['OS_TARGET'] == 'WINNT'):
|
|
SOURCES += [
|
|
'cxxalloc.cpp',
|
|
]
|
|
|
|
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['CC_TYPE'] == 'clang':
|
|
SOURCES['mozalloc_abort.cpp'].flags += ['-Wno-infinite-recursion']
|
|
|
|
FINAL_LIBRARY = 'mozglue'
|
|
|
|
# The strndup declaration in string.h is in an ifdef __USE_GNU section
|
|
DEFINES['_GNU_SOURCE'] = True
|
|
|
|
DisableStlWrapping()
|
|
|
|
LOCAL_INCLUDES += [
|
|
'!/xpcom',
|
|
'/memory/build',
|
|
]
|
|
|
|
DIST_INSTALL = True
|