This is the mail archive of the
libc-hacker@cygnus.com
mailing list for the glibc project.
review, please!
- To: libc-hacker@cygnus.com
- Subject: review, please!
- From: Ulrich Drepper <drepper@cygnus.com>
- Date: 01 Feb 1999 21:29:45 -0800
- Reply-To: drepper@cygnus.com (Ulrich Drepper)
I intend the following to be the text of the announcement. Please
correct and extend it where necessary. Thanks,
--
---------------. drepper at gnu.org ,-. 1325 Chesapeake Terrace
Ulrich Drepper \ ,-------------------' \ Sunnyvale, CA 94089 USA
Cygnus Solutions `--' drepper at cygnus.com `------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Release 2.1 of the GNU C library is now available at
ftp://ftp.gnu.org/pub/gnu/glibc
and all the mirror sites around the globe.
The new files are
glibc-2.1.tar.gz
glibc-linuxthreads-2.1.tar.gz
glibc-crypt-2.1.tar.gz
People outside the US must *not* download the crypt add-on from this
server. Instead get the file from
ftp://ftp.ifi.ui.no/pub/gnu
There is no localedata add-on anymore as there was in glibc 2.0. Don't
use the add-on from glibc 2.0, the necessary data already comes with the
main tar file.
This release of the library runs on the following targets:
*-*-gnu GNU Hurd
i[3456]86-*-linux-gnu Linux-2.x on Intel
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
alpha-*-linux-gnu Linux-2.x on DEC Alpha
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
sparc-*-linux-gnu Linux-2.x on SPARC
sparc64-*-linux-gnu Linux-2.x on UltraSPARC
arm-*-none ARM standalone systems
arm-*-linux Linux-2.x on ARM
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
The 2.1 release is the result of two years of work and includes
thousands of changes, improvements, and bug fixes. It is therefore
advised that all users of glibc 2.0 upgrade to this version.
*BUT*: updating the C library is no trivial task and it very easy to
damage once system. Therefore persons who do not exactly know what to
do should consider using next versions of the various distributions of
the systems. Don't tell us you haven't been warned. Another reason
why not everybody should think about compiling glibc is the disk and
CPU requirements: on Intel platforms the full built requires about
290MB plus the space you need to install it. This number is probably
higher on RISC platforms. Compiling takes on a i586@133 4+ hours, on
a 2xi686@233 stil 45 minutes. See the FAQ file for more numbers.
The 2.1 release should be binary compatible with the 2.0 release. All
programs should continue to run. There are only a few exceptions:
- some shared libraries have to be updated as well. They are using
details from the libc. These libraries include the C++ library
(libstdc++) and the curses library. See the FAQ for more information.
Programs using these libraries are not effected.
- some programs use *internal* symbols of the C library. These names of
these symbols all start with an underscore and the reason why these
symbols are "internal" is because they change or might fall away in
new versions of the library. And this did happen a lot. Don't even
think about complaining on the libc lists about this, the programmers
of these applications made the errors. We have now mechanisms in
place which will prevent this from happening again even in the presence
of programmers unwilling to follow the rules.
Problems should all be reported using the `glibcbug' shell script. Simply
run this script, fill out the information and you are set. If at the time
you start it complains like this
/usr/bin/glibcbug: emacs: command not found
simply set one of the environment variables EDITOR and VISUAL (this should
happen on every system automatically):
env EDITOR=vi glibcbug
Before sending a bug report make sure you have read the BUGS and the
FAQ file which come with the glibc sources. You won't even get an
answer if it is obvious you haven't read these files. It is also
helpful to scan the appropriate newsgroups and mailing lists to see
whether somebody else already had this problem. There is another
thing we don't want to hear about: the size. glibc is big, but this
is necessary for a multi-platform Unix library.
Over the last two years many people helped by contributing code,
reporting bugs, sending patches. I cannot mention them all here but
sure want to mention those who continuously helped all the time. In
purely random order:
Andreas Jaeger
Andreas Schwab
H.J. Lu
Philip Blundell
Richard Henderson
Geoff Keating
Zack Weinberg
Roland McGrath
Mark Kettenis
Thorsten Kukuk
Christian Gafton
The list with the changes below contains a few more names. Please
remember those names for the day you have the opportunity to thank
them.
Finally, the (certainly incomplete) list of changes:
* Richard Henderson corrected size of struct timeval on Linux/Alpha to
conform to POSIX member type requirements. Symbol versions have been
adjusted as needed within the library, and for direct use by applications,
but there is potential for problems if third-party libraries use
struct timeval as part of their interface. This does not present
a problem for X and other "essential" system libraries.
* An additional locale model to support C++ Standard Library locale
model and probably more was implemented by Ulrich Drepper.
* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
symbol level.
* Miles Bader provided the `argp' function family to support hierachical
command line argument parsing, layered on top of getopt.
* strtod accepts new hexadecimal floating-point format from ISO C 9X.
* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
numbers.
* scanf recognizes the %a and %A format for scanning floating point numbers.
* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
information and interfaces for the available integer types.
* the new header <complex.h> contains definitions of the complex math
functions from ISO C 9X.
* the new header <tgmath.h> defines generic macros to use complex or
real valued functions.
* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
* Andreas Jaeger provided a test suite for the math library.
* Mark Kettenis implemented the utmpx interface and an utmp daemon.
* Ulrich Drepper added character set conversion functions (iconv).
* Optimized string functions have been added.
* The localedata addon is now part of glibc.
* An implementation of profiling shared libraries was added by Ulrich Drepper.
* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
daemon for NSS (nscd).
Missing a better place here are some numbers on improvements. Under
Linux 2.1.125 un-tar-ing the kernel sources takes
user system wall
using local files 12.19s 6.88s 22.91s
using NIS 13.92s 8.91s 26.34s
using NIS & nscd 10.37s 7.34s 25.30s
using NIS+ 27.57s 30.37s 640.46s
using NIS+ & nscd 10.25s 7.83s 26.51s
using NIS & old nscd [1] 13.83s 8.32s 29.60s
Keep in mind that non-namelookup related operations dominate above times.
It was just a common complain that using NIS+ unpacking the kernel is
horribly slow.
[1] The old nscd implementation is not available anymore since it was
distributed with glibc up to version 2.0.98 and thus is now replaced.
* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
* Mark Kettenis provided a Hesiod NSS module.
* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
* rcmd can now handle netgroups (Dick Streefland).
* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
Bambrough.
* Support for the IPv6 protocol has been added to the socket API, as per the
latest draft standards.
* Support for Linux 2.2 has been added.