Untangling the glibc header rat's nest (P.1) (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 4 May 2015 19:06:37 +0000 (15:06 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 6 May 2015 21:14:32 +0000 (17:14 -0400)
commit5b5cc885632740b6d4012d3f4e39f3a9851b9589
treef156eaec911f30fa2befa653c95a7c1138ba8a3f
parentfd192acb73c64c16b0daf01c0bb6bb753ac8c6ca
Untangling the glibc header rat's nest (P.1) (XCC)

The problem we have is that there are various kernel headers and various
header files in glibc that cover the same thing, and sometimes they
differ.

For instance, there are the O_ flags for open.  Glibc had them in fcntl.
Akaros had them in fs.h.  It'd be nice if we used the same files and
structures!  This came up as a problem when the files start to diverge.
For instance, O_NOFOLLOW was in fs.h, but not in bits/fcntl.h.

Unfortunately, the headers are a rat's nest.  (Rats' nest?)  Making the
simple changes caused time.h to get pulled in early, and there's also a
macro for st_atime and friends (to st_atim.tv_sec).  Good times.  In the
end, handling time.h seems to work, but with a rename of st_atim{e,}.

bits/stat.h has similar issues.  In this commit, I took care of the
fcntl stuff, hence the P.1 (stands for Part 1).  One of these days we
can try to dig a bit further with other headers.  At least we're a
little better off now.

Rebuild your toolchain.
kern/include/ros/fs.h
kern/include/ros/time.h [new file with mode: 0644]
kern/include/time.h
kern/src/ns/convM2kdirent.c
kern/src/vfs.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/bits/fcntl.h