From 85305e48de1546d2ef710ab911617b2e6fb2a845 Mon Sep 17 00:00:00 2001 From: k4leg Date: Sun, 3 Nov 2019 18:19:50 +0300 Subject: [PATCH] nodejs-lts: update to 12.13.0. [ci skip] --- srcpkgs/nodejs-lts/patches/ppc32.patch | 33 +++------------- srcpkgs/nodejs-lts/patches/ppc64.patch | 41 -------------------- srcpkgs/nodejs-lts/template | 52 +++++++++++++++++--------- 3 files changed, 40 insertions(+), 86 deletions(-) delete mode 100644 srcpkgs/nodejs-lts/patches/ppc64.patch diff --git a/srcpkgs/nodejs-lts/patches/ppc32.patch b/srcpkgs/nodejs-lts/patches/ppc32.patch index 343eff58512..502d471429f 100644 --- a/srcpkgs/nodejs-lts/patches/ppc32.patch +++ b/srcpkgs/nodejs-lts/patches/ppc32.patch @@ -1,42 +1,19 @@ ---- configure.py -+++ configure.py -@@ -848,7 +848,7 @@ def host_arch_cc(): - '__MIPSEL__' : 'mipsel', - '__mips__' : 'mips', - '__PPC64__' : 'ppc64', -- '__PPC__' : 'ppc64', -+ '__PPC__' : 'ppc', - '__x86_64__' : 'x64', - '__s390__' : 's390', - '__s390x__' : 's390x', ---- node.gyp -+++ node.gyp -@@ -479,6 +479,11 @@ - 'msvs_disabled_warnings!': [4244], - - 'conditions': [ -+ [ 'host_arch=="mips" or host_arch=="mipsel" or host_arch=="ppc"', { -+ 'link_settings': { -+ 'libraries': [ '-latomic' ], -+ }, -+ }], - [ 'node_code_cache_path!=""', { - 'sources': [ '<(node_code_cache_path)' ] - }, { ---- deps/v8/src/libsampler/sampler.cc +--- deps/v8/src/libsampler/sampler.cc.orig +++ deps/v8/src/libsampler/sampler.cc -@@ -418,9 +418,15 @@ void SignalHandler::FillRegisterState(void* context, RegisterState* state) { - reinterpret_cast(ucontext->uc_mcontext.regs->gpr[PT_R31]); +@@ -423,10 +423,17 @@ + state->lr = reinterpret_cast(ucontext->uc_mcontext.regs->link); #else // Some C libraries, notably Musl, define the regs member as a void pointer + #if !V8_TARGET_ARCH_32_BIT state->pc = reinterpret_cast(ucontext->uc_mcontext.gp_regs[32]); state->sp = reinterpret_cast(ucontext->uc_mcontext.gp_regs[1]); state->fp = reinterpret_cast(ucontext->uc_mcontext.gp_regs[31]); + state->lr = reinterpret_cast(ucontext->uc_mcontext.gp_regs[36]); + #else + state->pc = reinterpret_cast(ucontext->uc_mcontext.gregs[32]); + state->sp = reinterpret_cast(ucontext->uc_mcontext.gregs[1]); + state->fp = reinterpret_cast(ucontext->uc_mcontext.gregs[31]); ++ state->lr = reinterpret_cast(ucontext->uc_mcontext.gregs[36]); + #endif #endif #elif V8_HOST_ARCH_S390 diff --git a/srcpkgs/nodejs-lts/patches/ppc64.patch b/srcpkgs/nodejs-lts/patches/ppc64.patch deleted file mode 100644 index 8190db1ce6f..00000000000 --- a/srcpkgs/nodejs-lts/patches/ppc64.patch +++ /dev/null @@ -1,41 +0,0 @@ -Taken from Adélie Linux, fixes node on big endian ELFv2. ---- deps/v8/src/ppc/assembler-ppc.h.old 2019-03-05 15:16:29.000000000 +0000 -+++ deps/v8/src/ppc/assembler-ppc.h 2019-04-02 07:05:25.977213735 +0000 -@@ -48,7 +48,8 @@ - #include "src/ppc/constants-ppc.h" - - #if V8_HOST_ARCH_PPC && \ -- (V8_OS_AIX || (V8_TARGET_ARCH_PPC64 && V8_TARGET_BIG_ENDIAN)) -+ (V8_OS_AIX || (V8_TARGET_ARCH_PPC64 && \ -+ (V8_TARGET_BIG_ENDIAN && (!defined(_CALL_ELF) || _CALL_ELF == 1)))) - #define ABI_USES_FUNCTION_DESCRIPTORS 1 - #else - #define ABI_USES_FUNCTION_DESCRIPTORS 0 -@@ -60,13 +61,15 @@ - #define ABI_PASSES_HANDLES_IN_REGS 0 - #endif - --#if !V8_HOST_ARCH_PPC || !V8_TARGET_ARCH_PPC64 || V8_TARGET_LITTLE_ENDIAN -+#if !V8_HOST_ARCH_PPC || !V8_TARGET_ARCH_PPC64 || \ -+ (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)) - #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1 - #else - #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0 - #endif - --#if !V8_HOST_ARCH_PPC || (V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN) -+#if !V8_HOST_ARCH_PPC || (V8_TARGET_ARCH_PPC64 && \ -+ (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2))) - #define ABI_CALL_VIA_IP 1 - #else - #define ABI_CALL_VIA_IP 0 -@@ -220,7 +220,8 @@ - // The following constants describe the stack frame linkage area as - // defined by the ABI. Note that kNumRequiredStackFrameSlots must - // satisfy alignment requirements (rounding up if required). --#if V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN -+#if V8_TARGET_ARCH_PPC64 && (V8_TARGET_LITTLE_ENDIAN || \ -+ defined(_CALL_ELF) && _CALL_ELF == 2) - // [0] back chain - // [1] condition register save area - // [2] link register save area diff --git a/srcpkgs/nodejs-lts/template b/srcpkgs/nodejs-lts/template index b260e1c0706..da8f4ada08f 100644 --- a/srcpkgs/nodejs-lts/template +++ b/srcpkgs/nodejs-lts/template @@ -1,28 +1,28 @@ # Template file for 'nodejs-lts' pkgname=nodejs-lts -version=10.16.2 +version=12.13.0 revision=1 wrksrc="node-v${version}" # Need these for host v8 for torque, see https://github.com/nodejs/node/pull/21079 hostmakedepends="pkg-config python zlib-devel $(vopt_if icu icu-devel) $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel) $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel) - $(vopt_if cares c-ares-devel)" + $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)" makedepends="zlib-devel python-devel $(vopt_if icu icu-devel) $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel) $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel) - $(vopt_if cares c-ares-devel)" + $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)" short_desc="Evented I/O for V8 javascript" maintainer="Enno Boland " license="MIT" homepage="https://nodejs.org/" distfiles="${homepage}/dist/v${version}/node-v${version}.tar.gz" -checksum=5936ef12ab3f0ce5fbb6751c1bb41f626b6058f414a297b3d8c5eb418a27e8fe +checksum=2e5321e095fe673a3ab936cf77faf8c983cba62f27a9fbd00530a7edb739a040 build_options="ssl libuv http_parser icu nghttp2 cares" desc_option_ssl="Enable shared libressl" desc_option_libuv="Enable shared libuv" -desc_option_http_parser="Enable shared http-parser" +desc_option_http_parser="Enable shared http-parser and llhttp" desc_option_icu="Enable shared icu" desc_option_nghttp2="Enable shared nghttp2" desc_option_cares="Enable shared c-ares" @@ -33,13 +33,24 @@ conflicts="nodejs" provides="nodejs-runtime-0_1" if [ "$XBPS_WORDSIZE" -ne "$XBPS_TARGET_WORDSIZE" ]; then - nocross="host and target must have the same pointer size" + nocross="host and target must have the same pointer size" fi -case "$XBPS_MACHINE" in +case "$XBPS_TARGET_MACHINE" in ppc64*) ;; + ppc*) broken="Node 12.x does not support 32-bit ppc" ;; +esac + +# v8 requires libatomic on ppc*/s390x/mips* +case "$XBPS_TARGET_MACHINE" in + mips*|ppc*) makedepends+=" libatomic-devel" ;; + *) ;; +esac + +# also need it on host when it's one of those archs +case "$XBPS_MACHINE" in mips*|ppc*) hostmakedepends+=" libatomic-devel" ;; - *) ;; + *) ;; esac do_configure() { @@ -48,17 +59,17 @@ do_configure() { export LD="$CXX" if [ "$CROSS_BUILD" ]; then case "$XBPS_TARGET_MACHINE" in - arm*) _args="--dest-cpu=arm" ;; - aarch64*) _args="--dest-cpu=arm64" ;; - ppc64*) _args="--dest-cpu=ppc64" ;; - ppc*) _args="--dest-cpu=ppc" ;; - mipsel*) _args="--dest-cpu=mipsel" ;; - mips*) _args="--dest-cpu=mips" ;; - i686*) _args="--dest-cpu=x86" ;; - x86_64*) _args="--dest-cpu=x86_64" ;; + arm*) _args="--dest-cpu=arm" ;; + aarch64*) _args="--dest-cpu=arm64" ;; + ppc64*) _args="--dest-cpu=ppc64" ;; + ppc*) _args="--dest-cpu=ppc" ;; + mipsel*) _args="--dest-cpu=mipsel" ;; + mips*) _args="--dest-cpu=mips" ;; + i686*) _args="--dest-cpu=x86" ;; + x86_64*) _args="--dest-cpu=x86_64" ;; *) msg_error "$pkgver: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n" ;; esac - _args+=" --without-snapshot" + _args+=" --cross-compiling" fi # their pregenerated asm is for ELFv1... case "$XBPS_TARGET_MACHINE" in @@ -72,6 +83,12 @@ do_configure() { $(vopt_if nghttp2 --shared-nghttp2) \ $(vopt_if cares --shared-cares) ${_args} } + +post_configure() { + # Fix linking against llhttp + sed 's/-lhttp_parser/& -lllhttp/' -i out/*.target.mk +} + do_build() { if [ "$CROSS_BUILD" ]; then make LD="$CXX" LDFLAGS+=-ldl ${makejobs} PORTABLE=1 V=1 @@ -79,6 +96,7 @@ do_build() { make LD="$CXX" LDFLAGS+=-ldl ${makejobs} V=1 fi } + do_install() { make LD="$CXX" LDFLAGS+=-ldl DESTDIR="$DESTDIR" install vlicense LICENSE