summaryrefslogtreecommitdiff
path: root/devel/glib2
diff options
context:
space:
mode:
authorjklos <jklos>2014-09-14 21:36:19 +0000
committerjklos <jklos>2014-09-14 21:36:19 +0000
commit46b90c68070b6a42bd9c7539cb7edb223e3cb28e (patch)
tree52fbb172c86e41cf174c38cca0c6ba3f18dd3c99 /devel/glib2
parentd1ec6c49ac8c1a52e649c68cc893587f9f899b7c (diff)
downloadpkgsrc-46b90c68070b6a42bd9c7539cb7edb223e3cb28e.tar.gz
Fixes glib2 on netbsd-5. From OBATA Akio. Tested on macppc and amd64.
Diffstat (limited to 'devel/glib2')
-rw-r--r--devel/glib2/distinfo3
-rw-r--r--devel/glib2/patches/patch-glib_gthread-posix.c34
2 files changed, 36 insertions, 1 deletions
diff --git a/devel/glib2/distinfo b/devel/glib2/distinfo
index 69eb8822050..34f44a9300e 100644
--- a/devel/glib2/distinfo
+++ b/devel/glib2/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.200 2014/09/05 20:49:55 prlw1 Exp $
+$NetBSD: distinfo,v 1.201 2014/09/14 21:36:19 jklos Exp $
SHA1 (glib-2.40.0.tar.xz) = 44e1442ed4d1bf3fa89138965deb35afc1335a65
RMD160 (glib-2.40.0.tar.xz) = c50eed34bf8df127b959af27b02d6036934f758e
@@ -31,4 +31,5 @@ SHA1 (patch-gio_gsocket.c) = 64479463d8dd48f707adaef29af0e48f4143c266
SHA1 (patch-gio_gunixcredentialsmessage.c) = ad4d56ac750e1822324c58c5e34e8f46ea1b58ac
SHA1 (patch-gio_tests_credentials.c) = b26089f372d4fe3903e536867caacf52b1aa45d5
SHA1 (patch-glib_gmessages.c) = 623ee56d9a11e4d97981ee3011f8717c5a2a9403
+SHA1 (patch-glib_gthread-posix.c) = 58e80ea627b39d672d31b81bee552701eff5a552
SHA1 (patch-glib_gtimezone.c) = d9686da52f171a073d80cfd9f80aa490088a00a3
diff --git a/devel/glib2/patches/patch-glib_gthread-posix.c b/devel/glib2/patches/patch-glib_gthread-posix.c
new file mode 100644
index 00000000000..dca831bd26c
--- /dev/null
+++ b/devel/glib2/patches/patch-glib_gthread-posix.c
@@ -0,0 +1,34 @@
+$NetBSD: patch-glib_gthread-posix.c,v 1.1 2014/09/14 21:36:19 jklos Exp $
+
+--- glib/gthread-posix.c.orig 2014-02-22 15:29:07.000000000 +0000
++++ glib/gthread-posix.c
+@@ -644,6 +644,7 @@ g_cond_impl_new (void)
+ #elif defined (HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined (CLOCK_MONOTONIC)
+ if G_UNLIKELY ((status = pthread_condattr_setclock (&attr, CLOCK_MONOTONIC)) != 0)
+ g_thread_abort (status, "pthread_condattr_setclock");
++#elif defined (CLOCK_MONOTONIC)
+ #else
+ #error Cannot support GCond on your platform.
+ #endif
+@@ -892,6 +893,21 @@ g_cond_wait_until (GCond *cond,
+ if ((status = pthread_cond_timedwait (g_cond_get_impl (cond), g_mutex_get_impl (mutex), &ts)) == 0)
+ return TRUE;
+ }
++#elif defined (CLOCK_MONOTONIC)
++ {
++ gint64 monotonic_now = g_get_monotonic_time ();
++ gint64 real_end_time;
++
++ if (end_time <= monotonic_now)
++ return FALSE;
++
++ real_end_time = g_get_real_time () + (end_time - monotonic_now);
++
++ ts.tv_sec = real_end_time / 1000000;
++ ts.tv_nsec = (real_end_time % 1000000) * 1000;
++ if ((status = pthread_cond_timedwait (g_cond_get_impl (cond), g_mutex_get_impl (mutex), &ts)) == 0)
++ return TRUE;
++ }
+ #else
+ #error Cannot support GCond on your platform.
+ #endif