diff -uNr parrot-cvs/MANIFEST parrot/MANIFEST
--- parrot-cvs/MANIFEST	2004-08-20 13:09:50.000000000 -0400
+++ parrot/MANIFEST	2004-09-01 10:05:46.220923000 -0400
@@ -226,6 +226,7 @@
 config/gen/platform/openbsd/memexec.c             []
 config/gen/platform/openbsd/misc.h                []
 config/gen/platform/platform_interface.h          []
+config/gen/platform/solaris/time.c                []
 config/gen/platform/win32/begin.c                 []
 config/gen/platform/win32/dl.c                    []
 config/gen/platform/win32/env.c                   []
diff -uNr parrot-cvs/config/gen/platform/solaris/time.c parrot/config/gen/platform/solaris/time.c
--- parrot-cvs/config/gen/platform/solaris/time.c	1969-12-31 19:00:00.000000000 -0500
+++ parrot/config/gen/platform/solaris/time.c	2004-09-01 10:06:35.145528000 -0400
@@ -0,0 +1,69 @@
+/*
+** Time stuff
+*/
+
+#include <time.h>
+#include <sys/time.h>
+
+/*
+** Parrot_intval_time()
+*/
+
+INTVAL
+Parrot_intval_time(void)
+{
+    return time(NULL);
+}
+
+
+/*
+** Parrot_floatval_time()
+*/
+
+FLOATVAL
+Parrot_floatval_time(void)
+{
+    struct timeval t;
+    gettimeofday(&t, NULL);
+    return (FLOATVAL)t.tv_sec + ((FLOATVAL)t.tv_usec / 1000000.0);
+}
+
+/*
+** Parrot_sleep()
+*/
+
+void
+Parrot_sleep(unsigned int seconds)
+{
+    sleep(seconds);
+}
+
+/*
+ * Parrot_gmtime_r()
+ */
+
+struct tm *
+Parrot_gmtime_r(const time_t *t, struct tm *tm)
+{
+    return gmtime_r(t, tm);
+}
+
+/*
+ * Parrot_localtime_r()
+ */
+
+struct tm *
+Parrot_localtime_r(const time_t *t, struct tm *tm)
+{
+    return localtime_r(t, tm);
+}
+
+/*
+ * Parrot_asctime_r()
+ */
+
+char*
+Parrot_asctime_r(const struct tm *tm, char *buffer)
+{
+    return asctime_r(tm, buffer, 26);
+}
