Package: procinfo Version: 18-1 I'm guessing this has something to do with "long"'s being 64-bit on 64-bit machines. But I'm not sure if it's the long's that procinfo is generating from the parsed /proc text, or the time_t type created by gettimeofday. Either way, changing float's to double's for calculating the elapsed time fixes the problem for me.
diff -ru procinfo-18/procinfo.c procinfo-18-mine/procinfo.c
--- procinfo-18/procinfo.c 2006-07-24 22:15:21.000000000 +1000
+++ procinfo-18-mine/procinfo.c 2006-07-24 22:15:25.000000000 +1000
@@ -78,7 +78,7 @@
char line[1024], cmdline[1024], booted[40], *version = NULL, *message =
NULL;
-float rate = 1.0; /* per interval or per sec */
+double rate = 1.0; /* per interval or per sec */
struct info new, old, base;
struct utsname ut;
@@ -1060,8 +1060,8 @@
then = now;
gettimeofday (&now, 0);
if (per_sec)
- rate = (float) now.tv_sec + (float) now.tv_usec / 1.0e6 -
- (float) then.tv_sec - (float) then.tv_usec / 1.0e6;
+ rate = (double) now.tv_sec + (double) now.tv_usec / 1.0e6 -
+ (double) then.tv_sec - (double) then.tv_usec / 1.0e6;
} else {
putchar ('\n');
signature.asc
Description: PGP signature

