The standard C library for FENIX
Go to file
Kat R. 422101ea86 I forgot a semicolon... 2022-11-16 23:26:09 -06:00
arch/i386 Smol documentation 2022-10-09 12:08:55 -05:00
ctype Woops. Fixed a stupid error 2020-12-24 22:36:51 -06:00
include Fixed uname declaration 2022-10-09 11:47:52 -05:00
libgen Gods, what a stupid typo 2022-05-28 11:16:08 -05:00
math I forgot a semicolon... 2022-11-16 23:26:09 -06:00
misc Wrote uname function 2022-10-09 11:48:04 -05: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 Wrote strcpy. Not sure if working 2022-10-09 11:48:26 -05:00
time I'm pretty sure it's fine in libc 2020-12-24 22:37:55 -06:00
unistd Wrote gethostname filler 2022-10-09 11:48:47 -05:00
COPYING Hey, look, license 2021-08-18 18:03:58 -05:00
README Updated list of stuff 2020-12-22 17:27:15 -06:00
Some libc slash libk todos Added proper cross-compiler reqs 2020-12-23 12:49:58 -06:00
makefile Added uname objs 2022-10-09 11:49:06 -05: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
float.h
iso646.h
libgen.h
limits.h??
stdbool.h
stddef.h
stdint.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:
aio.h
fmtmsg.h
fnmatch.h
grp.h
iconv.h
pwd.h
sys/utsname.h
syslog.h
ulimit.h

The following headers exist and are incomplete:
complex.h (<10%)
math.h (<33%)
netinit/in.h (37%)
stdio.h (<50%, ISO C functions are all there)
stdlib.h (<60%, ISO C functions are all there)
string.h (26%)
sys/io.h (??)
sys/socket.h (5%)
sys/types.h (<60%?)
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.