include $(TOPDIR)/rules.mk
PKG_NAME:=node
-PKG_VERSION:=v16.19.1
+PKG_VERSION:=v18.14.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://nodejs.org/dist/$(PKG_VERSION)
-PKG_HASH:=17fb716406198125b30c94dd3d1756207b297705626afe16d8dc479a65a1d8b5
+PKG_HASH:=fbc364dd25fee2cacc0f2033db2d86115fc07575310ea0e64408b8170d09c685
PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>, Adrian Panella <ianchi74@outlook.com>
PKG_LICENSE:=MIT
--- a/lib/internal/modules/cjs/loader.js
+++ b/lib/internal/modules/cjs/loader.js
-@@ -1326,7 +1326,8 @@ Module._initPaths = function() {
+@@ -1389,7 +1389,8 @@ Module._initPaths = function() {
path.resolve(process.execPath, '..') :
path.resolve(process.execPath, '..', '..');
result = clock_gettime(CLOCK_MONOTONIC, &ts);
--- a/deps/v8/src/base/platform/platform-posix.cc
+++ b/deps/v8/src/base/platform/platform-posix.cc
-@@ -883,7 +883,7 @@ bool Thread::Start() {
- #if V8_OS_MACOSX
+@@ -1066,7 +1066,7 @@ bool Thread::Start() {
+ #if V8_OS_DARWIN
// Default on Mac OS X is 512kB -- bump up to 1MB
stack_size = 1 * 1024 * 1024;
-#elif V8_OS_AIX
--- a/tools/gyp/pylib/gyp/generator/make.py
+++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -181,7 +181,7 @@ cmd_solink_module = $(LINK.$(TOOLSET)) -
+@@ -206,7 +206,7 @@ cmd_solink_module = $(LINK.$(TOOLSET)) -
LINK_COMMANDS_MAC = """\
quiet_cmd_alink = LIBTOOL-STATIC $@
+++ /dev/null
---- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
-+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
-@@ -154,6 +154,32 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOL
- quiet_cmd_link = LINK($(TOOLSET)) $@
- cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
-
-+define xargs
-+ $(1) $(wordlist 1,100,$(2))
-+ $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
-+endef
-+
-+define write-to-file
-+ @echo >$(1)
-+ $(call xargs,printf "%s\\n" >>$(1),$(2))
-+endef
-+
-+OBJ_FILE_LIST_SFX := ar-file-list
-+
-+define create_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
-+define create_thin_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
- # We support two kinds of shared objects (.so):
- # 1) shared_library, which is just bundling together many dependent libraries
- # into a link line.
-@@ -198,6 +224,32 @@ cmd_alink = rm -f $@ && $(AR.$(TOOLSET))
- quiet_cmd_alink_thin = AR($(TOOLSET)) $@
- cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
-
-+define xargs
-+ $(1) $(wordlist 1,100,$(2))
-+ $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
-+endef
-+
-+define write-to-file
-+ @echo >$(1)
-+ $(call xargs,printf "%s\\n" >>$(1),$(2))
-+endef
-+
-+OBJ_FILE_LIST_SFX := ar-file-list
-+
-+define create_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
-+define create_thin_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
- # Due to circular dependencies between libraries :(, we wrap the
- # special "figure out circular dependencies" flags around the entire
- # input list during linking.
-@@ -1768,21 +1820,35 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)
- self.flavor not in ("mac", "openbsd", "netbsd", "win")
- and not self.is_standalone_static_library
- ):
-- self.WriteDoCmd(
-- [self.output_binary],
-- link_deps,
-- "alink_thin",
-- part_of_all,
-- postbuilds=postbuilds,
-- )
-+ if self.flavor in ('linux', 'android'):
-+ self.WriteMakeRule(
-+ [self.output_binary],
-+ link_deps,
-+ actions = ['$(call create_thin_archive,$@,$^)']
-+ )
-+ else:
-+ self.WriteDoCmd(
-+ [self.output_binary],
-+ link_deps,
-+ "alink_thin",
-+ part_of_all,
-+ postbuilds=postbuilds,
-+ )
- else:
-- self.WriteDoCmd(
-- [self.output_binary],
-- link_deps,
-- "alink",
-- part_of_all,
-- postbuilds=postbuilds,
-- )
-+ if self.flavor in ('linux', 'android'):
-+ self.WriteMakeRule(
-+ [self.output_binary],
-+ link_deps,
-+ actions = ['$(call create_archive,$@,$^)']
-+ )
-+ else:
-+ self.WriteDoCmd(
-+ [self.output_binary],
-+ link_deps,
-+ "alink",
-+ part_of_all,
-+ postbuilds=postbuilds,
-+ )
- elif self.type == "shared_library":
- self.WriteLn(
- "%s: LD_INPUTS := %s"
---- a/tools/gyp/pylib/gyp/generator/make.py
-+++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -156,6 +156,32 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOL
- quiet_cmd_link = LINK($(TOOLSET)) $@
- cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
-
-+define xargs
-+ $(1) $(wordlist 1,100,$(2))
-+ $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
-+endef
-+
-+define write-to-file
-+ @echo >$(1)
-+ $(call xargs,printf "%s\\n" >>$(1),$(2))
-+endef
-+
-+OBJ_FILE_LIST_SFX := ar-file-list
-+
-+define create_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
-+define create_thin_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
- # We support two kinds of shared objects (.so):
- # 1) shared_library, which is just bundling together many dependent libraries
- # into a link line.
-@@ -200,6 +226,32 @@ cmd_alink = rm -f $@ && $(AR.$(TOOLSET))
- quiet_cmd_alink_thin = AR($(TOOLSET)) $@
- cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
-
-+define xargs
-+ $(1) $(wordlist 1,100,$(2))
-+ $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
-+endef
-+
-+define write-to-file
-+ @echo >$(1)
-+ $(call xargs,printf "%s\\n" >>$(1),$(2))
-+endef
-+
-+OBJ_FILE_LIST_SFX := ar-file-list
-+
-+define create_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
-+define create_thin_archive
-+ $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
-+ rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
-+ $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
-+ $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
-+endef
-+
- # Due to circular dependencies between libraries :(, we wrap the
- # special "figure out circular dependencies" flags around the entire
- # input list during linking.
-@@ -1809,21 +1861,35 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)
- self.flavor not in ("mac", "openbsd", "netbsd", "win")
- and not self.is_standalone_static_library
- ):
-- self.WriteDoCmd(
-- [self.output_binary],
-- link_deps,
-- "alink_thin",
-- part_of_all,
-- postbuilds=postbuilds,
-- )
-+ if self.flavor in ('linux', 'android'):
-+ self.WriteMakeRule(
-+ [self.output_binary],
-+ link_deps,
-+ actions = ['$(call create_thin_archive,$@,$^)']
-+ )
-+ else:
-+ self.WriteDoCmd(
-+ [self.output_binary],
-+ link_deps,
-+ 'alink_thin',
-+ part_of_all,
-+ postbuilds=postbuilds
-+ )
- else:
-- self.WriteDoCmd(
-- [self.output_binary],
-- link_deps,
-- "alink",
-- part_of_all,
-- postbuilds=postbuilds,
-- )
-+ if self.flavor in ('linux', 'android'):
-+ self.WriteMakeRule(
-+ [self.output_binary],
-+ link_deps,
-+ actions = ['$(call create_archive,$@,$^)']
-+ )
-+ else:
-+ self.WriteDoCmd(
-+ [self.output_binary],
-+ link_deps,
-+ 'alink',
-+ part_of_all,
-+ postbuilds=postbuilds
-+ )
- elif self.type == "shared_library":
- self.WriteLn(
- "%s: LD_INPUTS := %s"
--- a/tools/icu/icu-generic.gyp
+++ b/tools/icu/icu-generic.gyp
-@@ -419,6 +419,7 @@
+@@ -418,6 +418,7 @@
'target_name': 'genrb',
'type': 'executable',
'toolsets': [ 'host' ],
+ 'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares' ],
- 'dependencies': [ 'icutools' ],
+ 'dependencies': [ 'icutools', 'icu_implementation' ],
'sources': [
'<@(icu_src_genrb)'
-@@ -435,6 +436,7 @@
+@@ -434,6 +435,7 @@
'target_name': 'iculslocs',
'toolsets': [ 'host' ],
'type': 'executable',
'dependencies': [ 'icutools' ],
'sources': [
'iculslocs.cc',
-@@ -447,6 +449,7 @@
+@@ -446,6 +448,7 @@
'target_name': 'icupkg',
'toolsets': [ 'host' ],
'type': 'executable',
'dependencies': [ 'icutools' ],
'sources': [
'<@(icu_src_icupkg)',
-@@ -458,6 +461,7 @@
+@@ -457,6 +460,7 @@
'target_name': 'genccode',
'toolsets': [ 'host' ],
'type': 'executable',
'<@(icu_src_genccode)',
--- a/tools/v8_gypfiles/v8.gyp
+++ b/tools/v8_gypfiles/v8.gyp
-@@ -1373,6 +1373,7 @@
+@@ -1397,6 +1397,7 @@
{
'target_name': 'bytecode_builtins_list_generator',
'type': 'executable',
'conditions': [
['want_separate_host_toolset', {
'toolsets': ['host'],
-@@ -1397,6 +1398,8 @@
+@@ -1421,6 +1422,8 @@
{
'target_name': 'mksnapshot',
'type': 'executable',
'dependencies': [
'v8_base_without_compiler',
'v8_compiler_for_mksnapshot',
-@@ -1418,6 +1421,7 @@
+@@ -1442,6 +1445,7 @@
{
'target_name': 'torque',
'type': 'executable',
'dependencies': [
'torque_base',
# "build/win:default_exe_manifest",
-@@ -1456,6 +1460,7 @@
+@@ -1480,6 +1484,7 @@
{
'target_name': 'torque-language-server',
'type': 'executable',
'conditions': [
['want_separate_host_toolset', {
'toolsets': ['host'],
-@@ -1483,6 +1488,8 @@
+@@ -1507,6 +1512,8 @@
{
'target_name': 'gen-regexp-special-case',
'type': 'executable',
--- a/deps/zlib/zlib.gyp
+++ b/deps/zlib/zlib.gyp
-@@ -43,10 +43,12 @@
- 'zutil.c',
- 'zutil.h',
- ],
-+ 'include_dirs!': [ '<!@(echo "$STAGING_DIR"/usr/include)' ],
- 'include_dirs': [
- '.',
- ],
- 'direct_dependent_settings': {
-+ 'include_dirs!': [ '<!@(echo "$STAGING_DIR"/usr/include)' ],
- 'include_dirs': [
- '.',
- ],
+@@ -9,6 +9,7 @@
+ 'arm_fpu%': '',
+ 'llvm_version%': '0.0',
+ },
++ 'include_dirs!': [ '<!@(echo "$STAGING_DIR"/usr/include)' ],
+ 'conditions': [
+ ['use_system_zlib==0', {
+ 'targets': [
--- a/tools/v8_gypfiles/v8.gyp
+++ b/tools/v8_gypfiles/v8.gyp
@@ -60,6 +60,7 @@
],
'sources': [
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"v8_initializers.*?sources = ")',
-@@ -754,6 +759,7 @@
+@@ -769,6 +774,7 @@
],
'includes': ['inspector.gypi'],
'direct_dependent_settings': {
'include_dirs': [
'<(generate_bytecode_output_root)',
'<(SHARED_INTERMEDIATE_DIR)',
-@@ -1353,6 +1359,7 @@
+@@ -1377,6 +1383,7 @@
}],
],
'direct_dependent_settings': {
'include_dirs': [
'<(V8_ROOT)/include',
],
-@@ -1701,6 +1708,7 @@
+@@ -1729,6 +1736,7 @@
}],
],
'direct_dependent_settings': {
'include_dirs': [
'<(V8_ROOT)/include',
],
-@@ -1881,15 +1889,19 @@
+@@ -1909,15 +1917,19 @@
}],
],
'direct_dependent_settings': {
--- /dev/null
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -714,6 +714,7 @@
+ 'v8_shared_internal_headers',
+ ],
+ 'sources': ['<@(v8_compiler_sources)'],
++ 'include_dirs': [ '<!@(echo "$STAGING_DIR"/usr/../usr/include)' ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'msvs_precompiled_header': '<(V8_ROOT)/../../tools/msvs/pch/v8_pch.h',
--- a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
+++ b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-@@ -4103,7 +4103,7 @@ void CodeGenerator::AssembleReturn(Instr
+@@ -4101,7 +4101,7 @@ void CodeGenerator::AssembleReturn(Instr
} else if (FLAG_debug_code) {
__ Assert(eq, AbortReason::kUnexpectedAdditionalPopValue,
g.ToRegister(additional_pop_count),
+++ /dev/null
---- a/deps/v8/src/trap-handler/trap-handler.h
-+++ b/deps/v8/src/trap-handler/trap-handler.h
-@@ -17,19 +17,16 @@ namespace v8 {
- namespace internal {
- namespace trap_handler {
-
--// X64 on Linux, Windows, MacOS, FreeBSD.
--#if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \
-- ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_MACOSX || \
-- V8_OS_FREEBSD)
-+#if V8_TARGET_ARCH_X64 && V8_OS_LINUX && !V8_OS_ANDROID
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Arm64 (non-simulator) on Mac.
--#elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && V8_OS_MACOSX
-+#elif V8_TARGET_ARCH_X64 && V8_OS_WIN
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Arm64 simulator on x64 on Linux or Mac.
--#elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_X64 && (V8_OS_LINUX || V8_OS_MACOSX)
--#define V8_TRAP_HANDLER_VIA_SIMULATOR
-+#elif V8_TARGET_ARCH_X64 && V8_OS_MACOSX
-+#define V8_TRAP_HANDLER_SUPPORTED true
-+#elif V8_TARGET_ARCH_X64 && V8_OS_FREEBSD
-+#define V8_TRAP_HANDLER_SUPPORTED true
-+#elif V8_HOST_ARCH_ARM64 && V8_TARGET_ARCH_ARM64 && V8_OS_MACOSX
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Everything else is unsupported.
- #else
- #define V8_TRAP_HANDLER_SUPPORTED false
- #endif
--- a/tools/icu/icu-generic.gyp
+++ b/tools/icu/icu-generic.gyp
-@@ -107,6 +107,7 @@
+@@ -106,6 +106,7 @@
'sources': [
'<@(icu_src_i18n)'
],
'include_dirs': [
'<(icu_path)/source/i18n',
],
-@@ -115,6 +116,7 @@
+@@ -114,6 +115,7 @@
],
'dependencies': [ 'icuucx', 'icu_implementation', 'icu_uconfig', 'icu_uconfig_target' ],
'direct_dependent_settings': {
'include_dirs': [
'<(icu_path)/source/i18n',
],
-@@ -201,6 +203,7 @@
+@@ -200,6 +202,7 @@
# full data - no trim needed
'sources': [ '<(SHARED_INTERMEDIATE_DIR)/icudt<(icu_ver_major)_dat.<(icu_asm_ext)' ],
'dependencies': [ 'genccode#host', 'icupkg#host', 'icu_implementation#host', 'icu_uconfig' ],
'include_dirs': [
'<(icu_path)/source/common',
],
-@@ -285,6 +288,7 @@
+@@ -284,6 +287,7 @@
# This file contains the small ICU data
'sources': [ '<(SHARED_INTERMEDIATE_DIR)/icusmdt<(icu_ver_major)_dat.<(icu_asm_ext)' ],
# for umachine.h
'include_dirs': [
'<(icu_path)/source/common',
],
-@@ -301,6 +305,7 @@
+@@ -300,6 +304,7 @@
'sources': [
'<@(icu_src_stubdata)'
],
'include_dirs': [
'<(icu_path)/source/common',
],
-@@ -340,6 +345,7 @@
+@@ -339,6 +344,7 @@
'_XOPEN_SOURCE_EXTENDED=0',
]}],
],
'include_dirs': [
'<(icu_path)/source/common',
],
-@@ -349,6 +355,7 @@
+@@ -348,6 +354,7 @@
'cflags_c': ['-std=c99'],
'export_dependent_settings': [ 'icu_uconfig', 'icu_uconfig_target' ],
'direct_dependent_settings': {
'include_dirs': [
'<(icu_path)/source/common',
],
-@@ -379,6 +386,7 @@
+@@ -378,6 +385,7 @@
'<(icu_path)/source/tools/toolutil/dbgutil.cpp',
'<(icu_path)/source/tools/toolutil/dbgutil.h',
],
'include_dirs': [
'<(icu_path)/source/common',
'<(icu_path)/source/i18n',
-@@ -398,6 +406,7 @@
+@@ -397,6 +405,7 @@
}]
],
'direct_dependent_settings': {
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
-@@ -1149,13 +1150,6 @@ function lookupAndConnect(self, options)
+@@ -1265,13 +1266,6 @@ function lookupAndConnect(self, options)
hints: options.hints || 0
};
--- a/configure.py
+++ b/configure.py
-@@ -1241,10 +1241,6 @@ def configure_node(o):
+@@ -1290,7 +1290,6 @@ def configure_node(o):
- o['variables']['want_separate_host_toolset'] = int(cross_compiling)
-
-- # Enable branch protection for arm64
-- if target_arch == 'arm64':
+ # Enable branch protection for arm64
+ if target_arch == 'arm64':
- o['cflags']+=['-msign-return-address=all']
--
+ o['variables']['arm_fpu'] = options.arm_fpu or 'neon'
+
if options.node_snapshot_main is not None:
- if options.shared:
- # This should be possible to fix, but we will need to refactor the