Update to 7.4.0 [1]

- Fix build on ARMv6 [2]
- While I'm here, remove duplicate PLIST_SUB which is already handled by OPTIONS_SUB=yes

Changes:	https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V7.md
		https://nodejs.org/en/blog/release/v7.4.0/
PR:		215775 [1], 215044 [2]
Submitted by:	Bradley T. Hughes <bradleythughes@fastmail.fm> (maintainer) [1],
		Peter Laursen <plaursen@kobalt.dk> [2]
This commit is contained in:
Sunpoet Po-Chuan Hsieh 2017-01-05 19:34:16 +00:00
parent 7f13e4e93a
commit 9c328055d5
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=430663
6 changed files with 129 additions and 9 deletions

View file

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= node
PORTVERSION= 7.3.0
PORTVERSION= 7.4.0
DISTVERSIONPREFIX= v
CATEGORIES= www
MASTER_SITES= http://nodejs.org/dist/v${PORTVERSION}/
@ -22,7 +22,7 @@ OPTIONS_EXCLUDE+= DTRACE
OPTIONS_EXCLUDE_FreeBSD_10= DTRACE
BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation
BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation #'
BUNDLED_SSL_USES_OFF= ssl
BUNDLED_SSL_CONFIGURE_OFF= --shared-openssl
@ -73,7 +73,7 @@ IGNORE= cannot build node.js with LibreSSL. You must enable BUNDLED_SSL
.endif
.if ${ARCH} == "armv6"
CONFIGURE_ARGS= --openssl-no-asm
CONFIGURE_ARGS+=--openssl-no-asm
.endif
.if ${COMPILER_TYPE} == gcc
@ -82,10 +82,7 @@ CXXFLAGS+= -D_GLIBCXX_USE_C99
.endif
.if ${PORT_OPTIONS:MDTRACE}
PLIST_SUB+= DTRACE=""
CONFIGURE_ARGS+= --with-dtrace
.else
PLIST_SUB+= DTRACE="@comment "
.endif
post-patch:

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1482348024
SHA256 (node-v7.3.0.tar.gz) = 5ba8a26e5341ec738ee6f1aacdd82be4002aef64716d069e060d901ade13c5b0
SIZE (node-v7.3.0.tar.gz) = 27606508
TIMESTAMP = 1483556744
SHA256 (node-v7.4.0.tar.gz) = 69b76c86e6fc9914fa136089d8c28a4828c14aa8792cbdf946090a5a2afd25b6
SIZE (node-v7.4.0.tar.gz) = 27904025

View file

@ -0,0 +1,22 @@
--- deps/v8/src/arm/cpu-arm.cc.orig 2016-10-19 22:02:03 UTC
+++ deps/v8/src/arm/cpu-arm.cc
@@ -7,6 +7,9 @@
#ifdef __QNXNTO__
#include <sys/mman.h> // for cache flushing.
#undef MAP_TYPE
+#elif defined(__FreeBSD__)
+#include <sys/types.h>
+#include <machine/sysarch.h> // for cache flushing.
#else
#include <sys/syscall.h> // for cache flushing.
#endif
@@ -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<uint32_t>(start);
register uint32_t end asm("r1") = beg + size;

View file

@ -0,0 +1,35 @@
--- deps/v8/src/base/atomicops_internals_arm_gcc.h.orig 2016-10-19 22:02:03 UTC
+++ deps/v8/src/base/atomicops_internals_arm_gcc.h
@@ -13,6 +13,11 @@
#include <sys/cpuinline.h>
#endif
+#if defined(__FreeBSD__)
+#include <sys/types.h>
+#include <machine/sysarch.h>
+#endif
+
namespace v8 {
namespace base {
@@ -48,6 +53,8 @@ inline void MemoryBarrier() {
// Note: This is a function call, which is also an implicit compiler barrier.
typedef void (*KernelMemoryBarrierFunc)();
((KernelMemoryBarrierFunc)0xffff0fa0)();
+#elif defined(__FreeBSD__)
+ sysarch(ARM_DRAIN_WRITEBUF, (void *)0);
#elif defined(__QNXNTO__)
__cpu_membarrier();
#else
@@ -64,8 +71,9 @@ inline void MemoryBarrier() {
defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
- defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
- defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
+ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6KZ__) || \
+ defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || \
+ defined(__ARM_ARCH_6T2__)
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
Atomic32 old_value,

View file

@ -0,0 +1,51 @@
--- deps/v8/src/base/platform/platform-freebsd.cc.orig 2016-10-19 22:02:03 UTC
+++ deps/v8/src/base/platform/platform-freebsd.cc
@@ -35,6 +35,48 @@
namespace v8 {
namespace base {
+#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__
+
const char* OS::LocalTimezone(double time, TimezoneCache* cache) {
if (std::isnan(time)) return "";

View file

@ -0,0 +1,15 @@
--- deps/v8/src/libsampler/sampler.cc.orig 2016-11-08 18:53:14 UTC
+++ deps/v8/src/libsampler/sampler.cc
@@ -499,9 +499,9 @@ void SignalHandler::FillRegisterState(vo
state->sp = reinterpret_cast<void*>(mcontext.mc_rsp);
state->fp = reinterpret_cast<void*>(mcontext.mc_rbp);
#elif V8_HOST_ARCH_ARM
- state->pc = reinterpret_cast<void*>(mcontext.mc_r15);
- state->sp = reinterpret_cast<void*>(mcontext.mc_r13);
- state->fp = reinterpret_cast<void*>(mcontext.mc_r11);
+ state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
+ state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
+ state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
#endif // V8_HOST_ARCH_*
#elif V8_OS_NETBSD
#if V8_HOST_ARCH_IA32