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 scrambed 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 reimplemented
	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.


