diff --git a/lang/node/Makefile b/lang/node/Makefile index 9b7f85ed5..947918256 100644 --- a/lang/node/Makefile +++ b/lang/node/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=node -PKG_VERSION:=v12.18.4 +PKG_VERSION:=v12.19.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://nodejs.org/dist/$(PKG_VERSION) -PKG_HASH:=25f03cb18e53b6d0959d0c219e701a85eb4693f526bdda7c72bc6199b364f609 +PKG_HASH:=3b671c45c493f96d7e018c15110cdbafa4478e5e5cfc9e6eec83cea9e6b551e1 PKG_MAINTAINER:=John Crispin , Adrian Panella PKG_LICENSE:=MIT @@ -38,8 +38,8 @@ define Package/node SUBMENU:=Node.js TITLE:=Node.js is a platform built on Chrome's JavaScript runtime URL:=https://nodejs.org/ - DEPENDS:=@(HAS_FPU||KERNEL_MIPS_FPU_EMULATOR) @!arc @!armeb @!powerpc \ - +libstdcpp +libopenssl +zlib +libnghttp2 +libuv +libhttp-parser \ + DEPENDS:=@HAS_FPU @(i386||x86_64||arm||aarch64||mipsel) \ + +libstdcpp +libopenssl +zlib +libnghttp2 +libuv \ +libcares +libatomic +NODEJS_ICU_SYSTEM:icu +NODEJS_ICU_SYSTEM:icu-full-data endef @@ -79,17 +79,16 @@ define Package/node/config bool "Disable" config NODEJS_ICU_SMALL - depends on !BIG_ENDIAN bool "small-icu" config NODEJS_ICU_SYSTEM - depends on ARCH_64BIT&&!BIG_ENDIAN + depends on ARCH_64BIT bool "system-icu" endchoice endif endef -NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH))))) +NODEJS_CPU:=$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))) ifneq ($(CONFIG_ARCH_64BIT),y) FORCE_32BIT:=-m32 @@ -97,8 +96,11 @@ endif MAKE_VARS+= \ DESTCPU=$(NODEJS_CPU) \ + NO_LOAD='cctest.target.mk embedtest.target.mk node_mksnapshot.target.mk' \ LD_LIBRARY_PATH=$(STAGING_DIR_HOSTPKG)/share/icu/current/lib +HOST_MAKE_VARS+=NO_LOAD='cctest.target.mk embedtest.target.mk' + CONFIGURE_VARS:= \ CC="$(TARGET_CC) $(TARGET_OPTIMIZATION)" \ CXX="$(TARGET_CXX) $(TARGET_OPTIMIZATION)" \ @@ -113,12 +115,9 @@ CONFIGURE_ARGS:= \ --shared-openssl \ --shared-nghttp2 \ --shared-libuv \ - --shared-http-parser \ --shared-cares \ $(if $(CONFIG_NODEJS_ICU_SMALL),, \ --with-intl=$(if $(CONFIG_NODEJS_ICU_SYSTEM),system-icu,none)) \ - $(if $(findstring mips,$(NODEJS_CPU)), \ - $(if $(CONFIG_SOFT_FLOAT),--with-mips-float-abi=soft)) \ $(if $(findstring +neon,$(CONFIG_CPU_TYPE)),--with-arm-fpu=neon) \ $(if $(findstring +vfp",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfp) \ $(if $(findstring +vfpv3",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfpv3-d16) \ diff --git a/lang/node/patches/002-addr_info.patch b/lang/node/patches/002-addr_info.patch deleted file mode 100644 index 4a0f709e8..000000000 --- a/lang/node/patches/002-addr_info.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/deps/uv/src/unix/getaddrinfo.c -+++ b/deps/uv/src/unix/getaddrinfo.c -@@ -103,6 +103,7 @@ - int err; - - req = container_of(w, uv_getaddrinfo_t, work_req); -+ req->hints->ai_flags &= ~AI_V4MAPPED; - err = getaddrinfo(req->hostname, req->service, req->hints, &req->addrinfo); - req->retcode = uv__getaddrinfo_translate_error(err); - } diff --git a/lang/node/patches/003-path.patch b/lang/node/patches/003-path.patch index c49fa7912..8becfa1b6 100644 --- a/lang/node/patches/003-path.patch +++ b/lang/node/patches/003-path.patch @@ -1,6 +1,6 @@ --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js -@@ -1239,7 +1239,8 @@ +@@ -1117,7 +1117,8 @@ path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..', '..'); diff --git a/lang/node/patches/004-musl_support.patch b/lang/node/patches/004-musl_support.patch index ea7baff13..77d8bec68 100644 --- a/lang/node/patches/004-musl_support.patch +++ b/lang/node/patches/004-musl_support.patch @@ -1,6 +1,6 @@ diff -urN a/deps/v8/src/base/platform/condition-variable.cc b/deps/v8/src/base/platform/condition-variable.cc ---- a/deps/v8/src/base/platform/condition-variable.cc 2019-09-05 00:36:23.000000000 +0900 -+++ b/deps/v8/src/base/platform/condition-variable.cc 2019-09-12 15:10:01.063792083 +0900 +--- a/deps/v8/src/base/platform/condition-variable.cc 2020-09-30 01:58:13.000000000 +0900 ++++ b/deps/v8/src/base/platform/condition-variable.cc 2020-10-06 09:04:33.341499270 +0900 @@ -16,7 +16,7 @@ ConditionVariable::ConditionVariable() { @@ -20,8 +20,8 @@ diff -urN a/deps/v8/src/base/platform/condition-variable.cc b/deps/v8/src/base/p // source for pthread_cond_timedwait() to use the monotonic clock. result = clock_gettime(CLOCK_MONOTONIC, &ts); diff -urN a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc ---- a/deps/v8/src/base/platform/platform-posix.cc 2019-09-05 00:36:23.000000000 +0900 -+++ b/deps/v8/src/base/platform/platform-posix.cc 2019-09-12 15:10:01.063792083 +0900 +--- a/deps/v8/src/base/platform/platform-posix.cc 2020-09-30 01:58:13.000000000 +0900 ++++ b/deps/v8/src/base/platform/platform-posix.cc 2020-10-06 09:04:33.341499270 +0900 @@ -772,7 +772,7 @@ #if V8_OS_MACOSX // Default on Mac OS X is 512kB -- bump up to 1MB @@ -32,8 +32,8 @@ diff -urN a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platf stack_size = 2 * 1024 * 1024; #endif diff -urN a/deps/v8/src/codegen/external-reference-table.cc b/deps/v8/src/codegen/external-reference-table.cc ---- a/deps/v8/src/codegen/external-reference-table.cc 2019-09-05 00:36:23.000000000 +0900 -+++ b/deps/v8/src/codegen/external-reference-table.cc 2019-09-12 15:09:41.959828134 +0900 +--- a/deps/v8/src/codegen/external-reference-table.cc 2020-09-30 01:58:13.000000000 +0900 ++++ b/deps/v8/src/codegen/external-reference-table.cc 2020-10-06 09:04:33.345499241 +0900 @@ -9,7 +9,7 @@ #include "src/ic/stub-cache.h" #include "src/logging/counters.h" @@ -43,19 +43,3 @@ diff -urN a/deps/v8/src/codegen/external-reference-table.cc b/deps/v8/src/codege #define SYMBOLIZE_FUNCTION #include #include -diff -urN a/deps/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc b/deps/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc ---- a/deps/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc 2019-09-05 00:36:23.000000000 +0900 -+++ b/deps/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc 2019-09-12 15:10:01.063792083 +0900 -@@ -134,8 +134,10 @@ - // The function may have already been optimized by OSR. Simply continue. - // Use a mutex to make sure that functions marked for install - // are always also queued. -- base::MutexGuard access_output_queue_(&output_queue_mutex_); -- output_queue_.push(job); -+ { -+ base::MutexGuard access_output_queue_(&output_queue_mutex_); -+ output_queue_.push(job); -+ } - } - - isolate_->stack_guard()->RequestInstallCode(); diff --git a/lang/node/patches/005-check-if-uclibc-has-backtrace-support.patch b/lang/node/patches/005-check-if-uclibc-has-backtrace-support.patch new file mode 100644 index 000000000..079bbb436 --- /dev/null +++ b/lang/node/patches/005-check-if-uclibc-has-backtrace-support.patch @@ -0,0 +1,26 @@ +From 7c69553d7275bbcaa88fada8ccd0d2d9f787e1ad Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Sat, 4 Mar 2017 20:41:40 +0000 +Subject: [PATCH] check if uclibc has backtrace support + +Signed-off-by: Martin Bark +--- + deps/v8/src/base/debug/stack_trace_posix.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/deps/v8/src/base/debug/stack_trace_posix.cc b/deps/v8/src/base/debug/stack_trace_posix.cc +index 87c0a73..d2c182a 100644 +--- a/deps/v8/src/base/debug/stack_trace_posix.cc ++++ b/deps/v8/src/base/debug/stack_trace_posix.cc +@@ -25,7 +25,7 @@ + #include + #include + +-#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS ++#if V8_LIBC_GLIBC || V8_LIBC_BSD || ( V8_LIBC_UCLIBC && __UCLIBC_HAS_BACKTRACE__ ) || V8_OS_SOLARIS + #define HAVE_EXECINFO_H 1 + #endif + +-- +2.7.4 + diff --git a/lang/node/patches/006-mips64_support.patch b/lang/node/patches/006-mips64_support.patch deleted file mode 100644 index b4d72c309..000000000 --- a/lang/node/patches/006-mips64_support.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/configure.py -+++ b/configure.py -@@ -48,7 +48,7 @@ - - valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', - 'android', 'aix', 'cloudabi') --valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc', -+valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64', 'mips64el', 'ppc', - 'ppc64', 'x32','x64', 'x86', 'x86_64', 's390x') - valid_arm_float_abi = ('soft', 'softfp', 'hard') - valid_arm_fpu = ('vfp', 'vfpv3', 'vfpv3-d16', 'neon') -@@ -956,6 +956,9 @@ - if rtn == 'mipsel' and '_LP64' in k: - rtn = 'mips64el' - -+ if rtn == 'mips' and '_LP64' in k: -+ rtn = 'mips64' -+ - return rtn - - -@@ -1063,7 +1066,7 @@ - - if target_arch == 'arm': - configure_arm(o) -- elif target_arch in ('mips', 'mipsel', 'mips64el'): -+ elif target_arch in ('mips', 'mipsel', 'mips64', 'mips64el'): - configure_mips(o, target_arch) - - if flavor == 'aix': diff --git a/lang/node/patches/008-deps_v8_fix_big_endian.patch b/lang/node/patches/008-deps_v8_fix_big_endian.patch deleted file mode 100644 index 040e2e66c..000000000 --- a/lang/node/patches/008-deps_v8_fix_big_endian.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/deps/v8/src/runtime/runtime-utils.h -+++ b/deps/v8/src/runtime/runtime-utils.h -@@ -126,7 +126,7 @@ - #if defined(V8_TARGET_LITTLE_ENDIAN) - return x.ptr() | (static_cast(y.ptr()) << 32); - #elif defined(V8_TARGET_BIG_ENDIAN) -- return y->ptr() | (static_cast(x->ptr()) << 32); -+ return y.ptr() | (static_cast(x.ptr()) << 32); - #else - #error Unknown endianness - #endif diff --git a/lang/node/patches/999-localhost-no-addrconfig.patch b/lang/node/patches/999-localhost-no-addrconfig.patch index 4d1197321..d07d5b814 100644 --- a/lang/node/patches/999-localhost-no-addrconfig.patch +++ b/lang/node/patches/999-localhost-no-addrconfig.patch @@ -13,7 +13,7 @@ Forwarded: https://github.com/nodejs/node/issues/33816 // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the -@@ -1028,13 +1029,6 @@ +@@ -1029,13 +1030,6 @@ hints: options.hints || 0 }; diff --git a/lang/node/patches/999-mips-less-memory.patch b/lang/node/patches/999-mips-less-memory.patch deleted file mode 100644 index 605b94259..000000000 --- a/lang/node/patches/999-mips-less-memory.patch +++ /dev/null @@ -1,26 +0,0 @@ -Description: mksnapshot uses too much memory on 32-bit mipsel -Author: Jérémy Lal -Last-Update: 2020-06-03 -Forwarded: https://bugs.chromium.org/p/v8/issues/detail?id=10586 ---- a/deps/v8/src/common/globals.h -+++ b/deps/v8/src/common/globals.h -@@ -206,7 +206,7 @@ - constexpr size_t kMinExpectedOSPageSize = 64 * KB; // OS page on PPC Linux - #elif V8_TARGET_ARCH_MIPS - constexpr bool kRequiresCodeRange = false; --constexpr size_t kMaximalCodeRangeSize = 2048LL * MB; -+constexpr size_t kMaximalCodeRangeSize = 512 * MB; - constexpr size_t kMinimumCodeRangeSize = 0 * MB; - constexpr size_t kMinExpectedOSPageSize = 4 * KB; // OS page. - #else ---- a/deps/v8/src/codegen/mips/constants-mips.h -+++ b/deps/v8/src/codegen/mips/constants-mips.h -@@ -137,7 +137,7 @@ - namespace v8 { - namespace internal { - --constexpr size_t kMaxPCRelativeCodeRangeInMB = 4096; -+constexpr size_t kMaxPCRelativeCodeRangeInMB = 1024; - - // ----------------------------------------------------------------------------- - // Registers and FPURegisters. diff --git a/lang/node/patches/999-v8_this_build_method_will_be_deprecated.patch b/lang/node/patches/999-v8_this_build_method_will_be_deprecated.patch deleted file mode 100644 index c00891fbc..000000000 --- a/lang/node/patches/999-v8_this_build_method_will_be_deprecated.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -urN a/configure.py b/configure.py ---- a/configure.py 2019-09-05 00:36:21.000000000 +0900 -+++ b/configure.py 2019-09-27 11:49:55.445800884 +0900 -@@ -1276,6 +1276,15 @@ - options.build_v8_with_gn = FetchDeps(v8_path) - o['variables']['build_v8_with_gn'] = b(options.build_v8_with_gn) - -+def configure_v8_deprecated(o): -+ target_arch = options.dest_cpu -+ if target_arch == 'x86': -+ target_arch = 'ia32' -+ if target_arch == 'x86_64': -+ target_arch = 'x64' -+ -+ if target_arch in ('mips', 'mips64'): -+ o['variables']['v8_use_snapshot'] = 'false' - - def configure_openssl(o): - variables = o['variables'] -@@ -1713,6 +1732,7 @@ - configure_intl(output) - configure_static(output) - configure_inspector(output) -+configure_v8_deprecated(output) - - # variables should be a root level element, - # move everything else to target_defaults