diff -ur posix90.orig/src/f90_unix_dirent_ccode.c posix90/src/f90_unix_dirent_ccode.c
--- posix90.orig/src/f90_unix_dirent_ccode.c	2006-05-31 19:10:38.000000000 +0000
+++ posix90/src/f90_unix_dirent_ccode.c	2013-05-24 02:35:27.000000000 +0000
@@ -19,6 +19,7 @@
 */
 
 #include <stdio.h>
+#include <string.h>
 #include <sys/types.h>
 #include <dirent.h>
 
diff -ur posix90.orig/src/f90_unix_env_ccode.c posix90/src/f90_unix_env_ccode.c
--- posix90.orig/src/f90_unix_env_ccode.c	2006-05-31 19:10:37.000000000 +0000
+++ posix90/src/f90_unix_env_ccode.c	2013-05-24 01:50:05.000000000 +0000
@@ -24,12 +24,13 @@
 #include <time.h>
 #include <errno.h>
 #include <unistd.h>
+#include <string.h>
 #include <sys/types.h>
 #include <sys/times.h>
 #include <sys/utsname.h>
 
 int c_clk_tck_(){
-    return CLK_TCK;
+    return sysconf(_SC_CLK_TCK);
 }
 
 void c_ctermid_(char *s,  int ls){
diff -ur posix90.orig/src/f90_unix_regexp_ccode.c posix90/src/f90_unix_regexp_ccode.c
--- posix90.orig/src/f90_unix_regexp_ccode.c	2006-05-31 19:10:37.000000000 +0000
+++ posix90/src/f90_unix_regexp_ccode.c	2013-05-24 02:28:48.000000000 +0000
@@ -19,6 +19,7 @@
 */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <regex.h>
diff -ur posix90.orig/src/f90_unix_signal_ccode.c posix90/src/f90_unix_signal_ccode.c
--- posix90.orig/src/f90_unix_signal_ccode.c	2006-06-17 21:09:17.000000000 +0000
+++ posix90/src/f90_unix_signal_ccode.c	2013-05-24 06:47:23.000000000 +0000
@@ -64,8 +64,8 @@
 	/* We got a handler. But we install the wrapper instead and store
 	   it in sigtable[], except the SA_NOWRAPPER flag is set
 	*/
-	if( ((int)*handler)!=SIG_IGN && 
-	    ((int)*handler)!= SIG_DFL && 
+	if(((int)*handler)!=(int)SIG_IGN && 
+	    ((int)*handler)!= (int)SIG_DFL && 
 	    !( *flags&SA_NOWRAPPER)) {
 	    /* We have a true handler (aka not SIG_IGN and not SIG_DFL
 	       and the SA_NOWRAPPER flag is not set. We install the wrapper.
@@ -75,7 +75,7 @@
 	    /* We install *handler as is: It is either SIG_IGN, SIG_DFL or this was
 	       requested by setting SA_NOWRAPPER
 	    */
-	    new_sig.sa_handler = *handler;
+	    new_sig.sa_handler = **((void (**)(int))handler);
 	}
 	sigtable[*sig] = * handler;
 	new_sig.sa_mask = *mask;
@@ -94,7 +94,7 @@
 	/* We found SIG_IGN, SIG_DFL or another routine. return this and set the
 	   SA_NOWRAPPER flag.
 	 */
-	*oldhandler = old_sig.sa_handler;
+	*oldhandler = (fsighandler_t)old_sig.sa_handler;
 	old_sig.sa_flags |= SA_NOWRAPPER;
     }
 
diff -ur posix90.orig/src/f90_unix_signal_const.c posix90/src/f90_unix_signal_const.c
--- posix90.orig/src/f90_unix_signal_const.c	2006-06-17 21:18:27.000000000 +0000
+++ posix90/src/f90_unix_signal_const.c	2013-05-24 02:34:04.000000000 +0000
@@ -32,8 +32,8 @@
 	   sizeof( int *));
     printf("type sigset_type ; character(len=%d) :: sigset ; end type\n", 
 	   sizeof(sigset_t));
-    printf("integer, parameter :: SIG_IGN = %d\n", SIG_IGN);
-    printf("integer, parameter :: SIG_DFL = %d\n", SIG_DFL);
+    printf("integer, parameter :: SIG_IGN = %d\n", (int)SIG_IGN);
+    printf("integer, parameter :: SIG_DFL = %d\n", (int)SIG_DFL);
     printf("integer, parameter :: SIGHUP = %d\n", SIGHUP);
     printf("integer, parameter :: SIGINT = %d\n", SIGINT);
     printf("integer, parameter :: SIGQUIT = %d\n", SIGQUIT);
diff -ur posix90.orig/src/f90_unix_time_const.c posix90/src/f90_unix_time_const.c
--- posix90.orig/src/f90_unix_time_const.c	2006-06-05 17:07:10.000000000 +0000
+++ posix90/src/f90_unix_time_const.c	2013-05-24 01:49:26.000000000 +0000
@@ -21,6 +21,7 @@
  */
 
 #include <time.h>
+#include <stdio.h>
 
 main(){
 
Only in posix90/src/test: testfile
Only in posix90/src: z.make.log
