Index: head/www/node8/Makefile =================================================================== --- head/www/node8/Makefile (revision 479757) +++ head/www/node8/Makefile (revision 479758) @@ -1,115 +1,111 @@ # $FreeBSD$ PORTNAME= node -PORTVERSION= 8.11.4 +PORTVERSION= 8.12.0 DISTVERSIONPREFIX= v -PORTREVISION= 1 CATEGORIES= www MASTER_SITES= http://nodejs.org/dist/v${PORTVERSION}/ PKGNAMESUFFIX= 8 - -PATCH_SITES= https://github.com/nodejs/node/commit/ -PATCHFILES= b8f47b27571f.patch:-p1 MAINTAINER= bhughes@FreeBSD.org COMMENT= V8 JavaScript for client and server (8.x LTS) LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 OPTIONS_DEFINE= BUNDLED_SSL DOCS NLS DTRACE OPTIONS_DEFAULT=DTRACE OPTIONS_SUB= yes OPTIONS_DEFAULT_FreeBSD_10= BUNDLED_SSL OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}} .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_FreeBSD_10= DTRACE OPTIONS_EXCLUDE_aarch64= DTRACE # dt_modtext:/usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c(820): arm not implemented OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation BUNDLED_SSL_USES_OFF= ssl BUNDLED_SSL_CONFIGURE_OFF= --shared-openssl --openssl-use-def-ca-store BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss NLS_CONFIGURE_ON= --with-intl=system-icu NLS_LIB_DEPENDS= libicui18n.so:devel/icu DTRACE_CONFIGURE_ON= --with-dtrace USES= compiler:c++11-lib gmake python:2.7,build pkgconfig \ localbase shebangfix HAS_CONFIGURE= yes CONFLICTS_INSTALL= node[456]-[0-9]* node-[0-9]* CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \ --without-npm \ --shared-cares \ --shared-libuv \ --shared-nghttp2 \ --shared-zlib SHEBANG_FILES= tools/specialize_node_d.py tools/genv8constants.py PREFIX_RELDEST= ${PREFIX:S,^${DESTDIR},,} REINPLACE_ARGS= -i '' MAKE_ENV+= CC.host=${CC} CXX.host=${CXX} LINK.host=${CXX} LINK.target=${CXX} LIB_DEPENDS+= libcares.so:dns/c-ares\ libuv.so:devel/libuv \ libnghttp2.so:www/libnghttp2 .include .if empty(PORT_OPTIONS:MBUNDLED_SSL) .if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100085 && ${SSL_DEFAULT} == base IGNORE= node.js requires openssl 1.0.2, add DEFAULT_VERSIONS+=ssl=openssl to /etc/make.conf or enable BUNDLED_SSL option .endif .if !empty(SSL_DEFAULT:Mlibressl*) IGNORE= cannot build node.js with LibreSSL. You must enable BUNDLED_SSL .endif .endif .include .if ${ARCH} == armv6 || ${ARCH} == armv7 CONFIGURE_ARGS+=--openssl-no-asm .endif .if ${COMPILER_TYPE} == gcc # GCC does not expose std::snprintf() without this define CXXFLAGS+= -D_GLIBCXX_USE_C99 .endif post-patch: @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \ ${WRKSRC}/deps/v8/src/v8.gyp post-configure: # Post-process Makefile and *.mk files created by node-gyp and remove # all occurrences of -I${LOCALBASE}/include. C*FLAGS include this # before all -I../deps/* for bundled code. This can cause build # breakages if the dependency is installed in ${LOCALBASE}. The # USES+=localbase # above will ensure that we pick up includes for real # external dependencies. ${FIND} ${WRKSRC}/out -type f -print0 \ | ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g" post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node .include Index: head/www/node8/distinfo =================================================================== --- head/www/node8/distinfo (revision 479757) +++ head/www/node8/distinfo (revision 479758) @@ -1,5 +1,3 @@ -TIMESTAMP = 1535227007 -SHA256 (node-v8.11.4.tar.gz) = 459144e361d64ca7362c37cc9717c044ef909d348cb5aa3f2b62538560a6085a -SIZE (node-v8.11.4.tar.gz) = 31122833 -SHA256 (b8f47b27571f.patch) = b0b22c490c4b4e7ed4bad46d1989e980a0ba30299855ec0164ff3d11384833c7 -SIZE (b8f47b27571f.patch) = 4763 +TIMESTAMP = 1536784572 +SHA256 (node-v8.12.0.tar.gz) = b4797843136edd9195c28221a1680ae52c29d867fc5fc1c99f7d6e2f2126a67b +SIZE (node-v8.12.0.tar.gz) = 30393516 Index: head/www/node8/files/patch-deps_v8_src_arm_cpu-arm.cc =================================================================== --- head/www/node8/files/patch-deps_v8_src_arm_cpu-arm.cc (revision 479757) +++ head/www/node8/files/patch-deps_v8_src_arm_cpu-arm.cc (revision 479758) @@ -1,22 +1,22 @@ ---- deps/v8/src/arm/cpu-arm.cc.orig 2017-06-15 11:55:20 UTC +--- deps/v8/src/arm/cpu-arm.cc.orig 2018-09-10 18:46:54 UTC +++ deps/v8/src/arm/cpu-arm.cc @@ -7,6 +7,9 @@ #ifdef __QNXNTO__ #include // for cache flushing. #undef MAP_TYPE +#elif defined(__FreeBSD__) +#include +#include // for cache flushing. #else #include // for cache flushing. #endif -@@ -24,6 +27,9 @@ void CpuFeatures::FlushICache(void* start, size_t size +@@ -24,6 +27,9 @@ void CpuFeatures::FlushICache(void* star #if !defined(USE_SIMULATOR) #if V8_OS_QNX msync(start, size, MS_SYNC | MS_INVALIDATE_ICACHE); +#elif defined(__FreeBSD__) + struct arm_sync_icache_args args = { .addr = (uintptr_t)start, .len = size }; + sysarch(ARM_SYNC_ICACHE, (void *)&args); #else register uint32_t beg asm("r0") = reinterpret_cast(start); register uint32_t end asm("r1") = beg + size; Index: head/www/node8/files/patch-deps_v8_src_base_cpu.cc =================================================================== --- head/www/node8/files/patch-deps_v8_src_base_cpu.cc (revision 479757) +++ head/www/node8/files/patch-deps_v8_src_base_cpu.cc (revision 479758) @@ -1,19 +1,19 @@ ---- deps/v8/src/base/cpu.cc.orig 2017-08-09 18:48:10 UTC +--- deps/v8/src/base/cpu.cc.orig 2018-09-10 18:46:54 UTC +++ deps/v8/src/base/cpu.cc @@ -607,6 +607,7 @@ CPU::CPU() #elif V8_HOST_ARCH_ARM64 +#if V8_OS_LINUX CPUInfo cpu_info; // Extract implementor from the "CPU implementer" field. -@@ -640,6 +641,8 @@ CPU::CPU() - } +@@ -641,6 +642,8 @@ CPU::CPU() delete[] part; } -+ -+#endif // V8_OS_LINUX ++#endif // V8_OS_LINUX ++ #elif V8_HOST_ARCH_PPC + #ifndef USE_SIMULATOR Index: head/www/node8/files/patch-deps_v8_src_base_platform_platform-freebsd.cc =================================================================== --- head/www/node8/files/patch-deps_v8_src_base_platform_platform-freebsd.cc (revision 479757) +++ head/www/node8/files/patch-deps_v8_src_base_platform_platform-freebsd.cc (revision 479758) @@ -1,51 +1,51 @@ ---- deps/v8/src/base/platform/platform-freebsd.cc.orig 2017-10-24 19:40:14 UTC +--- deps/v8/src/base/platform/platform-freebsd.cc.orig 2018-09-10 18:46:54 UTC +++ deps/v8/src/base/platform/platform-freebsd.cc -@@ -51,6 +51,48 @@ void* OS::Allocate(const size_t requested, size_t* all +@@ -51,6 +51,48 @@ void* OS::Allocate(const size_t requeste return mbase; } +#ifdef __arm__ + +bool OS::ArmUsingHardFloat() { + // GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify + // the Floating Point ABI used (PCS stands for Procedure Call Standard). + // We use these as well as a couple of other defines to statically determine + // what FP ABI used. + // GCC versions 4.4 and below don't support hard-fp. + // GCC versions 4.5 may support hard-fp without defining __ARM_PCS or + // __ARM_PCS_VFP. + +#define GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) +#if GCC_VERSION >= 40600 +#if defined(__ARM_PCS_VFP) + return true; +#else + return false; +#endif + +#elif GCC_VERSION < 40500 + return false; + +#else +#if defined(__ARM_PCS_VFP) + return true; +#elif defined(__ARM_PCS) || defined(__SOFTFP__) || defined(__SOFTFP) || \ + !defined(__VFP_FP__) + return false; +#else +#error "Your version of GCC does not report the FP ABI compiled for." \ + "Please report it on this issue" \ + "http://code.google.com/p/v8/issues/detail?id=2140" + +#endif +#endif +#undef GCC_VERSION +} + +#endif // def __arm__ + static unsigned StringToLong(char* buffer) { return static_cast(strtol(buffer, NULL, 16)); // NOLINT Index: head/www/node8/files/patch-deps_v8_src_libsampler_sampler.cc =================================================================== --- head/www/node8/files/patch-deps_v8_src_libsampler_sampler.cc (revision 479757) +++ head/www/node8/files/patch-deps_v8_src_libsampler_sampler.cc (revision 479758) @@ -1,15 +1,15 @@ ---- deps/v8/src/libsampler/sampler.cc.orig 2017-10-24 19:40:19 UTC +--- deps/v8/src/libsampler/sampler.cc.orig 2018-09-10 18:46:55 UTC +++ deps/v8/src/libsampler/sampler.cc -@@ -506,9 +506,9 @@ void SignalHandler::FillRegisterState(void* context, R +@@ -506,9 +506,9 @@ void SignalHandler::FillRegisterState(vo state->sp = reinterpret_cast(mcontext.mc_rsp); state->fp = reinterpret_cast(mcontext.mc_rbp); #elif V8_HOST_ARCH_ARM - state->pc = reinterpret_cast(mcontext.mc_r15); - state->sp = reinterpret_cast(mcontext.mc_r13); - state->fp = reinterpret_cast(mcontext.mc_r11); + state->pc = reinterpret_cast(mcontext.__gregs[_REG_PC]); + state->sp = reinterpret_cast(mcontext.__gregs[_REG_SP]); + state->fp = reinterpret_cast(mcontext.__gregs[_REG_FP]); #endif // V8_HOST_ARCH_* #elif V8_OS_NETBSD #if V8_HOST_ARCH_IA32