Welcome to kLIBC and kNIX
kLIBC is a C runtime library in which the coder is exploring The Single Unix Specification (SUS) and various *BSD, Sun and Linux interfaces used in 'portable' software. While implementing SUS completely and providing a great range of special BSD, Sun and Linux APIs is a kind of ultimate goal, the main focus is on what is interesting to play with and what is requested by porters using kLIBC.
kNIX - also known as The Unix Penthouse Apartment - is an associated act in which kLIBC is put thru the ringer. kNIX is an effort to create a UNIX like environment on OS/2 (and later NT) but without kicking out drive letters and other DOSishness. Ports of all the fundamental elements of a *NIX system can be found in the kLIBC repository. Not all of these ports are maintained here, they are included in order to be able to build the kNIX foundation. (GCC, Binutils, EMX, ash and yacc are maintained here, in case you was wondering.) kNIX employs Gentoo Portage for building and maintaining the environment.
You can find current and previous releases here: ftp://ftp.netlabs.org/pub/gcc/
Mailinglist & Bugs
If you want to contribute to kLIBC or if you have any questions please use our new mailinglist. You can either subscribe to it as mailinglist (send an email to libc-user-subscribe@…) or you can read it via a mail and news interface at gmane.org
To create a new ticket, you first have to Login (use "guest" as user and "netlabs" as password if you don't have a real login).
Bootstrapping kNIX & kLIBC
If you wish to build kLIBC 0.6.x Then check out the BuildLibc page.
If you wish to build kLIBC trunk Then bug bird in #netlabs about it being broken.
If you wish to build kNIX (trunk) Then:
- Download and install GCC (see link above).
- Checkout the trunk (big!): svn co http://svn.netlabs.org/repos/libc/trunk
- Run env.cmd.
- Run kmk.
- Get current portage snapshot and unpack it in the trunk:
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/snapshots/portage-latest.tar.bz2 tar xpjf portage-latest.tar.bz2
- Run bash -c "emerge --info to check that it works. Your done.