0.9.31 2 April 2010 Upgrade notices from previous versions. o On x86_64 the format of /var/run/utmp changed compared to previous versions. To retain compatibility with glibc we now define __WORDSIZE_COMPAT32. If you are certain that you will never use glibc nor run in i386 mode on your x86_64 installation, you can remove this definition from wordsize.h. Otherwise you have to delete /var/run/utmp on x86_64 hosts when upgrading to 0.9.31 o The SHARED_LIB_LOADER_PREFIX was renamed to a single path component called MULTILIB_DIR and defaults to 'lib'. 0.9.27 12 January 2005 This has been a long time in the making... Release highlights: o New stdio implementation o New optimized string functions o Major improvements to the shared lib loader o Shared libraries work properly on powerpc o Debugging works on mips o New architectures: frv, nios, nios2, bfin o Linux 2.6.x kernel support o Lots and lots of bug fixes This release is NOT binary compatible with uClibc 0.9.26 or any earlier release, so be prepared to recompile your software if you are still using an old version of uClibc. -Erik 0.9.26 3 January 2004 This simply adds a fix for a pthread bug that was noticed a few hours after the previous release. Otherwise identical to 0.9.25. This release remains binary compatible with uClibc 0.9.21-25 as long as you take care to avoid any configuraton changes that will break things. We _were_ planning to break binary compatibilty in this release, but decided to hold those changes so we could push out a bugfix release. We _will_ break binary compatibilty in the upcoming 0.9.27 release to implement a few things we have been postponing. That should hopefully be the last ABI change before we freeze the ABI for the upcoming 1.0.x stable uClibc series. Release highlights: o A trivial fix for a pthread bug o Nothing else -Erik 0.9.25 3 January 2004 See Changelog.full for the complete list of who did what. Note: This release remains binary compatible with uClibc 0.9.21-24 as long as you take care to avoid any configuraton changes that will break things. We _were_ planning to break binary compatibilty in this release, but decided to hold those changes so we could push out a bugfix release. We _will_ break binary compatibilty in the upcoming 0.9.26 release to implement a few things we have been postponing. That should hopefully be the last ABI change before we freeze the ABI for the upcoming 1.0.x stable uClibc series. Release highlights: o Fixed a ton of problems found using the LTP and NIST test suites. The few remaining test failures are obscure corner cases, such as a few functions that fail (correctly) with incorrect errno values. o Fixed a longstanding pthreads bug -- amoung other things, you no longer need to explicitly add -lpthread for perl to work. o Added some sh optimized string functions o Added sh64 shared library support o The default malloc implementation has been replaced, and will now actually free memory when told to do so. o Both popen() and exec*() now behave themselves per SuSv3 o Better 2.6.x kernel header support o Added support for Position Independent Executables (PIE) on x86 o Lots of other minor cleanups -Erik 0.9.24 15 December 2003 See Changelog.full for the complete list of who did what. Note: This release remains binary compatible with uClibc 0.9.21-23 as long as you take care to avoid any configuraton changes that will break things. We currently plan to break binary compatibilty in the upcoming 0.9.25 to implement a few things we have been postponing, which will hopefully be the last change.... Release highlights: o Fixed several silly configuration problems o Added arm optimized string functions o Lots of minor cleanups -Erik 0.9.23 13 November 2003 See Changelog.full for the complete list of who did what. Note: This release is binary compatible with uClibc 0.9.21 and 0.9.22 as long as you take care to avoid any configuraton changes that will break things. Enabling or disabling things like soft-float, locale, wide wchar support, or changing cpu type are all good examples of things that will break binary compatibility. Release highlights: o Fixed several silly configuration problems that were present in the 0.9.22 release. o Fixed compilation problem with soft-float support on several architectures. o Lots of cleanup work on the powepc shared lib loader thanks to Joakim Tjernlund. o Updated the debian packaging for use in a standalone uClibc system, rather than being a subordinate library under a glibc based system. -Erik 0.9.22 8 November 2003 See Changelog.full for the complete list of who did what. Note: This release is binary compatible with the 0.9.21 release if you take care to avoid any configuraton changes that might break things for you (i.e. enabling or disabling things like soft-float, locale, wide wchar support, or changing cpu type are all good examples of binary incompatible config options). Release highlights: o Added e1, microblaze, and sh64 architectures. o Much improved soft-float support o Rewrote the passwd and group handing functions and implemented all SuSv3 required reentrant versions. o Reworked and updated the Config system. You now get to select your target architecture with the config system. o Fixed pthreads for mmuless m68k systems o Added some x86 optimized string functions. o Lots and lots of bugs fixed. -Erik 0.9.21 9 September 2003 See Changelog.full for the complete list of who did what. Note: This release is not binary compatible with earlier releases. Sorry about that. We have never promised to provide binary compatibility until we hit version 1.0, and even then, if you change your configuration. Release highlights: o uClibc now has full ANSI/ISO C99 locale support (except for wcsftime() and collating items in regex). o Added support for using pre-generated locale data, making it easy for mere mortals to use uClibc w/locale support. o Lots of new tuning options added to trade size for features, allowing for smaller static binaries. o The "dlopen()'ing libraries that depend on libraries" problem was fixed. o A new scanf implementation. Well tested, but brand new so watch for obscure bugs... o Reworked and updated the Config system, adding several nice new features which we now use. o Lots and lots of sundry bug fixes and cleanups. -Erik 0.9.20 30 June 2003 See Changelog.full for the complete list of who did what. Note: This release remains binary compatible with 0.9.18 and 0.9.19. Release highlights: o Some ldd, profiling, and gcc wrapper updates o Updated to support and compile with gcc 3.3 o Several needed mips updates o Building under cygwin should now work... o Prevent non-PIC code getting into PIC libs o Added mmap64 support o mmu-less systems now get a 16k default thread stack size which is much more sane than the old 2 MB default... o Implemented syscall() for powerpc o Optionally struct tm extension support o Lots of other sundry little fixes and cleanups. o Prevent buffer overflows in the passwd and group functions. -Erik 0.9.19 3 March 2003 See Changelog.full for the complete list of who did what. Note: This release remains binary compatible with 0.9.18 (except for mips, but then mips was unusable in stock 0.9.18 anyways). Release highlights: Stefan Allius o Some Makefile and warning fixes David Airlie o Fixed gcc wrapper handling of ctor/dtor stuff when used in with and w/o the nostdinc and nostdlib options Erik Andersen o Fixed a number of system call kernel type/user type translation problems that scrambled a handful of system calls. o Fixup powerpc syscalls to eliminate warnings with gcc-3.2 o Fixed several ioctl special cases for powerpc o Checked in forgotten mips kernel_types.h changes o Fixed mips shared library loader bug that caused segfaults o Major update to the pthreads library. Should improve performance. o Fixed uClibc's shared library loader so we can properly debug applications using pthreads (must use gdb 5.3 or newer which was compiled using uClibc). o Made uClibc's ldd act just the glibc provided one (i.e. relying on the shared lib loader to do the work) when it is possible to doi so, and only rummage about the ELF headers when we have no other choice (such as when using 'ldd' on cross compiled stuff). Miles Bader o header file updates for v850 architecture o Fixed v850 crt0.S __uClibc_main argument stack space Jeffrey Damick o Fixed res_init() so it properly reloads /etc/resolv.conf Vadim Lebedev o Fixed ARM setjmp when floating point was disabled David McCullough o Removed debug (-g) when building crti.o and crtn.o, as debug would mess up the build for SH4 and probably others. o Fixed SH setjmp when floating point was enabled -Erik 0.9.18 12 February 2003 See Changelog.full for the complete list of who did what. Note: Once again, this release is _NOT_ binary compatible with earlier releases. I _think this will be the last time (with the possible exception of some future changes to our locale support...) Release highlights: Stefan Allius o fixed a compile problem when large file support was disabled o fixed dlib_pic.o to compile with proper flags o fixed a shared lib loader compile warning o Made adding libgcc functions to uClibc optional Erik Andersen o Fixed scandir64 to not free the wrong pieces of memory which caused segfaults o Fixed mismatches between kernel and libc dirent structures o Fixed mismatches between the size of uClibc's struct dirent and struct dirent64 so that when _FILE_OFFSET_BITS=64 we do not lose part of the filename o Fixed getdents64.c so the build will not break when compiling vs a 2.0.x Linux kernel when UCLIBC_HAS_LFS is enabled o Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled o Fixed licenses for a few files that erroneously were listed as GPL but were really LGPL after discussing with authors o sigaction for x86 had an extra and unwanted sigaction syscall o Fixed debugging of arm binaries by adding a .note.ABI-tag section Miles Bader o header file updates for v850 architecture o Fixed v850 clone syscall Christian Krause o Fixed pthread_cond_timedwait to properly uses rt singals when available Christophe Massiot o Added mips _flush_cache syscall David McCullough o Added m68k brk syscall Marshall M. Midden o Fixed pipe implementation for mips -Erik 0.9.17 25 January 2003 See Changelog.full for the complete list of who did what. Note: I have always reserved the right to make binary incompatible changes as needed prior to the "1.0" release. This release is a good example of that. 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. So I did just that. As a result, this release is _NOT_ binary compatible with earlier releases -- you will need to recompile your applications. Release highlights: Stefan Allius o fixed a number of shared library loader bugs o setjmp, longjmp, clone, and vfork cleanups for the SH architecture o Don't build the config system with ncurses unless asked to Tobias Anderberg o cris architecture updates Erik Andersen o Changed 'struct stat' and 'struct stat64' so they use types that are consistant with use elsewhere in the library. Without this, subtle bugs would occur due to comparing signed and unsigned types (for example, GNU tar wouldn't work) o Fixed dlopen so it works with staticly linked apps o Fixed sigaction on arm architecture so sa_restorer works properly o Fixed sigaction on x86 architecture for (fixed debugging threads) o Fixed a wide char related segfault in the regular expression code o Powerpc pread and pwrite are now implemented correctly o Powerpc syscall mechanism re-implemented o Sparc architecture and syscall mechanism fixed up so things compile o usershell reimplemented o Fixed global destructors for staticly linked applications o Added dynamic atexit support (needed for full C++ ctor/dtor support) o The ldd utility now acts more like the GNU utility o Added a stub libnsl library to make stupid configure scripts bahave o Always build crt1.o as well as crt0.o to minimize the need to mess with the compiler o Rewrote powerpc crt0.S to properly handle ctors/dtors o Removed unimplemented and legacy stuff from our header files to make configure behave better o Made the lib loader also support libs in /usr/X11R6/lib by default o Config system updates o networking function updates o Large file support updates o Lots of other little bug fixes and cleanups Nick Fedchik o Support ether_aton Nathan Field o Fixed pthread_mutex_lock and pthread_mutex_unlock so they actually work as advertised on mips o Fixed several nasty pthread bugs fixing debugging Brett Hunt o Fixed potential segfaults during 'make menuconfig' Jay Kulpinski o Fixed a subtle problem in the DNS resolver that prevented uncompressed DNS lookup responses from working David McCullough o Fixed pclose error handling David Meggy o fixed the problem where arm binaries would crash on start that Erik stupidly caused right before the last release. Manuel Novoa III o Major locale support update! o Allow people to use pregenerated locale data instead of generating approx 40Mb of glibc locales to get the 300+ locales currently supported. o locale dependent collation support o Fixed locale support tools to work when cross-compiling o Added the *wprintf functions o Added the wcsto{inttype} functions o Added iconv() and a mini iconv utility o Added hsearch and hsearch_r o Fixed a silly bug allowing wprintf %s to work correctly. o Fixed fdopen when used with "a" (append). o Fixed stdio file position handing to be sure fell() always gives correct results Luc Van Oostenryck o Fixed a buffer overflow in getlogin_r Yoshinori Sato o Hitachi h8300 architecture update Ronald Wahl o Powerpc shared library relocation fixes -Erik 0.9.16 8 November 2002 See Changelog.full for the complete list of who did what. Release highlights: o CRIS architecture and shared library support from Tobias Anderberg o New uClibc configuration system o shared library global constructors and destructors initialization ordering fixed by Stefan Allius o More SuperH architecture fixes from Stefan Allius o uClibc now compiles with newer versions of gcc (i.e. RedHat 8.0) o uClibc no longer requires perl to compile o mips dlopen was fixed by Steven J. Hill o pty and tty handling fixes o Manuel Novoa added support for a new /etc/TZ file for globally setting the system timezone. o Manuel also fixed up a number of remaining wide char issues. o Lots of other little bug fixes and cleanups -Erik 0.9.15 27 August 2002 This is a minor bugfix release. See Changelog.full for the complete list of who did what. Release highlights: o Eliminated the HAS_LONG_LONG option. gcc always supports long long, and the option never excluded all long long anyways. o ctype.h no longer allows multiple argument evaluation in compliance with ANSI/ISO C99 o Obscure printf fixes -- one involving %o and one involving %f. o Bugfixes for locking and reentrance in password/group functions o Directly use kernel types for most items, eliminating needless translation and fixing several bugs. o Directly use kernel struct stat -- no more translating o More superH (sh) architecture merging from Stefan Allius o Errno values and strerror are now correct on alpha, sparc, and mips o Fixed an obscure bug with fclose when custom streams are enabled. o Lots of other little bug fixes and cleanups -Erik 0.9.14 12 August 2002 This is a minor bugfix release. See Changelog.full for the complete list of who did what. Release highlights: o Fix a compile error when RPC and Pthread support were both enabled. o Eliminate duplicate define warnings in wstring.c. o Fix potentially broken preprocessor comparisons. o Erik was an idiot and broke thread locking in exit(), atexit() and friends. Fix that. o Fix the gcc wrapper to use crtbeginS.o and crtendS.o when compiling PIC code (crtbegin.o and crtend.o) otherwise. -Erik 0.9.13 9 August 2002 Security Fixes o There was an off-by-one buffer overflow in the group handling code, fix thanks to Joseph Chiu. o There was an integer overflow bug in calloc, per http://online.securityfocus.com/bid/5398 o There was an integer overflow bug in the xdr_array RPC code, per http://online.securityfocus.com/bid/5356 See Changelog.full for the complete list of who did what. Release highlights: o Add full shared library support for Hitachi SuperH (sh) thanks to Stefan Allius and Edie C. Dost o Lots of reentrance cleanups (we should now be fully reentrant when compiled with pthread support). o Miles Bader implemented a new mmap based malloc which is much smarter than the old "malloc-simple", and actually works, unlike the old "malloc". This is now the default for mmu-less systems and should greatly help reduce memory fragmentation and wastage. o Reworked syscall handling for i386 and ARM, smaller and cleaner. o Support for the syscall() function on i386 and ARM o The uClibc g++ wrapper now automagically adds the proper include search path and and libraries. o Lots of shared library loader updates o dlopen'd shred libraries not properly run destructors when ctor/dtor support is enabled o pread/pwrite/pread64/pwrite64 now all work as expected o Lots and lots of other bug fixes and cleanups. -Erik 0.9.12 20 June 2002 See Changelog.full for the complete list of who did what. Release highlights: o Add full shared library support for mips (big and little endian), thanks to a lot of hard work from Steven J. Hill o i960 architecture support, thanks to Martin Proulx o An initial alpha port (works, but needs some cleanup) o Fixes shared library support for powerpc o Fixes for mmu-less systems o Much improved thread locking and reentrance. o More gcc wrapper updates. XFree86 really does link this time around. It still didn't last time. o Libcrypt now passes conformance tests o Nearly complete locale supporti thanks to a lot of hard work by Manuel Novoa III. This stuff is _way_ smaller than glibc's o Completely new time handling functions also by Manuel o Lots of other bug fixes and cleanups. -Erik Erik Andersen: 0.9.11 10 April 2002 Release highlights: o Lots of bug fixes o Much better large file support o Several gcc wrapper bug fixes, so things like iproute2 and XFree86 should now link properly. o Fixes a stdio thread locking bug that could cause random deadlocks on s*printf calls when threading was enabled. Erik Andersen: o Added a generic implementation of truncate64.c and ftruncate64.c o Added missing creat64, glob64, mkstemp64, getrlimit64, setrlimit64 o Removed internal erroneous use of __USE_FILE_OFFSET64 o Made libpthread compile on sparc and powerpc o Made libpthread soname and symlinks match the other libraries. o Added finite() to the C89 math lib, since some math functions use it. o Added missing function pointer to error.c (some apps wanted it) o Fixed initfini build for arches where gcc tries to be sneaky o Fixed m68k/bits/setjmp.h which I has broken in the last release. o Fixed a buffer overflow in the dynamic library loader o Fixed a stdio thread locking bug that could cause random deadlocks on s*printf calls when threading was enabled. o Implemented sqrtf(), needed for libstdc++ on arm Miles Bader: o Make clean fixes to not blindly wipe all symlinks o Re-enabled clnt_perror() o Re-implemented swab() Dwayne Fontenot: o Many updates to the uClibc Working Application List Steven J. Hill: o Many updates to the mips dynamic loader. Not yet working but getting very close now. o Fixed locking bug in getttyent() o Support libpthread on mips Richard June: o Fixed several bugs in utmp code (pututline was only writing the first sizeof-a-pointer bytes to the utmpfile). o setutent() was only opening utmp readonly. m4@brecis.COM: o Fixed a silly typing problem with the getuid syscall. Manuel Novoa III: o Fixed stdio FILE read/write auto-transition bugs. o Better stdio errno handling o Changed setvbuf() to more closely match glibc's behavior o Fixed getpass() to not echo passwords to the console o Fixed locale ISblank flag. o Fixed an arg promotion handling bug in _do_one_spec for %c reported by Ilguiz Latypov. Kensuke Otake: o Implemented swab() Yoshinori Sato: o Fixed h8300 architecture support for pthreads and changes to the include files David Schleef: o Made powerpc assembly code PIC-compatible o Removed powerpc R_PPC_REL24 handling, since it was deceptively useless. John Traill: o Several types on powerpc, such as dev_t, are different than on other architectures. John spotted this, which fixed a _ton_ of problems since anything calling stat() was previously broken. Jim Treadway: o Eliminated use of alarm() from the DNS resolver by converting it to use select instead (much cleaner). 0.9.10 21 March 2002 Major new features: o pthreads support (derived from glibc 2.1.3's linuxthreads library) by Stefan Soucek and Erik Andersen o pthreads support for MMU-less systems, by Stefan Soucek o Complete rewrite of all stdio functions for standards compliance, small size, pthreads support, wide/narrow stream support, large file support, unbuffered support, etc, etc by Manuel Novoa III o gcc wrapper reworked by Erik Andersen. Now operated correctly in all known cases, and now wraps g++ as well for C++ support. o constructor/destructor support, for C++ by Erik Andersen. o Eliminated duplicate include/bits header files, by Erik Andersen. Now all common include/bits headers are grouped together. Erik Andersen: o Lots of changes and improvements to the shared library loader o Cleaned up a piles of bugs o Fixed a segfault when scandir was called on empty directories. o Several syscalls added: pread/pwrite o Makefile/build system cleanups o Sighandling fixes o pthreads support (with Stefan Soucek) o Added ldexp to the C89 math library, per POSIX o fclose() EINTR handling is now correct per IEEE Std 1003.1-2001 o Support isblank() o Reworked libcrypt to avoid leaking private symbols into the namespace o Added strtof(), strtold(), updwtmp(), strptime() o Fix ldso build for older arm cross compilers Miles Bader: o atexit cleanups o fixed gcc wrapper handling of -M* options o Fixed truncate64/ftruncate64 to restrict them to 64-bit systems, since we can't be sure that the _syscall macros can cope with 64 bit args on 32 bit arches. o Large File support on the v850 o Fixed v850 headers after Erik messed them up o Eliminate include/features.h namespace pollution M. R. Brown: o Fixed pthread support for SH, and fixed SH vfork as well o Fixed SH headers after Erik messed them up Geoffrey Espin: o Mips architecture cleanups. Now works perfectly with busybox, vi, ash, etc... o Merged in the random number support (rand, srand, etc) from glibc. Thomas Fritzsche: o Fixes DNS resolver bug from 0.9.9 Steven J. Hill: o Fixed build to support both mips and mipsel o Beginnings of a mips ldso port Andrew Ip: o Support for gnu error() functions David McCullough: o Coldfire platform updates: clone, setjmp o Fixed simple malloc to work on systems with an MMU Manuel Novoa III: o Rewrote all stdio functions for standards compliance, small size, pthreads support, wide/narrow stream support, large file support, unbuffered support, etc, etc, etc. o Rewrote the various string to int functions to be smaller, more standards compilant, and reduce dependance on libgcc.a. Yoshinori Sato: o ptrace for the Hitachi h8300 fix David Schleef: o Debian packaging updates o Check for proper 16-byte aliged stack pointer on powerpc Stefan Soucek: o pthreads support for MMU-less systems o pthreads support (with Erik Andersen) Brian Stafford: o Rewrote strcasecmp() per SUSv2. Bart Visscher: o Added missing IPV6 support and reentrant networking function additions so iptables now runs with IPV6 support. 0.9.9 February 4, 2002 Erik Andersen: o A bunch of doc updates. Major update to the working apps list. o Added a configurator script (extra/Configs/uClibc_config_fix.pl) which can simplify configuring uClibc. o Fixed setjmp/longjmp on x86,arm,powerpc,mips,and sparc. Hitting ^C in ash kills client apps now, not ash. o Reworked signal handling code so it now passes POSIX conformance tests. o Fixed sleep and usleep to work correctly when interrupted by signals. o Made getopt behave the same when staticly linking as when dynamicly linking. It was using different implementations depending on how apps were linked. o Added missing inttypes.h header file o Eliminate all C++ style comments from header files o Support statvfs and statfs o Support getmntent_r o Scandir and scandir64 were calling malloc without checking for ENOMEM o Fixed stpcpy function declaration o Many large file support improvements. o Fixed fcntl to work when DOLFS is enabled o Fixed termios code to do the Right Thing(tm) o Allow regex to be excluded at compile time o Implemented mempcpy o Build ldd and readelf for the target system and for the host system o Fix several cases where get-needed-libgcc-objects.sh could fail, breaking the shared uClibc library. o Include all shared library loader objects into a single C file, thereby reducing its size further. o Reworked the shared library linking process to be more flexible so that gcc and ld can more easily be built to target uClibc library. o Better error checking in the Makefiles. Be more pedantic about tar, chmod, etc to avoid system dependent failures. o We can now autodetect the target architecture o Hide references to wchar_t so GNU autoconf configure scripts won't get confused and try to enable wide char support. o Fixed stdio.h so apps can use varargs.h if they want to. o Added brk/sbrk support for ARM, powerpc, mips, and sparc and set them to default to the much faster brk using malloc o Added missing syscalls: get_kernel_syms, fcntl64, fdatasync, sched_setparam, sched_getparam, sched_setscheduler, sched_getscheduler, sched_get_priority_max, sched_get_priority_min, sched_rr_get_interval, sigaltstack, sendfile, pivot_root, sigsuspend, setfsuid, and setfsgid o Force DOPIC be true when HAVE_SHARED is true. o Fixed hstrerror() o Implemented gethostent(), sethostent(), and endhostent() o Added arch specific support so that sparc and mips actually compile and work Miles Bader: o Fixes for the v850 architecture: crt0, setjmp, arch autodetection, etc. o Fixed `make install' to not build ldso stuff on non-shared-library systems. Michael E Brown: o Allow the gcc wrapper to support setting DEVEL_PREFIX and BUILD_DIR at runtime (no more need to recompile). M. R. Brown and Erik Andersen: o Fixed the SH port so it now works. Tested and shown working on an SH4 Dreamcast system. Kim Heino: o Made 'make clean' remove generated bits/syscall.h David McCullough: o SH architecture updates. Added brk, sbrk, o Fixed simple malloc to work on systems with an MMU o Taught getutent to return NULL if utmp doesn't exist. o Added insque/remque support o Fixed DNS resolver version number so apps won't get confused and use the wrong API. o Added Config selectable shadow password support Yoshinori Sato o Contributed support for the Hitach H8/300H architecture Cédric Schieli: o Add support for inet_netof, inet_lnaof, inet_makeaddr and hstrerror. David Schleef: o Added libstrip, a nifty script to automagically strip unneeded content from the uClibc shared libraries. Martin Sieper o Added getw() and putw() o Added missing header files -- lastlog.h, sgtty.h, netipx/ipx.h, sys/perm.h Stefan Soucek: o Add rcmd support, i.e. rsh, rlogin, etc. o Fix rcmd to avoid alloca, which is dangerous on mmu-less systems spudmonkey@racsa.co.cr: o Eliminate a buffer overflow in the shared library loader Brian Stafford: o Enable support for Unix98 PTYs, and add option to disable old style PTYs.