pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/lang/nodejs Work around missing sem_timedwait(3) in Ne...
details: https://anonhg.NetBSD.org/pkgsrc/rev/3046880a25e2
branches: trunk
changeset: 651817:3046880a25e2
user: bad <bad%pkgsrc.org@localhost>
date: Thu May 14 17:09:29 2015 +0000
description:
Work around missing sem_timedwait(3) in NetBSD < 6.99.4 by reusing the patch
for NaCL from Chromium V8 change d4f11c0cf476dd854eaebec1cbacb1afc7bea18e.
PKGREVISION++
diffstat:
lang/nodejs/Makefile | 3 +-
lang/nodejs/distinfo | 3 +-
lang/nodejs/patches/patch-deps_v8_src_base_platform_semaphore.cc | 47 ++++++++++
3 files changed, 51 insertions(+), 2 deletions(-)
diffs (83 lines):
diff -r acfa6a543edd -r 3046880a25e2 lang/nodejs/Makefile
--- a/lang/nodejs/Makefile Thu May 14 17:08:46 2015 +0000
+++ b/lang/nodejs/Makefile Thu May 14 17:09:29 2015 +0000
@@ -1,9 +1,10 @@
-# $NetBSD: Makefile,v 1.32 2015/04/30 15:04:56 ryoon Exp $
+# $NetBSD: Makefile,v 1.33 2015/05/14 17:09:29 bad Exp $
DISTNAME= node-v0.12.2
CATEGORIES= devel
MASTER_SITES= http://nodejs.org/dist/${DISTNAME:S/node-//}/
PKGNAME= ${DISTNAME:S/-v/js-/}
+PKGREVISION= 1
MAINTAINER= filip%joyent.com@localhost
HOMEPAGE= http://nodejs.org/
diff -r acfa6a543edd -r 3046880a25e2 lang/nodejs/distinfo
--- a/lang/nodejs/distinfo Thu May 14 17:08:46 2015 +0000
+++ b/lang/nodejs/distinfo Thu May 14 17:09:29 2015 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.26 2015/04/30 15:04:56 ryoon Exp $
+$NetBSD: distinfo,v 1.27 2015/05/14 17:09:29 bad Exp $
SHA1 (node-v0.12.2.tar.gz) = a969f17a0a6c9238584f8946d96e8d39be8eb957
RMD160 (node-v0.12.2.tar.gz) = f486884bcb4f4f64ef9b85ac2be5006baafee19f
@@ -8,6 +8,7 @@
SHA1 (patch-deps_npm_node__modules_node-gyp_gyp_pylib_gyp_generator_make.py) = 78d6ddd37ae30e869e0da666a78baad86a638c50
SHA1 (patch-deps_uv_common.gypi) = af1c707cbc02a4aeccebebf6691d5a8680646a0d
SHA1 (patch-deps_v8_src_base_platform_platform-posix.cc) = aae5e1649a3ea876e724cec95731989fb01ff008
+SHA1 (patch-deps_v8_src_base_platform_semaphore.cc) = 7515ea52573e3d9cfae178b049f5ed225d9d73ec
SHA1 (patch-deps_v8_tools_gyp_v8.gyp) = a7e13e7ef8cc078a812a1f6f37da71c84eedaf6f
SHA1 (patch-deps_v8_tools_run-llprof.sh) = 39aa3faf77492ef8dd35b411b7b0e4605b469af3
SHA1 (patch-src_cares__wrap.cc) = d9510afd0cd4b0156a604d9197d9f97d6e3b291f
diff -r acfa6a543edd -r 3046880a25e2 lang/nodejs/patches/patch-deps_v8_src_base_platform_semaphore.cc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/nodejs/patches/patch-deps_v8_src_base_platform_semaphore.cc Thu May 14 17:09:29 2015 +0000
@@ -0,0 +1,47 @@
+$NetBSD: patch-deps_v8_src_base_platform_semaphore.cc,v 1.1 2015/05/14 17:09:29 bad Exp $
+Work around lack of sem_timedwait(3) in NetBSD < 6.99.4.
+Adapted from d4f11c0cf476dd854eaebec1cbacb1afc7bea18e of the Chromium V8 sources.
+
+--- deps/v8/src/base/platform/semaphore.cc.orig 2015-03-31 22:13:01.000000000 +0000
++++ deps/v8/src/base/platform/semaphore.cc 2015-05-14 12:47:08.000000000 +0000
+@@ -9,9 +9,14 @@
+ #include <mach/task.h>
+ #endif
+
++#if V8_OS_NETBSD
++#include <sys/param.h> // for __NetBSD_Version__
++#endif
++
+ #include <errno.h>
+
+ #include "src/base/logging.h"
++#include "src/base/platform/elapsed-timer.h"
+ #include "src/base/platform/time.h"
+
+ namespace v8 {
+@@ -106,6 +111,17 @@
+
+
+ bool Semaphore::WaitFor(const TimeDelta& rel_time) {
++#if V8_OS_NACL || (V8_OS_NETBSD && !__NetBSD_Prereq__(6,99,4))
++ // PNaCL and older NetBSD doesn't support sem_timedwait, do ugly busy waiting.
++ ElapsedTimer timer;
++ timer.Start();
++ do {
++ int result = sem_trywait(&native_handle_);
++ if (result == 0) return true;
++ DCHECK(errno == EAGAIN || errno == EINTR);
++ } while (!timer.HasExpired(rel_time));
++ return false;
++#else
+ // Compute the time for end of timeout.
+ const Time time = Time::NowFromSystemTime() + rel_time;
+ const struct timespec ts = time.ToTimespec();
+@@ -129,6 +145,7 @@
+ DCHECK_EQ(-1, result);
+ DCHECK_EQ(EINTR, errno);
+ }
++#endif
+ }
+
+ #elif V8_OS_WIN
Home |
Main Index |
Thread Index |
Old Index