From 76428fb58ef1a05dbf3ca528d4d72a902816893b Mon Sep 17 00:00:00 2001 From: MCApollo <34170230+MCApollo@users.noreply.github.com> Date: Tue, 28 May 2019 01:07:05 +0000 Subject: Release candidate --- data/node/README | 8 + data/node/_metadata/version | 2 +- data/node/configure-ios.diff- | 339 ------------------------------------------ data/node/install.diff | 26 ++++ data/node/make.sh | 13 +- 5 files changed, 44 insertions(+), 344 deletions(-) create mode 100644 data/node/README delete mode 100644 data/node/configure-ios.diff- create mode 100644 data/node/install.diff diff --git a/data/node/README b/data/node/README new file mode 100644 index 000000000..7d5c4c249 --- /dev/null +++ b/data/node/README @@ -0,0 +1,8 @@ +In the case of linux, Clang 8 is required for the host. +TODO (if bored): fix the usage of libs for target on host toolchain. +I've disable the need for it now. + +TODO: Set all values uv cannot detect, like +os.cpus, os.hwfreq + +Knock down one language, go to the next. diff --git a/data/node/_metadata/version b/data/node/_metadata/version index 685332623..9c028e25d 100644 --- a/data/node/_metadata/version +++ b/data/node/_metadata/version @@ -1 +1 @@ -12.2.0 +12.3.1 diff --git a/data/node/configure-ios.diff- b/data/node/configure-ios.diff- deleted file mode 100644 index e104a4026..000000000 --- a/data/node/configure-ios.diff- +++ /dev/null @@ -1,339 +0,0 @@ -diff -ur node-v12.3.1/common.gypi node-v12.3.1+iPhone/common.gypi ---- node-v12.3.1/common.gypi 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/common.gypi 2019-05-24 23:00:22.300728306 +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,6 +425,21 @@ - }], - ], - }], -+ ['OS=="ios"', { -+ 'defines': [ -+ '__IPHONEOS__', -+ 'TARGET_OS_IPHONE', -+ 'V8_TARGET_OS_IPHONE', -+ '_DARWIN_USE_64_BIT_INODE', -+ '__AARCH64EL__', -+ '_M_ARM64', -+ ], -+ 'cflags': [ -+ '-fno-exceptions', -+ '-fno-rtti', -+ '-fno-strict-aliasing' -+ ], -+ }], - ['OS=="mac"', { - 'defines': ['_DARWIN_USE_64_BIT_INODE=1'], - 'xcode_settings': { -@@ -436,7 +451,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 +479,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.3.1/configure.py node-v12.3.1+iPhone/configure.py ---- node-v12.3.1/configure.py 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/configure.py 2019-05-24 23:00:22.300728306 +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.3.1/deps/brotli/brotli.gyp node-v12.3.1+iPhone/deps/brotli/brotli.gyp ---- node-v12.3.1/deps/brotli/brotli.gyp 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/brotli/brotli.gyp 2019-05-24 23:00:22.300728306 +0000 -@@ -15,7 +15,7 @@ - 'OS_FREEBSD' - ] - }], -- ['OS=="mac"', { -+ ['OS=="mac" or OS=="ios"', { - 'defines': [ - 'OS_MACOSX' - ] -diff -ur node-v12.3.1/deps/cares/cares.gyp node-v12.3.1+iPhone/deps/cares/cares.gyp ---- node-v12.3.1/deps/cares/cares.gyp 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/cares/cares.gyp 2019-05-24 23:00:22.300728306 +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.3.1/deps/npm/node_modules/node-gyp/addon.gypi node-v12.3.1+iPhone/deps/npm/node_modules/node-gyp/addon.gypi ---- node-v12.3.1/deps/npm/node_modules/node-gyp/addon.gypi 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/npm/node_modules/node-gyp/addon.gypi 2019-05-24 23:00:22.304728309 +0000 -@@ -79,7 +79,7 @@ - ], - - 'conditions': [ -- [ 'OS=="mac"', { -+ [ 'OS=="mac" or OS=="ios"', { - 'defines': [ - '_DARWIN_USE_64_BIT_INODE=1' - ], -diff -ur node-v12.3.1/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp node-v12.3.1+iPhone/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp ---- node-v12.3.1/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp 2019-05-22 12:21:51.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp 2019-05-24 23:00:22.304728309 +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.3.1/deps/uv/common.gypi node-v12.3.1+iPhone/deps/uv/common.gypi ---- node-v12.3.1/deps/uv/common.gypi 2019-05-22 12:21:52.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/uv/common.gypi 2019-05-24 23:00:22.304728309 +0000 -@@ -168,6 +168,13 @@ - }], - ], - }], -+ ['OS=="ios"', { -+ 'cflags': [ -+ '-fno-exceptions', -+ '-fno-rtti', -+ '-fno-threadsafe-statics' -+ ], -+ }], - ['OS=="mac"', { - 'xcode_settings': { - 'ALWAYS_SEARCH_USER_PATHS': 'NO', -diff -ur node-v12.3.1/deps/uv/uv.gyp node-v12.3.1+iPhone/deps/uv/uv.gyp ---- node-v12.3.1/deps/uv/uv.gyp 2019-05-22 12:21:52.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/uv/uv.gyp 2019-05-24 23:00:22.304728309 +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.3.1/node.gyp node-v12.3.1+iPhone/node.gyp ---- node-v12.3.1/node.gyp 2019-05-22 12:21:54.000000000 +0000 -+++ node-v12.3.1+iPhone/node.gyp 2019-05-24 23:00:22.304728309 +0000 -@@ -760,7 +760,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', -@@ -939,7 +939,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', -@@ -974,7 +974,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.3.1/node.gypi node-v12.3.1+iPhone/node.gypi ---- node-v12.3.1/node.gypi 2019-05-22 12:21:54.000000000 +0000 -+++ node-v12.3.1+iPhone/node.gypi 2019-05-24 23:01:07.844752503 +0000 -@@ -141,7 +141,7 @@ - }, - }, - 'conditions': [ -- ['OS!="aix" and node_shared=="false"', { -+ ['OS!="aix" and OS!="ios" and node_shared=="false"', { - 'ldflags': [ - '-Wl,--whole-archive,' - '<(obj_dir)/deps/zlib/<(STATIC_LIB_PREFIX)zlib<(STATIC_LIB_SUFFIX)', -@@ -182,7 +182,7 @@ - }, - }, - 'conditions': [ -- ['OS!="aix" and node_shared=="false"', { -+ ['OS!="aix" and OS!="ios" and node_shared=="false"', { - 'ldflags': [ - '-Wl,--whole-archive,' - '<(obj_dir)/deps/uv/<(STATIC_LIB_PREFIX)uv<(STATIC_LIB_SUFFIX)', -@@ -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.3.1/tools/v8_gypfiles/d8.gyp node-v12.3.1+iPhone/tools/v8_gypfiles/d8.gyp ---- node-v12.3.1/tools/v8_gypfiles/d8.gyp 2019-05-22 12:21:55.000000000 +0000 -+++ node-v12.3.1+iPhone/tools/v8_gypfiles/d8.gyp 2019-05-24 23:00:22.308728311 +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.3.1/tools/v8_gypfiles/v8.gyp node-v12.3.1+iPhone/tools/v8_gypfiles/v8.gyp ---- node-v12.3.1/tools/v8_gypfiles/v8.gyp 2019-05-22 12:21:55.000000000 +0000 -+++ node-v12.3.1+iPhone/tools/v8_gypfiles/v8.gyp 2019-05-24 23:00:22.308728311 +0000 -@@ -128,6 +128,12 @@ - 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load'] - }, - }], -+ ['OS=="ios"', { -+ 'ldflags': [ -+ '-dynamiclib', -+ '-all_load' -+ ], -+ }], - ['soname_version!=""', { - 'product_extension': 'so.<(soname_version)', - }], diff --git a/data/node/install.diff b/data/node/install.diff new file mode 100644 index 000000000..be725d702 --- /dev/null +++ b/data/node/install.diff @@ -0,0 +1,26 @@ +diff -ur node-v12.3.1/tools/install.py node-v12.3.1+iPhone/tools/install.py +--- node-v12.3.1/tools/install.py 2019-05-22 12:21:55.000000000 +0000 ++++ node-v12.3.1+iPhone/tools/install.py 2019-05-28 00:22:25.356341629 +0000 +@@ -134,8 +134,8 @@ + output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix') + # GYP will output to lib.target except on OS X, this is hardcoded + # in its source - see the _InstallableTargetInstallPath function. +- if sys.platform != 'darwin': +- output_prefix += 'lib.target/' ++# if sys.platform != 'darwin': ++# output_prefix += 'lib.target/' + + if 'false' == variables.get('node_shared'): + action([output_prefix + output_file], 'bin/' + output_file) +@@ -151,10 +151,7 @@ + action(['deps/v8/tools/gdbinit'], 'share/doc/node/') + action(['deps/v8/tools/lldb_commands.py'], 'share/doc/node/') + +- if 'freebsd' in sys.platform or 'openbsd' in sys.platform: +- action(['doc/node.1'], 'man/man1/') +- else: +- action(['doc/node.1'], 'share/man/man1/') ++ action(['doc/node.1'], 'share/man/man1/') + + if 'true' == variables.get('node_install_npm'): npm_files(action) + diff --git a/data/node/make.sh b/data/node/make.sh index da11ae85a..a7c375eaf 100644 --- a/data/node/make.sh +++ b/data/node/make.sh @@ -24,8 +24,13 @@ export LDFLAGS_target="${LDFLAGS}" GYP_CROSSCOMPILE=1 \ GYP_DEFINES="v8_enable_inspector=1 target_arch=arm64 v8_target_arch=arm64 host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/') node_v8_options='--jitless'" \ -./configure --prefix="${PKG_TAPF}" --without-snapshot --cross-compiling --dest-os=ios --dest-cpu=arm64 --without-intl --without-npm --shared-zlib --shared-cares --shared-openssl --shared +./configure --prefix="${PKG_TAPF}" --without-snapshot --cross-compiling --dest-os=ios --dest-cpu=arm64 --without-intl --shared-zlib --shared-cares --shared-openssl --shared -# TODO: Fix tool/install.py and the Makefile -make BUILDTYPE=Release -j2 # Don't use pkg:make, CC_host gets overwritten -make BUILDTYPE=Release install DESTDIR="${PKG_DEST}" +# Don't use pkg:make, CC_host gets overwritten +make BUILDTYPE=Release DESTCPU=arm64 install DESTDIR="${PKG_DEST}" + +# TODO: Fix tool/install.py and the Makefile +if [[ ! -x "${PKG_TAPF}"/bin/node ]]; then + pkg: mkdir -p "${PKG_TAPF}"/bin + cp out/Release/node "${PKG_DEST}"/"${PKG_TAPF}"/bin +fi -- cgit v1.2.3