- 6 March 2003, development system updates
The uClibc development systems for
i386,
powerpc,
arm,
and now for the first time
mips,
have been updated to uClibc 0.9.19. Several smaller problems
have also been fixed up.
This is an ext2 filesystem that runs natively on the specified
architecture. It contains all the development software you need to build
your own uClibc applications, including bash, coreutils, findutils,
diffutils, patch, sed, ed, flex, bison, file, gawk, tar, grep gdb, strace,
make, gcc, g++, autoconf, automake, ncurses, zlib, openssl, openssh and
more. And of course, everything is dynamically linked against uClibc. By
using a uClibc only system, you can avoid all the painful
cross-configuration problems that have made using uClibc somewhat painful
in the past. If you want to quickly get started with testing or using
uClibc you should give these images a try. You can loop mount and
then chroot into them, you can boot into them using user-mode Linux,
you can even 'dd' them to a spare partition and use resize2fs to
make them fill the drive. Whatever works best for you.
Have Fun.
- 3 March 2003, uClibc 0.9.19 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.19. This is once again primarily a bug-fix release. Several
critical problems with system calls were fixed, the pthreads library was
improved, debugging of applications using uClibc's pthreads library is
now possible (requires gdb 5.3 or newer that is compiled using uClibc),
and a number of other random fixes are included. This release retains
binary compatibility with uClibc 0.9.18 (except for mips, which didn't
work properly with uClibc 0.9.18 anyways). Updated development system
images compiled with uClibc 0.9.19 will be released shortly.
As usual, the
Changelog and source code for this release
are available here.
- 17 February 2003, development system updates
The uClibc development systems for
i386
and
powerpc,
and
arm
have been again updated. This time around a few broken symlinks
(one preventing C++ code from compiling) have been fixed, several
system calls related to uids and gid have been fixed, the powerpc
system call mechanism has been updated, and GNU tar and GNU grep
have been added. gcc, gcc+, ssh, etc are all still included and
things remain binary compatible with uClibc 0.9.18.
Have Fun.
- 12 February 2003, development system updates
The uClibc development system has had a number of problems
fixed, and has been updated for uClibc 0.9.18. The
i386
and
powerpc,
and
arm
devel systems are updated and ready to download and use.
Have Fun.
- 12 February 2003, uClibc 0.9.18 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.18. This is primarily a bug-fix release, as there were a few
directory handling problem that could cause application using uClibc 0.9.17
to either segfault or lose the first character when reading directry names.
Unfortunately, once again, this release is _NOT_ binary compatible with
earlier uClibc releases. I _think this will be the last time (with the
possible exception of some future changes to our locale support...)
As usual, the
Changelog
and source code
for this release are available here.
You might want to download uClibc from the closest
kernel.org mirror site.
Just pick the closest mirror site, and then go to
http://www.XX.kernel.org/pub/linux/libs/uclibc/
to download uClibc, where XX is your two letter country code.
- 25 January 2003, uClibc 0.9.17 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.17. The biggest piece of news with this release, thanks to
Manuel Novoa's continuing hard work, is that we now have fully standards
compliant locale support (optional of course). The support works nicely,
(though configuring the locales you wish to support is still manual -- a
task for the next release). Full locale data for over 300 locales adds
approximately 250k. The collation data for all supported locales is
roughly 180k. This may seem rather large to some -- but it is much smaller
than the approximately 40 MB needed by Glibc to provide the same data. And
if you don't need it, you can either disable locale support entirely, or
enable a smaller set of locales.
This release also fixes lots and lots of bugs. The arm
architecture support (I am embarrassed to note) was totally broken in the
last release, but is now working as expected. A security problem (a
buffer overflow in getlogin_r) was fixed. And there were architecture
updates across the board (x86, arm, powerpc, cris, h8300, sparc, and mips).
And of course, this release includes the usual pile of bug fixes. Many
thanks for the large number of patches and fixes that were contributed!
Unfortunately, this release is not binary compatible with earlier uClibc
releases. As noted as item 3 here,
uClibc does not (yet) attempt to
ensure binary compatibility across releases. We will eventually do that
(once we reach the "1.0" release) but not yet. A few bugs turned up that
needed to be fixed, and the only good way to fix them was to change some
fundamental data structure sizes. As a result, this release is _NOT_
binary compatible with earlier releases -- you will need to recompile your
applications. The x86, arm, powerpc, and mips architectures (i.e. the
systems Erik has available in his office for testing) have been tested and
are known to work following this change. Other architectures may
need additional updates. Sorry about that, but it had to be done.
As usual, the
Changelog
and source code
for this release are available here.
You might want to download uClibc from the closest
kernel.org mirror site.
Just pick the closest mirror site, and then go to
http://www.XX.kernel.org/pub/linux/libs/uclibc/
to download uClibc, where XX is your two letter country code.
- 25 January 2003, dev system updates, arm image released
A number of additional problems have been fixed and the arm build
is now, finally, compiling and working as expected. As such,
I have updated the
i386 development system image, the
powerpc development system image, and I am also releasing
upon an unsuspecting world the brand new
arm development system image!
Have fun!
All three development system images were compiled and built using the stock
buildroot system. These were also
built using the (about to be announced in a couple on minutes) uClibc
0.9.17 release, so if you want to begin compiling and testing stuff with
uClibc, but you don't feel like spending the _hours_ it takes to download,
configure, and build your own uClibc based development system -- then you
may want to download these and give them a try. They each contain a 100 MB
ext2 filesystem with everything you need to begin compiling your own
applications. I have (at least minimally) tested each of them and verified
that the included gcc and g++ compilers produce working uClibc linked
executables.
Oh, and I have also have updated the uClibc/gcc toolchain builders, so
if you just want a simple uClibc/gcc toolchain,
one of these should work for you.
- 10 January 2003, dev system updates, powerpc image released
A few problems showed up in yesterday's development system release
(adduser was broken, gdb didn't work, libstdc++ shared libs were missing,
etc). So I've updated the
i386 development system image to fix these problems.
Also, the
powerpc development system image has finally finished compiling
and is now released upon an unsuspecting world. Have fun!
- 9 January 2003, uClibc development system released
CodePoet Consulting (i.e. Erik) has been working hard on buildroot recently, and is pleased to
offer a full stand-alone uClibc-only development system. This is an ext2
filesystem for i386 containing all the development software you need to
build your own uClibc applications. With bash, awk, make, gcc, g++,
autoconf, automake, ncurses, zlib, openssl, openssh, gdb, strace, valgrind,
busybox, GNU coreutils, and more, this should have pretty much everything
you need to get started building your own applications linked against
uClibc. By using a uClibc only system, you can avoid all the painful
cross-configuration problems that have made using uClibc somewhat painful
in the past. A powerpc and an arm version are in progress. Expect them
to be released shortly....
The
uClibc development system is an 18MB bzip2 compressed ext2 filesystem,
so be prepared to wait if you are on a slow link. If you wish to have more
space, you can loop mount it and 'cp -a' the contents to their own
partition, or do what I did... WARNING, the following can be very
dangerous. Please be sure you know what you are doing before trying this.
I am not responsible if you lose all your important data.I had a spare
hard drive (in my case /dev/hdg but you'll want to adapt this to your own
needs), so I partitioned it with a single ext2 partition filling the drive
(in my case /dev/hdg1). Then I ran:
bzcat root_fs-i386.bz2 | dd of=/dev/hdg1
e2fsck -f /dev/hdg1
resize2fs -p /dev/hdg1
which overwrote everything on /dev/hdg with the new uClibc devel system,
and then expanded the filesystem with the uClibc devel system till it
filled the whole drive.
- 8 November 2002, uClibc 0.9.16 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.16. This release adds full support (including a native shared
library loader) for the CRIS architecture, contributed by Tobias Anderberg.
Stefan Allius contributed a number of patches to fix the initialization
order for shared library global constructors and destructors as well as a
large number of SuperH fixes and cleanups. uClibc now compiles with
newer versions of gcc (i.e. RedHat 8.0). Thanks to Christian Michon,
uClibc no longer requires perl to compile. Steven J. Hill fixed dlopen for
mips. Several problems with pty and tty handling were fixed. Manuel Novoa
added new support for an /etc/TZ file to globally set the system timezone,
and fixed up a number of remaining wide char issues. Manuel is still hard
at work on bringing full locale support (optional of course) to uClibc.
And of course, this release includes the usual pile of bug fixes. Many thanks
for the large number of patches and fixes that were contributed!
Erik and Manuel have been working on a
document describing some of the differences between uClibc and glibc.
It's not yet 100% complete, and it hasn't been nicely formatted yet. But
it contains a lot of helpful information and is worth a look.
And finally, the the old uClibc configuration system has been completely
removed (and there was much rejoicing). It was replaced with an entirely
new system based on LinuxKernelConf,
which has since been included into Linux 2.5.45, so it looks like Erik made
the right choice. Of course, those who have existing build systems using uClibc
will need to make a few changes... We think the change is worth it.
As usual, the
Changelog
and source code
for this release are available here.
You might want to download uClibc from the closest
kernel.org mirror site.
Just pick the closest mirror site, and then go to
http://www.XX.kernel.org/pub/linux/libs/uclibc/
to download uClibc, where XX is your two letter country code.
Updated gcc-3.2 and gcc-2.95 toolchains will be released shortly.
- 16 September 2002, gcc-3.2 and gcc-2.95 toolchains released
CodePoet Consulting (i.e. Erik) has released updated gcc-3.2 and gcc-2.95
uClibc toolchains. These toolchains build real gcc cross compilers (i.e.
not just a wrapper) and create executables linked vs uClibc. The new
gcc-3.2 provides uClibc support with the latest and greatest compiler
available from the gcc team. The gcc-2.95 toolchain has been updated to
the latest version of uClibc and now provides full C++ support, using the
STLport standard C++ library.
This toolchain should make it easy for anyone to build uClibc based
applications.
Source code can be downloaded here.
Be aware that much of the needed source code will actually be downloaded on
when you compile the toolchains. To build a toolchain, simply
grab the source, edit the Makefile to select where you would like
the toolchain installed, run 'make', and then go watch TV, eat
dinner, or visit with your friends while it compiles. It takes
about 15 minutes for Erik to compile the gcc-3.2 toolchain (w/C++ support)
on his Athlon XP 1600 (not counting the time it takes to download
source code).
- 27 August 2002, uClibc 0.9.15 Released
CodePoet Consulting is pleased to announce the immediate availability
of uClibc 0.9.15. This release fixes a number of problems that turned
up since the last release. The good news is that uClibc now
passes all tests in the perl 5.8 and Python 2.2.1 test suites, both with
and without pthreads. So without any further ado....
The
Changelog
and source code
for this release are available here.
Have fun!
- 12 August 2002, uClibc 0.9.14 Released
CodePoet Consulting is slightly less pleased then usual to announce the
immediate availability of uClibc 0.9.14. This is, unfortunately, a bugfix
release intended to fix the couple of dumb things that slipped into the
previous release. Version 0.9.13 of uClibc would fail to compile when
enabling both RPC and Pthreads. There was also a problem with RPC thread
local storage (but noone noticed since it didn't compile ;-). Also, the
thread locking in exit(), onexit() and atexit() was broken, and wasn't
actually locking anything. This release also fixes uClibc's gcc wrapper
to use crtbeginS.o and crtendS.o when compiling PIC code, fixing a subtle
bug (that was much less subtle on powerpc). Finally, this release includes a
few minor compile warning cleanups.
The
Changelog
and source code
for this release are available here.
Have fun!
- 12 August 2002, Native uClibc/gcc-3.1.1 toolchain released
CodePoet Consulting (i.e. Erik) has released an updated native
uClibc/gcc-3.1.1 toolchain. This toolchain builds a real gcc cross
compiler (i.e. not just a wrapper) and creates executables linked vs
uClibc. This toolchain has been (briefly) tested as working on x86, arm,
mips, and arm7tdmi (uClinux). This toolchain provides a number of
improvements over previous releases. In particular, Steven J. Hill found
and fixes a number of "glibc-isms" in the libstdc++ math support which
caused a number of math functions to be mapped to the non-standard named
under GNU libc. This release also includes greatly improved uClinux
"elf2flt" support, and it now produces working flat binaries for my
uClinux/arm7tdmi system. The native uClibc/gcc-2.95 toolchain will be
updated in a few days, and will include STLport which will allow that
toolchain to also provide full C++ support.
This toolchain should make it easy for anyone to build uClibc based
applications.
Source code can be downloaded here.
Be aware that much of the needed source code will actually be downloaded on
demand when you compile things. To build the toolchain, simply
grab the source, edit the Makefile to select where you would like
the toolchain installed, run 'make', and then go watch TV, eat
dinner, or visit with your friends while it compiles. It takes
about 15 minutes for Erik to compile the gcc-3.1.1 toolchain (w/C++ support)
on his Athlon XP 1600 (not counting the time it takes to download
source code). Your results may vary...
- 9 August 2002, uClibc now mirrored on kernel.org!
uClibc is now available from the kernel.org mirrors! This should make
uClibc downloads much faster. The kernel.org mirrors will have all
uClibc release versions (everything but the daily snapshots).
Here is a list of all the kernel.org mirror sites.
Just pick the closest mirror site, and then go to "/pub/linux/libs/uclibc/"
to download uClibc.
Just pick the closest mirror site, and then go to
http://www.XX.kernel.org/pub/linux/libs/uclibc/ to download the latest
uClibc release from a nice fast system.
- 9 August 2002, uClibc 0.9.13 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.13. After several days of testing, this release is looking very
solid. This release fixes three security vulnerabilites in previous
releases. There was an off-by-one buffer overflow in the group handling
code, and integer overflows in calloc() and xdr_array().
This release adds native shared library support for the Hitachi
SuperH architecture, thanks to Stefan Allius and Edie C. Dost. A
new mmap based malloc was implemented by Miles Bader. This is much
smarter than the old "malloc-simple" and is now the default for
mmu-less systems, where it should greatly help reduce memory
fragmentation and wastage. In addition to these larger items, there
has been a lot of work done to make uClibc a cleaner, more
capable, library. Most applications now compile and run without
any trouble.
The
Changelog
and source code
for this release are available here.
Have fun!
- 11 July 2002, Native uClibc toolchains updated
CodePoet Consulting (i.e. Erik) has released updated native
uClibc/gcc-3.1 and uClibc/gcc-2.95 toolchains. These toolchains
build real gcc cross compilers (i.e. not just a wrapper) and create
executables linked vs uClibc. These toolchains have been tested
and found working on x86, arm, and mmu-less arm. They should work
(at least in theory!) for all architectures supported by uClibc.
These toolchains should make it easy to anyone to build uClibc based
applications.
Source code can be downloaded here.
Be aware that much of the needed source code will actually be downloaded on
demand when you compile things. To build the toolchain, simply
grab the source, edit the Makefile to select where you would like
the toolchain installed, run 'make', and then go watch TV, eat
dinner, or visit with your friends while it compiles. It takes
about 15 minutes for Erik to compile the gcc-3.1 toolchain (w/C++ support)
on his Athlon XP 1600 (not counting the time it takes to download
source code). Your results may vary...
- 20 June 2002, uClibc 0.9.12 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.12. This release adds an i960 port, an initial alpha port,
fully working mips shared library support, shared library support fixes
for on powerpc, and many other improvements. One very exciting new feature
is nearly complete locale support, thanks to a lot of hard work by Manuel
Novoa III. uClibc's locale support is much smaller than glibc's,
though it is also slightly less flexible. This release was delayed by a
month due to the arrival of a new baby at Erik's house. For those that
have been anxiously waiting, this release should certainly be worth the
wait. Have fun!
The Changelog
and source code
for this release are available here.
- 28 May 2002, Native uClibc/gcc-3.1 toolchain
CodePoet Consulting has released source code and a Makefile to build a
gcc-3.1 toolchain that natively targets uClibc. Additionally, the
gcc-3.0.4 and gcc-2.95 toolchains have also been updated. These toolchains
make it easy to build uClibc based applications.
Source code can be downloaded here.
and is now much smaller,
since much of the needed binutils and gcc source code is now downloaded on
demand. To build the toolchain, simply grab the source, edit the Makefile
to select where you would like the toolchain installed, and then run 'make'
and wait for it to compile.
- 10 April 2002, uClibc 0.9.11 Released
CodePoet Consulting is pleased to announce the immediate availability of
uClibc 0.9.11. This release is primarily focused on fixing the issues that
have turned up since the last release. Several bugs in the gcc wrapper
have been fixed, allowing applications such as iproute2 and XFree86 to link properly.
Large file support has been improved, and a thread locking bug was
fixed that could cause s*printf calls to deadlock when threading was
enabled. Several bugs were also fixed with the powerpc, h8300, m68k,
sparc, and mips architecture support. Many additional applications now
compile and run perfectly and have been added to the working applications list .
The Changelog
and source code
for this release are available here.
- 10 April 2002, Native uClibc/gcc-3.0.4 toolchain
CodePoet Consulting has released source code and a Makefile
to build a gcc-3.0.4 toolchain that natively targets uClibc.
This brings with it full C++ support for uClibc, including the
libstdc++ library. A gcc-2.95.x toolchain will also be released
shortly, but is not yet ready. At this time, only source code and
a Makefile for the native uClibc toolchain is being released (i.e.
no binaries, sorry).
Source code can be downloaded here.
To build the toolchain, simply grab the source, edit the Makefile
to select where you would like the toolchain installed. Then
run 'make' and wait for it to compile. If you do not have a copy
of uClibc already, it will download the latest daily snapshot.
- 21 March 2002, uClibc 0.9.10 Released!
CodePoet Consulting is pleased to announce the immediate
availability of uClibc 0.9.10. This release adds pthreads support
(including pthreads support for mmu-less systems!). Additionally,
thanks to Manuel Novoa III, we now have a completely new stdio
library, which is small, standards compliant, supports pthreads,
wide/narrow streams, large files, and can even operate in a
low-memory unbuffered mode. Many, many bugs have been fixed and a
number of additional applications now compile and run perfectly.
Even with all these changes, uClibc continues to be very small.
On x86, a default build of the uClibc C library is still just 168k.
To make things more interesting, the release also adds support for
C++ constructors and destructors. To make it easy to use uClibc
when developing C++ applications, this release also provides a
wrapper for the GNU C++ compiler. Of course, for more complex C++
applications, such as those using iostreams, a standard C++ library
(libstdc++) is required. A native GNU toolchain (binutils/gcc) that
provides libstdc++ linked with uClibc 0.9.10 will be released in the
next couple of days, so stay tuned.
The Changelog
and Source code
for this release are available here.
- 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.
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.
- 26 November 2001, powerpc shared libraries fully working
Dave Schleef finished off the the work needed for shared library support on
powerpc. There had been a few problems remaining, and those are now squashed.
So shared libs on powerpc should be working fully now.
- 14 November 2001, m68 compiles again, Large file support working
About a month ago I synced the header files with glibc 2.2.4 for better
C++ support and better standards compliance. I forgot to sync up m68k,
sparc, powerpc, and mipsel. Dave Schleef fixed powerpc while he was fixing
up the shared lib loader. I just fixed up m68k, sparc, and mipsel so they
should all compile again.
I also finished up fixing large file support (just enable DOLFS in your
Config file to enable it) and it is working just great, and greatly increases
the number of glibc applications that will work "out-of-the-tarball" without
needing any changes.
- 12 November 2001, powerpc shared lib support
Thanks to David Schleef, uClibc now has full shared library support
on powerpc. This brings full shared library support to x86, ARM, and
now powerpc. Thanks Dave!
- 7 November 2001, uClibc application list
uClibc now has a list of applications
that are known to work. If you have any applications to add to the
list, submissions are welcome!
- 18 October 2001, buildroot uClibc example system
Those wanting an easy way to test out uClibc and give it
a test drive can download and compile
buildroot.
This is a nifty buildsystem that will automagically download and build
a User-Mode Linux
kernel, and will then download source for and compile up a fully
working uClibc based root filesystem. This should make it easy for
people to create their own projects. I hope that this build system
will allow people to more easily use and build uClibc based systems.
As an example of how nicely this works, the
Tuxscreen Project is using a
slightly adjusted variant of the buildroot system to cross
compile the blob bootloader, linux kernel, and a uClibc based jffs2
root filesystem (busybox, tinylogin, udhcp, lrzsz, pcmcia-cs and
microwindows) for ARM. Pretty cool.
- 11 October 2001, v850 architecture support
Miles Bader has contributed support for the v850 architecture.
- 25 Spetember 2001, header files updated
uClibc's header files are now in sync with glibc 2.2.4,
allowing better standards compliance, better portibility, and
better C++ support.
- 4 July 2001, ARM shared library support
uClibc now has full shared library support on ARM.
- 9 May 2001, libm added
uClibc now has a very complete math library.
- 9 May 2001, ld.so added
uClibc now has a native ld.so. It currently is only ported to work on x86,
but porting to other architectures should not be too difficult.
- 15 March 2001, powerpc port added
David Schleef contributed a powerpc port, which is now in CVS.
- 19 February 2001, SH port added
Jean-Yves Avenard contributed an SH port. See his email
with the initial patch here.
- 16 January 2001, uClibc as a shared library
As if January 16, uClibc can now be used (at least on x86) as a shared
library. See the email
announcing this achievement.
- 11 January 2001, gcc wrapper added
Manuel Novoa III has created a wrapper for gcc that makes compiling apps vs uClibc
as simple as just setting "CC" to gcc-uClibc-< arch>. This even works when cross
compiling! Very cool.
- 3 January 2001, uClibc now has a web page
A lot of work has been going on under the hood with uClibc,
so I decided to put together this webpage to let the world know
that it exists and is getting to be very usable.
|