diff options
author | taca <taca> | 2009-09-22 07:08:05 +0000 |
---|---|---|
committer | taca <taca> | 2009-09-22 07:08:05 +0000 |
commit | 0750d28b9da549292517fbdb16ba1b371f603073 (patch) | |
tree | 4b58cb3861128aeb0c9b475b0ca2fcee7da4a896 /sysutils/open-vm-tools | |
parent | 50034fa2d5ee3a0c3da3eb497910739afcda0b14 (diff) | |
download | pkgsrc-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/distinfo | 3 | ||||
-rw-r--r-- | sysutils/open-vm-tools/patches/patch-by | 60 |
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; + } |