Libc 4

waiting for the giant meteor Years ago, all Linux distributions used various versions of libc 4. But eventually everyone except for me migrated to the exciting new world of ELF with libc5 (the libc with approximately 100,000 incompatable binary interfaces) and then to the even more exciting world of gl*bc (a libc with only about 4 or 5 incompatable binary interfaces, but terrifyingly huge and not particularly backward compatable with anything else.)

Here are copies of all the sources of libc 4 (and earlier; Jiong Zhao, at, has a copy of libc 2.2.2 as part of his attempt to recreate a really ancient linux distribution) that I’ve been able to find. Libc 4.8 and newer are the versions I’m actively maintaining for Mastodon; the older ones are the ones that H. J. Lu released for early versions of Linux – I don’t even know if any of these older versions will actually build on Mastodon, but here they are for people who like to see what code bloat looks like.

=libc 4.8.4= BSD curses has been updated to include support for arrow and function keys a'la System V curses, and all the embedded SCCS keywords and copyright strings are now conditionally compiled (and not included in the version of libc that goes on the Mastodon install floppy. =libc 4.8.2= New functionality was added in here; llseek(), mlock(), munlock(), timeradd(), timersub(), a definition of quad_t (still not supported in printf() and scanf()) others that preceded version control. Some code was reworked to make the library build under gcc 2.95.2 (this project was stopped when I ended up with a completely trashed version of libc.) =libc 4.8.0= This is where I started actively maintaining libc 4; The clock rolled around to 2000 and I had to modify mktime(), et al, so they wouldn’t start generating time strings that would confuse programs like elm. =Even older versions= * libc 4.7.6 * libc 4.7.5 * libc 4.7.2 * libc 4.6.27 * libc 4.5.26 * libc 4.5.21 * libc 4.4.4 * libc 4.4.1 * libc-4.3.3 * libc-4.3 * libc-4.1 * libc-4.2.2

Older versions of libc were apparently shipped tightly coupled with gcc, under the names “jump4?.tar” – if you have one of these tarballs lying around on an old SLS, Slackware, MCC, TAMU, or root/boot set, I’d love to have a copy of it.