diff -ur node-v12.2.0/common.gypi node-v12.2.0+iPhone/common.gypi --- node-v12.2.0/common.gypi 2019-05-07 14:52:12.000000000 +0000 +++ node-v12.2.0+iPhone/common.gypi 2019-05-23 07:31:51.350642966 +0000 @@ -95,7 +95,7 @@ 'os_posix': 1, 'v8_postmortem_support%': 1, }], - ['OS == "mac"', { + ['OS == "mac" or OS=="ios"', { 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/libv8_base.a', }], @@ -104,7 +104,7 @@ }, { 'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)', }], - ['OS=="mac"', { + ['OS=="mac" or OS=="ios"', { 'clang%': 1, }], ], @@ -172,7 +172,7 @@ # pull in V8's postmortem metadata 'ldflags': [ '-Wl,-z,allextract' ] }], - ['OS!="mac" and OS!="win"', { + ['OS!="mac" and OS!="ios" and OS!="win"', { 'cflags': [ '-fno-omit-frame-pointer' ], }], ['OS=="linux"', { @@ -293,7 +293,7 @@ [ 'target_arch=="arm64"', { 'msvs_configuration_platform': 'arm64', }], - ['asan == 1 and OS != "mac"', { + ['asan == 1 and (OS != "mac" or OS != "ios")', { 'cflags+': [ '-fno-omit-frame-pointer', '-fsanitize=address', @@ -302,7 +302,7 @@ 'cflags!': [ '-fomit-frame-pointer' ], 'ldflags': [ '-fsanitize=address' ], }], - ['asan == 1 and OS == "mac"', { + ['asan == 1 and (OS == "mac" or OS == "ios")', { 'xcode_settings': { 'OTHER_CFLAGS+': [ '-fno-omit-frame-pointer', @@ -425,7 +425,14 @@ }], ], }], - ['OS=="mac"', { + ['OS=="ios"', { + 'cflags': [ + '-fno-exceptions', + '-fno-rtti', + '-fno-strict-aliasing' + ], + }], + ['OS=="mac" or OS=="ios"', { 'defines': ['_DARWIN_USE_64_BIT_INODE=1'], 'xcode_settings': { 'ALWAYS_SEARCH_USER_PATHS': 'NO', @@ -436,7 +443,6 @@ 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings 'PREBINDING': 'NO', # No -Wl,-prebind - 'MACOSX_DEPLOYMENT_TARGET': '10.10', # -mmacosx-version-min=10.10 'USE_HEADERMAP': 'NO', 'OTHER_CFLAGS': [ '-fno-strict-aliasing', @@ -465,6 +471,9 @@ ['target_arch=="x64"', { 'xcode_settings': {'ARCHS': ['x86_64']}, }], + [ 'target_arch=="arm64"', { + 'xcode_settings': {'ARCHS': ['arm64']}, + }], ['clang==1', { 'xcode_settings': { 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0', diff -ur node-v12.2.0/configure.py node-v12.2.0+iPhone/configure.py --- node-v12.2.0/configure.py 2019-05-07 14:52:12.000000000 +0000 +++ node-v12.2.0+iPhone/configure.py 2019-05-23 07:31:51.350642966 +0000 @@ -44,7 +44,7 @@ parser = optparse.OptionParser() valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', - 'android', 'aix', 'cloudabi') + 'ios', 'android', 'aix', 'cloudabi') valid_arch = ('arm', 'arm64', 'ia32', 'ppc', 'ppc64', 'x32','x64', 'x86', 'x86_64', 's390', 's390x') valid_arm_float_abi = ('soft', 'softfp', 'hard') @@ -908,6 +908,8 @@ def configure_node(o): if options.dest_os == 'android': o['variables']['OS'] = 'android' + if options.dest_os == 'ios': + o['variables']['OS'] = 'ios' o['variables']['node_prefix'] = options.prefix o['variables']['node_install_npm'] = b(not options.without_npm) o['variables']['node_report'] = b(not options.without_report) @@ -1069,12 +1071,7 @@ o['variables']['node_shared'] = b(options.shared) node_module_version = getmoduleversion.get_version() - if sys.platform == 'darwin': - shlib_suffix = '%s.dylib' - elif sys.platform.startswith('aix'): - shlib_suffix = '%s.a' - else: - shlib_suffix = 'so.%s' + shlib_suffix = '%s.dylib' shlib_suffix %= node_module_version o['variables']['node_module_version'] = int(node_module_version) diff -ur node-v12.2.0/deps/brotli/brotli.gyp node-v12.2.0+iPhone/deps/brotli/brotli.gyp --- node-v12.2.0/deps/brotli/brotli.gyp 2019-05-07 14:52:12.000000000 +0000 +++ node-v12.2.0+iPhone/deps/brotli/brotli.gyp 2019-05-23 07:31:51.354642969 +0000 @@ -15,7 +15,7 @@ 'OS_FREEBSD' ] }], - ['OS=="mac"', { + ['OS=="mac" or OS=="ios"', { 'defines': [ 'OS_MACOSX' ] diff -ur node-v12.2.0/deps/cares/cares.gyp node-v12.2.0+iPhone/deps/cares/cares.gyp --- node-v12.2.0/deps/cares/cares.gyp 2019-05-07 14:52:12.000000000 +0000 +++ node-v12.2.0+iPhone/deps/cares/cares.gyp 2019-05-23 07:31:51.354642969 +0000 @@ -145,7 +145,7 @@ 'include_dirs': [ 'config/linux' ], 'sources': [ 'config/linux/ares_config.h' ] }], - [ 'OS=="mac"', { + [ 'OS=="mac" or OS=="ios"', { 'include_dirs': [ 'config/darwin' ], 'sources': [ 'config/darwin/ares_config.h' ] }], diff -ur node-v12.2.0/deps/npm/node_modules/node-gyp/addon.gypi node-v12.2.0+iPhone/deps/npm/node_modules/node-gyp/addon.gypi --- node-v12.2.0/deps/npm/node_modules/node-gyp/addon.gypi 2019-05-07 14:52:13.000000000 +0000 +++ node-v12.2.0+iPhone/deps/npm/node_modules/node-gyp/addon.gypi 2019-05-23 07:31:51.354642969 +0000 @@ -79,7 +79,7 @@ ], 'conditions': [ - [ 'OS=="mac"', { + [ 'OS=="mac" or OS=="ios"', { 'defines': [ '_DARWIN_USE_64_BIT_INODE=1' ], diff -ur node-v12.2.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp node-v12.2.0+iPhone/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp --- node-v12.2.0/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp 2019-05-07 14:52:13.000000000 +0000 +++ node-v12.2.0+iPhone/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp 2019-05-23 07:31:51.354642969 +0000 @@ -545,12 +545,12 @@ 'base/simd/scale_yuv_to_rgb_sse2_x64.asm', ], }], - [ 'os_posix == 1 and OS != "mac" and OS != "android"', { + [ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', { 'cflags': [ '-msse2', ], }], - [ 'OS == "mac"', { + [ 'OS == "mac" or OS == "ios"', { 'configurations': { 'Debug': { 'xcode_settings': { @@ -572,7 +572,7 @@ ], }, }], - [ 'OS=="mac"', { + [ 'OS=="mac" or OS=="ios"', { 'variables': { 'yasm_flags': [ '-DPREFIX', @@ -582,7 +582,7 @@ ], }, }], - [ 'os_posix==1 and OS!="mac"', { + [ 'os_posix==1 and OS!="mac" and OS!="ios"', { 'variables': { 'conditions': [ [ 'target_arch=="ia32"', { @@ -710,7 +710,7 @@ 'webm/webm_parser_unittest.cc', ], 'conditions': [ - ['os_posix==1 and OS!="mac"', { + ['os_posix==1 and OS!="mac" and OS!="ios"', { 'conditions': [ ['linux_use_tcmalloc==1', { 'dependencies': [ @@ -930,7 +930,7 @@ }, ], }], - ['os_posix == 1 and OS != "mac" and OS != "android"', { + ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', { 'targets': [ { 'target_name': 'player_x11', @@ -1064,7 +1064,7 @@ 'filters/pipeline_integration_test_base.cc', ], 'conditions': [ - ['os_posix==1 and OS!="mac"', { + ['os_posix==1 and OS!="mac" and OS!="ios"', { 'conditions': [ ['linux_use_tcmalloc==1', { 'dependencies': [ diff -ur node-v12.2.0/deps/uv/common.gypi node-v12.2.0+iPhone/deps/uv/common.gypi --- node-v12.2.0/deps/uv/common.gypi 2019-05-07 14:52:14.000000000 +0000 +++ node-v12.2.0+iPhone/deps/uv/common.gypi 2019-05-23 07:31:51.358642971 +0000 @@ -168,6 +168,13 @@ }], ], }], + ['OS=="ios"', { + 'cflags': [ + '-fno-exceptions', + '-fno-rtti', + '-fno-threadsafe-statics' + ], + }], ['OS=="mac"', { 'xcode_settings': { 'ALWAYS_SEARCH_USER_PATHS': 'NO', @@ -195,6 +202,9 @@ ['target_arch=="x64"', { 'xcode_settings': {'ARCHS': ['x86_64']}, }], + ['target_arch=="arm64"', { + 'xcode_settings': {'ARCHS': ['arm64']}, + }], ], 'target_conditions': [ ['_type!="static_library"', { diff -ur node-v12.2.0/deps/uv/uv.gyp node-v12.2.0+iPhone/deps/uv/uv.gyp --- node-v12.2.0/deps/uv/uv.gyp 2019-05-07 14:52:14.000000000 +0000 +++ node-v12.2.0+iPhone/deps/uv/uv.gyp 2019-05-23 07:31:51.358642971 +0000 @@ -198,7 +198,7 @@ }], ], }], - ['uv_library=="shared_library" and OS!="mac" and OS!="zos"', { + ['uv_library=="shared_library" and OS!="mac" and OS!="ios" and OS!="zos"', { # This will cause gyp to set soname # Must correspond with UV_VERSION_MAJOR # in include/uv/version.h diff -ur node-v12.2.0/node.gyp node-v12.2.0+iPhone/node.gyp --- node-v12.2.0/node.gyp 2019-05-07 14:52:15.000000000 +0000 +++ node-v12.2.0+iPhone/node.gyp 2019-05-23 07:48:01.767172790 +0000 @@ -656,6 +656,17 @@ 'common.gypi', ], + 'conditions': [ + ['node_use_node_snapshot=="false" and OS=="ios"', { + # XXX(mac): Is this really needed? + # According to configure.py, code_cache is broken when cross compiling. + 'sources': [ + 'src/node_snapshot_stub.cc', + 'src/node_code_cache_stub.cc', + ], + }], + ], + 'variables': { 'openssl_system_ca_path%': '', }, @@ -760,7 +771,7 @@ '<(SHARED_INTERMEDIATE_DIR)/node_dtrace_provider.o' ], }], - [ 'OS!="mac" and OS!="linux"', { + [ 'OS!="mac" and OS!="ios" and OS!="linux"', { 'sources': [ 'src/node_dtrace_ustack.cc', 'src/node_dtrace_provider.cc', @@ -938,7 +949,7 @@ 'target_name': 'node_dtrace_provider', 'type': 'none', 'conditions': [ - [ 'node_use_dtrace=="true" and OS!="mac" and OS!="linux"', { + [ 'node_use_dtrace=="true" and OS!="mac" and OS!="ios" and OS!="linux"', { 'actions': [ { 'action_name': 'node_dtrace_provider_o', @@ -973,7 +984,7 @@ 'target_name': 'node_dtrace_ustack', 'type': 'none', 'conditions': [ - [ 'node_use_dtrace=="true" and OS!="mac" and OS!="linux"', { + [ 'node_use_dtrace=="true" and OS!="mac" and OS!="ios" and OS!="linux"', { 'actions': [ { 'action_name': 'node_dtrace_ustack_constants', diff -ur node-v12.2.0/node.gypi node-v12.2.0+iPhone/node.gypi --- node-v12.2.0/node.gypi 2019-05-07 14:52:15.000000000 +0000 +++ node-v12.2.0+iPhone/node.gypi 2019-05-23 07:31:51.358642971 +0000 @@ -202,7 +202,7 @@ 'dependencies': [ 'deps/brotli/brotli.gyp:brotli' ], }], - [ 'OS=="mac"', { + [ 'OS=="mac" or OS=="ios"', { # linking Corefoundation is needed since certain OSX debugging tools # like Instruments require it for some features 'libraries': [ '-framework CoreFoundation' ], diff -ur node-v12.2.0/tools/v8_gypfiles/d8.gyp node-v12.2.0+iPhone/tools/v8_gypfiles/d8.gyp --- node-v12.2.0/tools/v8_gypfiles/d8.gyp 2019-05-07 14:52:17.000000000 +0000 +++ node-v12.2.0+iPhone/tools/v8_gypfiles/d8.gyp 2019-05-23 07:31:51.358642971 +0000 @@ -43,7 +43,7 @@ 'd8_js2c#host', ], }], - ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \ + ['(OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd" or OS=="netbsd" \ or OS=="openbsd" or OS=="solaris" or OS=="android" \ or OS=="qnx" or OS=="aix")', { 'sources': [ '../src/d8-posix.cc', ] diff -ur node-v12.2.0/tools/v8_gypfiles/v8.gyp node-v12.2.0+iPhone/tools/v8_gypfiles/v8.gyp --- node-v12.2.0/tools/v8_gypfiles/v8.gyp 2019-05-07 14:52:17.000000000 +0000 +++ node-v12.2.0+iPhone/tools/v8_gypfiles/v8.gyp 2019-05-23 07:31:51.362642972 +0000 @@ -128,6 +128,12 @@ 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load'] }, }], + ['OS=="ios"', { + 'ldflags': [ + '-dynamiclib', + '-all_load' + ], + }], ['soname_version!=""', { 'product_extension': 'so.<(soname_version)', }],