diff --git a/Cargo.toml b/Cargo.toml
index 55d8d5e9131230dcb2c060bc3cf05cb1f11942ae..85785975e82bc6c7af1926a8c3d6d702667d5b29 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,10 +18,10 @@ fcntl = { path = "src/fcntl" }
 fenv = { path = "src/fenv" }
 float = { path = "src/float" }
 grp = { path = "src/grp" }
-semaphore = { path = "src/semaphore" }
 mman = { path = "src/mman" }
 platform = { path = "src/platform" }
 resource = { path = "src/resource" }
+semaphore = { path = "src/semaphore" }
 stat = { path = "src/stat" }
 stdio = { path = "src/stdio" }
 stdlib = { path = "src/stdlib" }
diff --git a/src/lib.rs b/src/lib.rs
index a45c9d7115eb2e28a2daddefbb19766c5e9eb305..a2589ae7954e34050a55f4d29a63d6e4135dc36f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -7,8 +7,11 @@ extern crate platform;
 extern crate ctype;
 extern crate errno;
 extern crate fcntl;
+extern crate fenv;
+extern crate float;
 extern crate grp;
 extern crate mman;
+extern crate resource;
 extern crate semaphore;
 extern crate stat;
 extern crate stdio;
diff --git a/tests/alloc.c b/tests/alloc.c
index 30e59da92af03974f68c109aeb5503a76e1ed995..784125bcf6b0db7072fe55cf14f84da572bd81c5 100644
--- a/tests/alloc.c
+++ b/tests/alloc.c
@@ -16,5 +16,5 @@ int main(int argc, char ** argv) {
         ptrc[i] = (char)i;
     }
     free(ptrc);
-
+    return 0;
 }
diff --git a/tests/args.c b/tests/args.c
index 276ae3b8a52f30360dbff3b1cc6905bbc6484a81..fd9c779701a1820d4e1484a3f42f1eb20e3cde48 100644
--- a/tests/args.c
+++ b/tests/args.c
@@ -8,4 +8,5 @@ int main(int argc, char ** argv) {
         write(STDOUT_FILENO, " ", 1);
     }
     write(STDOUT_FILENO, "\n", 1);
+    return 0;
 }
diff --git a/tests/brk.c b/tests/brk.c
index a6f1e358fc7c72cd9eb025d416e4e753c80985fa..138b0080f3af8ad22df5a5f9c89223483f96c76e 100644
--- a/tests/brk.c
+++ b/tests/brk.c
@@ -4,5 +4,5 @@
 int main(int argc, char** argv) {
     int status = brk((void*)100);
     printf("brk exited with status code %d\n", status);
+    return 0;
 }
-
diff --git a/tests/chdir.c b/tests/chdir.c
index 38eb4467088eb1d4184f02a2e78b7895a990c582..be0e29018f734f843dc30aa9c1c119c1f7eae3cb 100644
--- a/tests/chdir.c
+++ b/tests/chdir.c
@@ -12,4 +12,5 @@ int main(int argc, char** argv) {
     getcwd(cwd2, 4096);
     printf("final cwd: %s\n", cwd2);
     free(cwd2);
+    return 0;
 }
diff --git a/tests/dup.c b/tests/dup.c
index 7e9f3083bdf6a9eea029a05554c5205f1bcddb18..54bbb159b061ea89994f1301c50f8b47bed5ccad 100644
--- a/tests/dup.c
+++ b/tests/dup.c
@@ -13,4 +13,5 @@ int main(int argc, char** argv) {
     dup2(fd3, 1);
     printf("hello fd %d", fd3);
     close(fd3);
+    return 0;
 }
diff --git a/tests/error.c b/tests/error.c
index 9ab04c2bd967a08d2d8089c8d94deb00c31266d3..0b539992d475fb9b66d151c8c7ab60bd2b876f57 100644
--- a/tests/error.c
+++ b/tests/error.c
@@ -7,4 +7,5 @@ int main(int argc, char** argv) {
     chdir("nonexistent");
     printf("errno: %d = %s\n", errno, strerror(errno));
     perror("perror");
+    return 0;
 }
diff --git a/tests/fchdir.c b/tests/fchdir.c
index b7786423244ebf1495a6b4d3a58867363a3400d2..e89c5ef5937794acd437a56e969eeec3cd4abbef 100644
--- a/tests/fchdir.c
+++ b/tests/fchdir.c
@@ -8,4 +8,5 @@ int main (int argc, char** argv) {
     status = fchdir(fd);
     printf("fchdir exited with status code %d\n", status);
     close(fd);
+    return 0;
 }
diff --git a/tests/fcntl.c b/tests/fcntl.c
index f9293a5333dee9cb2387820cb43c20a409c24a12..4ce261d18828fcb85c3bb3d5cfcbbc9fe7ef5222 100644
--- a/tests/fcntl.c
+++ b/tests/fcntl.c
@@ -10,4 +10,5 @@ int main() {
     printf("fd %d duped into fd %d\n", newfd, newfd2);
     close(newfd);
     close(newfd2);
+    return 0;
 }
