From: roland@prep.ai.mit.edu (Roland McGrath)
Newsgroups: gnu.announce,gnu.gcc.announce
Subject: GNU C library version 1.04
Date: 4 Sep 92 02:43:00 GMT
Reply-To: roland@prep.ai.mit.edu
Followup-To: poster
To: bug-glibc@prep.ai.mit.edu, info-gnu@prep.ai.mit.edu,
        info-gcc@prep.ai.mit.edu
X-Fcc: ~/Mail/libc

Version 1.04 of the GNU C library is now available for anonymous FTP from
prep.ai.mit.edu in the file glibc-1.04.tar.Z (about 1.1 megabytes
compressed).  I am not distributing diffs from version 1.03 because the
diffs are so large.  A simple unidiff between 1.03 and 1.04 is about 890k
compressed, not much smaller than the 1.04 distribution itself.

There are still some old bugs having to do with floating-point numbers that
remain unfixed in this release.  Since it has been such a long time since
the 1.03 release, and I have fixed so many other problems, I decided not to
delay the release any longer to fix the floating-point-related bugs.

As of this release, the GNU C library includes Michael Glad's Ultra Fast
Crypt, which provides the Unix `crypt' function, plus some other entry
points.  Because of the United States export restriction on DES
implementations, we are distributing this code separately from the rest of
the C library.  There is an extra distribution tar file just for crypt; it
is called `glibc-1.04-crypt.tar.Z' (about 44k compressed).  You can just
unpack the crypt distribution along with the rest of the C library and
build; you can also build the library without getting crypt.  Users outside
the USA can get the crypt distribution via anonymous FTP from ftp.uni-c.dk
[129.142.6.74], or another archive site outside the USA.  Archive
maintainers are encouraged to copy this distribution to their archives
outside the USA.  Please get it from ftp.uni-c.dk; transferring this
distribution from prep.ai.mit.edu (or any other site in the USA) to a site
outside the USA is in violation of US export laws.

The GNU C library is a complete drop-in replacement for libc.a on Unix.
It conforms to the ANSI C standard and POSIX.1, has most of the functions
specified by POSIX.2, and is intended to be upward compatible with 4.3
BSD.  It also has several functions from System V and other systems, plus
GNU extensions.

The GNU C library has been ported to: sparcs and Sun 3s running SunOS 4.1,
HP 9000/300 and Sony NEWS workstations running 4.3 BSD, and MIPS
DECStations running Ultrix 4.  The port to the i386 running either System
V, SVR4, or BSD, is mostly complete but has not been well tested.  Porting
the library is not hard.

People interested in porting the GNU C library should get on the mailing
(see below).  The INSTALL file now includes some porting instructions which
should help people get started.  If you have questions, or are doing a
port, tell the mailing list about it.

Other notable changes since 1.03 are:

* The configuration process has changed quite a bit.  The `configure'
  script is now used just like the configuration scripts for other GNU
  packages.  The `sysdeps' directory hierarchy is much rearranged.
  The file `INSTALL' explains the new scheme in detail.

* The header files no longer need to be processed into ANSI C and
  traditional C versions.  There is just one set of files to install, and
  it will work with ANSI or old C compilers (including `gcc -traditional').

* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
  Tom Quinn contributed the initial code.  The GNU C library can NOT yet be
  made itself into a shared library.

* New function `strncasecmp' to do case-insensitive string comparison
  with limited length.

* New function `strsep' is a reentrant alternative to `strtok'.

* New functions `scandir' and `alphasort' for searching directories.

* New function `setenv' is a better interface to `putenv'.

* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
  function for traversing a directory tree.

* The GNU obstack package is now also part of the C library.
  The new function `open_obstack_stream' creates a stdio stream that
  writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
  formatted output directly to an obstack.

* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
  cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.

* Some work has been done to begin porting the library to 4.4 BSD and Linux.
  These ports are not finished, but are a good starting place for really
  supporting those systems.

* The C library header files now use `extern "C"' when used by the C++
  compiler, so the C library should now work with C++ code.

* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
  function which uses the `merge sort' algorithm, and is said to be
  significantly faster than the old GNU `qsort' function.  Merge sort is
  now the standard `qsort' function.  The new algorithm can require a lot
  of temporary storage; so, the old sorting function is called when the
  required storage is not available.

All bug reports for the GNU C library should be sent to the mailing list
	bug-glibc@prep.ai.mit.edu
There are no corresponding info- or help- lists at this time.  There
will be a repeater gnewsgroup, gnu.libc.bug, as soon as the gateway is
set up.  If you won't be able to read the gnewsgroup, you can subscribe
to the list by asking:
	bug-glibc-request@prep.ai.mit.edu
Be patient when subscribing, a lot of requests are expected.

Please DO NOT send bug report for the GNU C library to bug-gcc@prep.ai.mit.edu.
That list is for bug reports for GNU CC.  GNU CC and the GNU C library are
separate entities maintained by separate people, and the C library
maintainer does not read bug-gcc.

If you send patches, please also report what the bugs you think you are
fixing are!  Large mounds of patches with comments like "foobar was
broken", or "foobar didn't handle frobnication right" are very difficult to
deal with.  Unless you tell me, I have no way of knowing how to reproduce
the bugs you found and figure out the right solution, and I cannot assume
that your solution is correct.
Newsgroups: gnu.announce