diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-01 17:47:20 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-03 14:41:31 -0700 |
commit | 8fffbc9202a0d66d65b052d84b4b61d86d398cce (patch) | |
tree | 6a5ca87d4bb6cedd8958b341243407e15f5a1c89 | |
parent | 35386a61513fe7c9f49eefb7075f0c4dc7953e81 (diff) |
always keep malloc and free alive and exported, for internal use and other modules
-rwxr-xr-x | emcc | 5 | ||||
-rw-r--r-- | tools/shared.py | 2 |
2 files changed, 5 insertions, 2 deletions
@@ -1117,6 +1117,11 @@ try: input_files.append(shared.path_from_root('third_party', 'stb_image.c')) shared.Settings.EXPORTED_FUNCTIONS += ['_stbi_load', '_stbi_load_from_memory', '_stbi_image_free'] + for required_export in ['_malloc', '_free']: + # always need malloc and free to be kept alive and exported, for internal use and other modules + if required_export not in shared.Settings.EXPORTED_FUNCTIONS: + shared.Settings.EXPORTED_FUNCTIONS.append(required_export) + ## Compile source code to bitcode logging.debug('compiling to bitcode') diff --git a/tools/shared.py b/tools/shared.py index 786d8d71..774d95fe 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -1179,8 +1179,6 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e def get_safe_internalize(): if not Building.can_build_standalone(): return [] # do not internalize anything exps = expand_response(Settings.EXPORTED_FUNCTIONS) - if '_malloc' not in exps: exps.append('_malloc') # needed internally, even if user did not add to EXPORTED_FUNCTIONS - if '_free' not in exps: exps.append('_free') exports = ','.join(map(lambda exp: exp[1:], exps)) # internalize carefully, llvm 3.2 will remove even main if not told not to return ['-internalize', '-internalize-public-api-list=' + exports] |