#include <pthread.h>
#include <stdio.h>
#include <time.h>

time_t epoch = 0;

void *
thread_gmtime (void *arg)
{
  return gmtime (arg);
}

int
main ()
{
  pthread_t th;
  int err = pthread_create (&th, 0, thread_gmtime, &epoch);
  if (err)
    return perror ("pthread_create"), 1;
  void *thread_result;
  err = pthread_join (th, &thread_result);
  if (err)
    return perror ("pthread_join"), 1;
 void *main_result = gmtime (&epoch);
 if (main_result != thread_result)
   {
     fprintf (stderr, "diagreeing pointers %p, %p\n",
	      main_result, thread_result);
     return 1;
   }
}
