summaryrefslogtreecommitdiff
path: root/sysutils/open-vm-tools
diff options
context:
space:
mode:
authortaca <taca>2009-09-22 07:08:05 +0000
committertaca <taca>2009-09-22 07:08:05 +0000
commit0750d28b9da549292517fbdb16ba1b371f603073 (patch)
tree4b58cb3861128aeb0c9b475b0ca2fcee7da4a896 /sysutils/open-vm-tools
parent50034fa2d5ee3a0c3da3eb497910739afcda0b14 (diff)
downloadpkgsrc-0750d28b9da549292517fbdb16ba1b371f603073.tar.gz
Build problem with 64bit time_t, refering to nonaka's blog:
http://d.hatena.ne.jp/nonakap/20090305/p3
Diffstat (limited to 'sysutils/open-vm-tools')
-rw-r--r--sysutils/open-vm-tools/distinfo3
-rw-r--r--sysutils/open-vm-tools/patches/patch-by60
2 files changed, 62 insertions, 1 deletions
diff --git a/sysutils/open-vm-tools/distinfo b/sysutils/open-vm-tools/distinfo
index ca5a679ac96..c8943fca8fb 100644
--- a/sysutils/open-vm-tools/distinfo
+++ b/sysutils/open-vm-tools/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.4 2008/09/14 16:15:05 bjs Exp $
+$NetBSD: distinfo,v 1.5 2009/09/22 07:08:05 taca Exp $
SHA1 (open-vm-tools-2008.08.08-109361.tar.gz) = 1c44c3524cd9cbc5870f1c6065b03a6b31859a25
RMD160 (open-vm-tools-2008.08.08-109361.tar.gz) = 4ea0a6aa2edda2bc404c865dc5b58f3a177ae411
@@ -53,3 +53,4 @@ SHA1 (patch-bu) = 9e2533d967cfb1cdc780516359ab8e7c373b70f5
SHA1 (patch-bv) = c15eadcf4968703c9bf4c16d368f7f7b5b39b046
SHA1 (patch-bw) = 002f3a78a5d0f52d1e1a2cd62f6ad8136f531939
SHA1 (patch-bx) = acdb1d8f25d4353e0d95ea613ea83580679b4d9f
+SHA1 (patch-by) = c6018a330fdabefd3fc60d3e6e6c95bdf4f7f2bc
diff --git a/sysutils/open-vm-tools/patches/patch-by b/sysutils/open-vm-tools/patches/patch-by
new file mode 100644
index 00000000000..1a7f05f7d47
--- /dev/null
+++ b/sysutils/open-vm-tools/patches/patch-by
@@ -0,0 +1,60 @@
+$NetBSD: patch-by,v 1.1 2009/09/22 07:08:05 taca Exp $
+
+--- lib/hgfs/hgfsUtil.c.orig 2008-08-08 16:01:54.000000000 +0900
++++ lib/hgfs/hgfsUtil.c
+@@ -95,24 +95,19 @@ int
+ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
+ uint64 ntTime) // IN: Time in Windows NT format
+ {
+-#ifndef VM_X86_64
+ uint32 sec;
+ uint32 nsec;
+
+ ASSERT(unixTime);
+- /* We assume that time_t is 32bit */
+- ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4);
+
+- /* Cap NT time values that are outside of Unix time's range */
+-
+- if (ntTime >= UNIX_S32_MAX) {
+- unixTime->tv_sec = 0x7FFFFFFF;
+- unixTime->tv_nsec = 0;
+- return 1;
+- }
+-#else
+- ASSERT(unixTime);
+-#endif
++ if (sizeof(unixTime->tv_sec) == 4) {
++ /* Cap NT time values that are outside of Unix time's range */
++ if (ntTime >= UNIX_S32_MAX) {
++ unixTime->tv_sec = 0x7FFFFFFF;
++ unixTime->tv_nsec = 0;
++ return 1;
++ }
++ }
+
+ if (ntTime < UNIX_EPOCH) {
+ unixTime->tv_sec = 0;
+@@ -120,14 +115,14 @@ HgfsConvertFromNtTimeNsec(struct timespe
+ return -1;
+ }
+
+-#ifndef VM_X86_64
+- Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec);
+- unixTime->tv_sec = sec;
+- unixTime->tv_nsec = nsec * 100;
+-#else
+- unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000;
+- unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100;
+-#endif
++ if (sizeof(unixTime->tv_sec) == 4) {
++ Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec);
++ unixTime->tv_sec = sec;
++ unixTime->tv_nsec = nsec * 100;
++ } else {
++ unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000;
++ unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100;
++ }
+
+ return 0;
+ }