diff --git a/tests/fsync.c b/tests/fsync.c
index a86887185e2da22410e0daed7a89492dc705eeca..d9f42bd239aabd99308f815d403eceb5f38bb38a 100644
--- a/tests/fsync.c
+++ b/tests/fsync.c
@@ -8,4 +8,5 @@ int main (int argc, char** argv) {
     status = fsync(fd);
     printf("fsync exited with status code %d\n", status);
     close(fd);
+    return 0;
 }
diff --git a/tests/ftruncate.c b/tests/ftruncate.c
index 7dc4b90d82302a6767e9584868ffefd154f68b16..67f39f4c45dff22799ccfc94fc15b7612878f0ca 100644
--- a/tests/ftruncate.c
+++ b/tests/ftruncate.c
@@ -3,9 +3,10 @@
 #include <stdio.h>
 
 int main (int argc, char** argv) {
-    int fd = creat("ftruncate.out", 0777); 
+    int fd = creat("ftruncate.out", 0777);
     int status;
     status = ftruncate(fd, 100);
     printf("ftruncate exited with status code %d\n", status);
     close(fd);
+    return 0;
 }
diff --git a/tests/getid.c b/tests/getid.c
index f461884d3919e3e92e5980b1abe1de882c7d12f9..774ffea26093b7eba481193bb8f23d91740981c1 100644
--- a/tests/getid.c
+++ b/tests/getid.c
@@ -11,4 +11,5 @@ int main(int argc, char** argv) {
     uid_t uid = getuid();
     printf("egid: %d, euid: %d, gid: %d, pgid: %d, pid: %d, ppid %d, uid %d\n",
             egid, euid, gid, pgid, pid, ppid, uid);
+    return 0;
 }
diff --git a/tests/link.c b/tests/link.c
index 4df0dfde2f7b7a3ebdc2c828efeb317e900ef0e8..a6cf06b6e9b4672115b0ca612a49026890d1815e 100644
--- a/tests/link.c
+++ b/tests/link.c
@@ -4,4 +4,5 @@
 int main(int argc, char** argv) {
     link("./link.c", "./link.out");
     perror("link");
+    return 0;
 }
diff --git a/tests/math.c b/tests/math.c
index 981300fdeff56909cb8d6b0cca56594f6026fc7f..fb53fa2438dbff7a1e3b392b9ff8bda42928fe75 100644
--- a/tests/math.c
+++ b/tests/math.c
@@ -5,4 +5,5 @@ int main(int argc, char ** argv) {
     double pi = 3.14;
     float c = cos(pi);
     printf("cos(%f) = %f\n", pi, c);
+    return 0;
 }
diff --git a/tests/mem.c b/tests/mem.c
index cc104cbb9290c3ada258d0219d45996e74487cff..3cc42784317e6993d30e612d848b1c35f546baac 100644
--- a/tests/mem.c
+++ b/tests/mem.c
@@ -20,4 +20,5 @@ int main(int argc, char ** argv) {
 		exit(1);
 	}
 	printf("Correct memccpy\n");
+    return 0;
 }
diff --git a/tests/pipe.c b/tests/pipe.c
index 6772cd5112701bd36613d505806daa86d5edd75f..703073cc351b64b5b8618c438348fec74492c2bc 100644
--- a/tests/pipe.c
+++ b/tests/pipe.c
@@ -30,4 +30,5 @@ int main()
         /* close read end */
         close(pip[0]);
     }
+    return 0;
 }
diff --git a/tests/rmdir.c b/tests/rmdir.c
index cd9889380b802e770b11e462029d33b6cb20aeb7..97aa50fe1794616f5199a71c330950bb71af7d9b 100644
--- a/tests/rmdir.c
+++ b/tests/rmdir.c
@@ -6,4 +6,5 @@ int main(int argc, char** argv) {
     mkdir("foo", 0);
     int status = rmdir("foo");
     printf("rmdir exited with status code %d\n", status);
+    return 0;
 }
diff --git a/tests/setid.c b/tests/setid.c
index ce2b42ea93e4ba464faaf9341ea38fd2da171f11..cf6abc6c6726b5151b06cf6963343184b8856a02 100644
--- a/tests/setid.c
+++ b/tests/setid.c
@@ -23,4 +23,5 @@ int main( void )
         perror( "setreuid" );
     }
     printf("%d has euid %d and uid %d\n", getpid(), geteuid(), getuid());
+    return 0;
   }
diff --git a/tests/sleep.c b/tests/sleep.c
index ab66a4e75e540ce88a0fcb6ae49b33d7ccb8af79..40672c278c8b30a0271aeaf7931190c12bfa6b20 100644
--- a/tests/sleep.c
+++ b/tests/sleep.c
@@ -10,4 +10,5 @@ int main(int argc, char** argv) {
     timespec tm = {0, 10000};
     nanosleep(&tm, NULL);
     perror("nanosleep");
+    return 0;
 }
diff --git a/tests/unlink.c b/tests/unlink.c
index 0eceae0ac2891215ab2f531157476b6188952444..e8bbb517bf0120968da11a82e05cd799d8a005ab 100644
--- a/tests/unlink.c
+++ b/tests/unlink.c
@@ -4,4 +4,5 @@
 int main(int argc, char** argv) {
     link("./unlink.c", "./unlink.out");
     perror("unlink");
+    return 0;
 }