% Linux Libc 4 -- tanned, rested, and ready! % David Parsons % Wed Jan 16 12:11:56 PST 2008 #Libc 4 [![waiting for the giant meteor](dodo2.png =120x151)](class:starboard) 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](libc-4.8.4.tar.gz)= [BSD curses](libc-current/curses-old) 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](/~mastodon) install floppy. =[libc 4.8.2](libc-4.8.2.tar.gz)= 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](libc-4.8.0.tar.gz)= 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.6.tar.gz) * [libc 4.7.5](libc-4.7.5.tar.gz) * [libc 4.7.2](libc-4.7.2.tar.gz) * [libc 4.6.27](libc-4.6.27.tar.gz) * [libc 4.5.26](libc-4.5.26.tar.gz) * [libc 4.5.21](libc-4.5.21.tar.gz) * [libc 4.4.4](libc-4.4.4.tar.gz) * [libc 4.4.1](libc-4.4.1.tar.gz) * [libc-4.3.3](libc-4.3.3.tar.z) * [libc-4.3](libc-4.3.tar.z) * [libc-4.1](libc-4.1.tar.Z) * [libc-4.2.2](libc-2.2.2.tar.z) 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.