Remove dependency for {unistd,stdlib}.h in vcore.h (XCC)
authorKevin Klues <klueska@cs.berkeley.edu>
Thu, 1 Oct 2015 02:24:22 +0000 (19:24 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 1 Oct 2015 14:20:55 +0000 (10:20 -0400)
We only had this dependency to include the prototype for _exit() so we
could override our exit() call with it.  We still need to do this
override, but there is no need to pollute the namespace of everything
that #includes vcore.h with all of the stuff from unistd.h and stdlib.h.
Just extern in the _exit() and exit() prototypes.

Removing this dependency meant that some of our .c files needed to
explicitly #include these files.  They are patched up accordingly.

Requires a rebuild of the cross compiler (XCC)

tests/mcp_halt.c
tests/mhello.c
tests/signal_futex.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/eventfd.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/tls.c
user/benchutil/pvcalarm.c
user/iplib/epoll.c
user/parlib/include/vcore.h
user/parlib/ucq.c

index 79db5a2..d0bc974 100644 (file)
@@ -6,6 +6,7 @@
 #include <ros/bcq.h>
 #include <parlib/arch/arch.h>
 #include <stdio.h>
 #include <ros/bcq.h>
 #include <parlib/arch/arch.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <parlib/vcore.h>
 #include <parlib/mcs.h>
 #include <parlib/timing.h>
 #include <parlib/vcore.h>
 #include <parlib/mcs.h>
 #include <parlib/timing.h>
index 5af9b52..7ca6fa7 100644 (file)
@@ -6,6 +6,7 @@
 #include <ros/bcq.h>
 #include <parlib/arch/arch.h>
 #include <stdio.h>
 #include <ros/bcq.h>
 #include <parlib/arch/arch.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <parlib/vcore.h>
 #include <parlib/mcs.h>
 #include <parlib/timing.h>
 #include <parlib/vcore.h>
 #include <parlib/mcs.h>
 #include <parlib/timing.h>
index b7c4165..c651a1f 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <parlib/parlib.h>
 #include <pthread.h>
 #include <futex.h>
 #include <parlib/parlib.h>
 #include <pthread.h>
 #include <futex.h>
index 372447e..2e51514 100644 (file)
@@ -10,6 +10,7 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 
 /* Gets a new EFD instance, returning the FD on success. */
 int eventfd(int initval, int flags)
 
 /* Gets a new EFD instance, returning the FD on success. */
 int eventfd(int initval, int flags)
index 831b217..6c0b6e7 100644 (file)
@@ -1,3 +1,4 @@
+#include <stdlib.h>
 #include <sys/tls.h>
 #include <parlib/vcore.h>
 #include <ldsodefs.h>
 #include <sys/tls.h>
 #include <parlib/vcore.h>
 #include <ldsodefs.h>
index 87f1f0d..46d8948 100644 (file)
@@ -15,6 +15,7 @@
 #include <parlib/arch/bitmask.h>
 #include <sys/queue.h>
 #include <fcntl.h>
 #include <parlib/arch/bitmask.h>
 #include <sys/queue.h>
 #include <fcntl.h>
+#include <unistd.h>
 #include <benchutil/pvcalarm.h>
 
 /* Different states for enabling/disabling the per-vcore alarms. */
 #include <benchutil/pvcalarm.h>
 
 /* Different states for enabling/disabling the per-vcore alarms. */
index 02bf2ea..764652a 100644 (file)
@@ -47,6 +47,8 @@
 #include <sys/user_fd.h>
 #include <stdio.h>
 #include <errno.h>
 #include <sys/user_fd.h>
 #include <stdio.h>
 #include <errno.h>
+#include <unistd.h>
+#include <malloc.h>
 
 /* Sanity check, so we can ID our own FDs */
 #define EPOLL_UFD_MAGIC                0xe9011
 
 /* Sanity check, so we can ID our own FDs */
 #define EPOLL_UFD_MAGIC                0xe9011
index 59a1562..526c653 100644 (file)
@@ -15,9 +15,9 @@ __BEGIN_DECLS
  * that properly under our vcore model (we shouldn't though).  We really need to
  * rethink what sys_yield 'should' do when in multicore mode, or else come up 
  * with a different syscall entirely. */
  * that properly under our vcore model (we shouldn't though).  We really need to
  * rethink what sys_yield 'should' do when in multicore mode, or else come up 
  * with a different syscall entirely. */
-#include <stdlib.h>
-#include <unistd.h>
 #undef exit
 #undef exit
+extern void _exit (int status);
+extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
 #define exit(status) _exit(status)
 /*****************************************************************************/
 
 #define exit(status) _exit(status)
 /*****************************************************************************/
 
index 6319e45..1c29107 100644 (file)
@@ -13,6 +13,7 @@
 #include <sys/mman.h>
 #include <assert.h>
 #include <stdio.h>
 #include <sys/mman.h>
 #include <assert.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <parlib/rassert.h> /* for the static_assert() */
 #include <parlib/vcore.h>
 
 #include <parlib/rassert.h> /* for the static_assert() */
 #include <parlib/vcore.h>