µ C l i b c

uClibc -- a C library for embedded systems
uClibc (aka µClibc/pronounced yew-see-lib-see) is a C library for embedded Linux systems. It is much smaller then the GNU C Library, but nearly all applications supported by glibc also work perfectly with uClibc. Porting applications from glibc to uClibc typically involves just recompiling the source code. uClibc supports standard Linux architectures (such as x86, strongArm, and powerpc), and also supports MMU-less (also known as µClinux) architectures such as the Coldfire, Dragonball, and ARM7TDMI micro-controllers. If you are building an embedded Linux system and you find that glibc is eating up too much space, you should consider using uClibc. If you are building a huge fileserver with 12 Terabytes of storage, then using glibc may be a better choice... uClibc is maintained by Erik Andersen and is licensed under the GNU LIBRARY GENERAL PUBLIC LICENSE . This license allows you to make closed source commercial applications using uClibc (Please consider sharing some of the money you make ;-). You do not need to give away all your source code just because you use uClibc and/or run on Linux.
Mailing List
uClibc has a mailing list. To subscribe, go and visit this page.
Known Working Applications List
uClibc now has a list of applications that are known to work. Submissions are welcome! Since most applications work just fine with uClibc, we are especially interested in knowing about any applications that either do not compile at all or do not work properly with uClibc.
Frequently Asked Questions
uClibc now has a list of Frequently Asked Questions. You might want to take a look.
Latest News
4 February 2002, uClibc 0.9.9 Released! CodePoet Consulting is pleased to announce the immediate availability of uClibc 0.9.9. With this release, just about everything we have tested now compiles and runs. In fact, there are now so many programs on the working application list that rather than continue to add to this list, from now on we will only be adding applications to the not working list. Most applications on the not working list either require pthreads, or require wide-character support. Work on wide-character support is well underway, and will hopefully be moving into CVS in the next week or two. Full pthreads support and rentrancy are on the TODO list and are expected to be complete in the next couple of months. Another very nice change is that we can now build full GNU toolchains (binutils/gcc) that target uClibc. This brings full C++ support to uClibc. A C++ toolchain is currently being tested, and will be publicly released in the next couple of days, so stay tuned. The Changelog and Source code for this release are available here. One final bit on news -- as some of you may have noticed, uclibc.org has been a bit overloaded and somewhat slow recently. The server should be getting colocated tomorrow, which will eliminate the speed problem. During the move, there may be some temporary disruption of service... Have Fun! 22 December 2001, uClibc 0.9.8 Released! After many months of initial development, we are pleased to announce the release of uClibc 0.9.8. This release should be quite solid, and is very usable. This also, hopefully, marks a transition from a slow incubation phase to a more methodical release cycle. From now one, there should be approximately one release per month. The source code for this release is available here. Old News Click here to read older news.
Download
There is now a script that creates a daily snapshot tarball of uClibc and posts it on here. uClibc also has a publicly browsable CVS tree (this CVS tree is also mirrored onto www.uclibc.org but they are both the same thing). Anonymous CVS access is available, and For those that are actively contributing there is even CVS write access.
Help Support uClibc development
Do you like uClibc? Do you need support? Do you need some feature added to uClibc? Then why not help out? We are happy to accept donations, provide support contracts, and implement funded feature requests. Additionally, uClibc is looking for corporate sponsors to assist development, pay for bandwidth, and help with hardware donations, especially donations of hardware for non-Intel architectures. Click here to help support uClibc and/or request features. If you prefer to contact us directly for payments (we have a credit card machine so you can avoid online payments), hardware donations, support requests, etc., you can contact CodePoet Consulting here.
TODO
Here are a few things on the TODO list: Shared library support for all supported architectures. We now have our own ld.so, but it needs to be ported to support each architecture. Shared library support for mmu-less systems. This is very doable (think of C++ vtables for example), but will take some work. Someone (hopefully) needs to volunteer to take the LSB Test Suite, pull out the C library testing stuff, and convert it (perl script, by hand, I don't care how) into a form that is usable without having it take over your entire system (i.e. similar to what is currently in the uClibc test suite). This will be enormously helpful! other things as I think of them.
Other Open Source C libraries:
GNU C Library (aka glibc) Al's FREE C Runtime Library diet libc the minix C library newlib and there is a C library, for eCos as well.
Links to other useful stuff
The uClinux home page The uClinux CVS repository The uClibc home page BusyBox udhcp CodePoet Consulting

Mail all comments, insults, suggestions and bribes to Erik Andersen |  |  |  |  |