The standard C library for FENIX
Go to file
Gitea 8fd6c4b295 Rewrote some stuff to work w/ pointer math 2020-12-21 20:54:41 -06:00
arch/i386 Added constants 2020-12-21 13:45:19 -06:00
ctype Initial ascii-only versions 2020-12-13 04:55:41 -06:00
include Added a bunch of constants 2020-12-21 19:34:17 -06:00
libgen Added a bunch of stuff 2020-12-01 17:40:03 -06:00
math Added a bunch of stuff 2020-12-01 17:40:03 -06:00
projects/fenix/sysroot/usr/include Added a bunch of stuff 2020-12-01 17:40:03 -06:00
stdio Fixed errno for extern 2020-12-18 12:39:22 -06:00
stdlib Rewrote some stuff to work w/ pointer math 2020-12-21 20:54:41 -06:00
string Added a bunch of stuff 2020-12-01 17:40:03 -06:00
time Added a bunch of stuff 2020-12-01 17:40:03 -06:00
README Finished time.h? 2020-12-13 09:13:58 -06:00
Some libc slash libk todos Added a bunch of stuff 2020-12-01 17:40:03 -06:00
makefile Rearranged for hosted v. freestanding 2020-12-21 13:45:13 -06:00

README

fenlibc - Fenix Standard C Library
==================================

fenlibc is a standard C library used by Fenix. This library follows the ISO C
and POSIX standards and is reasonably portable across UNIX and UNIX-like
systems, though it may not be suitable as a drop-in replacement for the C
library that exists on such a system.

Currently, the following headers are finished and fully compliant:
assert.h*
cpio.h
errno.h?
iso646.h
libgen.h
limits.h?
stdbool.h
stddef.h
sys/un.h
tar.h

*relies on fprintf, which we don't have yet.

The following headers are POSIX-compliant, but not XSI-compliant:

The following headers are ISO-compliant, though not POSIX-compliant:

The following headers have working code, but are still in progress:
ctype.h (56%, missing locale-specific functions)
math.h (3%)
stdio.h (3% + most of printf and maybe perror?)
stdlib.h (13%)
string.h (26%)
time.h (4%)

The following headers exist and have all definitions, but no code:
sys/utsname.h
syslog.h
ulimit.h

The following headers exist and are incomplete:
float.h (45%)
math.h (<33%)
netinit/in.h (37%)
stdio.h (<20%)
stdlib.h (24%)
string.h (26%)
sys/io.h (??)
sys/socket.h (5%)
sys/types.h (37%)
sys/wait.h (63%)
time.h (14%)
unistd.h (<15%)

Building
--------

Currently, fenlibc can be built as part of a standard Fenix ISO through its
makefile. To do so, simply run Fenix's build.sh script. It could use alterations
to allow its C library to be build to an existing system. If you'd like to
help out, that's a good place to start!

Portability
-----------

Currently, fenlibc has yet to be tested on any existing UNIX{,-like} systems.
If you have any luck getting it up and running on a UNIX{,-like} system,
let us know!

Copyright
---------

Licensed under the CWPL v5 with CC-BY 4.0 by Katlynn Richey.

fenlibc is free software. Feel free to modify and/or distribute it!
See the file COPYING for more details.