Hi, Gals and Guys, The Linux C library 5.4.46 is a bug-fixing release for libc 5.4.44. There are no new features in this release. This is the last release of libc 5.4.xx. All my machines are now running RedHat 5.1 which is based on glibc 2, aka libc 6. Please check the glibc 2 web site for details. http://www.gnu.org/software/libc/libc.html I really enjoyed working on the Linux C library with all the people over the years. Without you, Linux cannot be what it is today. Thanks to your support, we did it. Now it is the time to move on to libc 6, aka glibc 2. I will be working on glibc 2 as a developer, but not as a maintainer, Ulrich has been doing a great job on maintaining glibc 2. I will try to answer all the concerns over libc 5 vs. libc 6 as well as the bug issuses related to libc 6. Changes from libc 5.4.44: 1. Security fixes. 2. Malloc fix. The public release of the new Linux C library is 6.0, aka glibc 2.0. 2 main features in glibc 2.0, are MT-safe and pthread support. With glibc 2.0, Linux will enter an era of SMP kernel support as well as the kernel-based pthread support. I have been running glibc 2.0 with gcc, binutils, bin86 and XFree86 3.3.1. Everything works great. As of glibc 2.0.6, glibc is usable for general public. People are encouraged to try it out and send in bug report. glibc 2.0 can be found at ftp://ftp.gnu.org/pub/gnu and its mirror sites. It compiles right out of box for Linux and suppors more architectures in addition to x86 and m68k. There are new Linux packages which is based on glibc 2, aka libc 6. You can get more information from http://www.debian.org http://www.redhat.com Due to the new, improved locale, the Linux C library 5.4.46 is binary compatible with libc 5.3.12 but not vice versa. The binaries compiled/linked with libc.so.5.4.46 may not run with libc.so.5.3.12. You may need to regenerate locale files for the new locale in libc 5.4.46 if you use locales other tha C/POSIX which are the defaults. Binaries of locale and localedef are included in the binary release. The locale sources are at ftp://dkuug.dk/i18n/WG15-collection/locales But if you want to really use locale, you should use glibc 2, aka libc 6. There will be no new locale development in libc 5. There are many security bug fixes. Please consult ChangeLog for details. Please let me know if there are more security bugs remains. This is the public release of the Linux C library 5.4.46. Please read the ChangeLog for details regarding changes/bug fixes. DISTRIBUTION SITES: The primary FTP sites for the compiler/C library are: * ftp://tsx-11.mit.edu/pub/linux/packages/GCC * ftp://sunsite.unc.edu/pub/Linux/GCC DISTRIBUTION FILES: 1. libc-5.4.46.bin.tar.gz REQUIRED. This package contains the header files for libc, shared and static ELF libraries libc and libm, and the static ELF library libbsd.a. The header files in libc-5.4.46.bin.tar.gz are not complete. You need to install the kernel source tree for the system-dependent header files. The header files are in lib-x.y.z.bin.tar.gz and libc-x.y.z.tar.gz. You can do # gzip -dc lib-x.y.z.bin.tar.gz | tar xvvf - usr/include to extract the header files without the binaries files. A separate tar file for the header files may cause unnecessary confusion. 2. libc-5.4.46.tar.gz Source tree for libc and header files. 3. libc-5.4.44-5.4.46.diff.gz Context diffs against the source tree from the previous libc release. Please make sure the empty libc/regex/rx.h is deleted. MISSING LIBRARIES: The only libraries included in this package are the Linux C library, libc and the math library, libm. ELF versions of libraries formerly included in the libc package can be found at the following FTP sites: * gdbm ftp://sunsite.unc.edu/pub/Linux/libs/db/gdbm-1.7.3-ELF.tar.gz * db ftp://sunsite.unc.edu/pub/Linux/libs/db/db-1.85.2.bin.tar.gz * ncurses ftp://ftp.tos.net/pub/linux/ncurses * termcap ftp://tsx-11.mit.edu/pub/linux/packages/GCC ftp://sunsite.unc.edu/pub/Linux/GCC Gertjan van Wingerde (gertjan@cs.vu.nl) maintains the ELF db package. Christopher Wiles (wileyc@moscow.com) maintains the ELF gdbm and curses. MacGyver maintains the ELF ncurses. NOTE: I strongly suggest using ncurses to replace curses/termcap. The current ncurses supports ELF. SYSTEM REQUIREMENTS: * kernel 1.1.92 or above. It may work with an older kernel if the QMAGIC format is supported. If you use the kernel 1.3.x, you should upgrade to 1.3.40 or above. Otherwise readv/writev system calls won't work right. To compile the MIT pthread kernel, I only builed it with Linux kernel source code 1.99.10. You can comment out pthreads in DIRS in libc/sysdeps/Makefile. * gcc-2.7.2.3 or above and binutils-2.8.1.0.1 or above. * ld.so-1.9.5 or above. The latest version can be obtained from ftp://ftp.ods.com/pub/linux * libg++ 2.7.2.8 or above. This is only necessary for development using c++. BINARY INSTALLATION: Ensure that /usr/include/asm and /usr/include/linux are a symlinks to their counterparts in the kernel source tree. For example, if your kernel source resides within /usr/src/linux, execute: ln -s -f /usr/src/linux/include/asm /usr/include/asm ln -s -f /usr/src/linux/include/linux /usr/include/linux As some programs need , the following two commands may be necessary to generate that header file: cd /usr/src/linux make config Verify that /var/run/utmp and /var/log/wtmp exist. Replace all other occurances of utmp and wtmp (/etc/utmp, for example) with symlinks. Assuming the libc binary tarfile is in /, and as root, execute: cd / rm -f /lib/libc.so /lib/libm.so rm -f /usr/lib/libc.so /usr/lib/libm.so rm -f /usr/include/iolibio.h /usr/include/iostdio.h rm -f /usr/include/wcstr.h /usr/include/mbstr.h rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread gzip -dc libc-5.4.46.bin.tar.gz | tar xvf - SOURCE INSTALLATION: Unpack the libc source tarfile in your source directory. Refer to the README for compilation instructions. COMPATIBILITY NOTES: If your kernel uses system call numbers 135 to 146 for unintended purposes, this library may not work for you. One example is the kswap kernel patch for 1.2.x uses the same system call numbers for other uses. That breaks this library. Please compare/check , and . You have to make sure those system call numbers are consistent from libc to your kernel. There is no support for a.out libraries in this source tree. The latest version of the a.out library suite is libc-4.7.5, which can be obtained from one of the ftp sites listed below. The structure DIR, defined in sysdeps/linux/dirstream.h, was changed in release 5.2.0. If you upgrade from release 5.1.4 or earlier to release 5.2.0 or later, you must reboot after installing the new libraries. If you compile your own library, *do not* "make install". Instead, copy the new libc.so* to /lib, do "ldconfig -v", reboot, then do "make install" A dirent bug, which erroneously defined d->reclen to d->namlen if USE_GNU was defined, has been fixed. Unfortunately, some GNU packages depend on this bug. GNU make 3.xx is one of them. GNU make 3.75 or above is fine. A patch is included here for 3.74 and below. A back door has been added for the file descriptor in DIR. You need to define DIRENT_ILLEGAL_ACCESS to access the dd_fd field. You should use dirfd () to get the the file descriptor in DIR. Use this at your own risk. A new dirent bug is fixed. The ELF nfsd should work fine. and have been removed. PTHREAD NOTES: The MIT pthread library is not supported in libc 5.4.x. The new kernel-based pthread will be in libc 6.0. NYS NOTES: NYS binaries are not provided this time. NYS 0.27.4 is included in the source tree as a compile-time option. Please consult README.nys and other applicable NYS documents before attempting NYS installation. I disabled DBM for NYS. Some changes are needed to support non-builtin dbm. INFORMATION/DOCUMENTATION: ELF related WWW pages: * http://www.intac.com/~cully/elf.html * http://www.sjc.ox.ac.uk/users/barlow/linux-gcc.html * http://www.blackdown.org/elf/elf.html ELF documentation: * ftp://sunsite.unc.edu/pub/Linux/GCC/elf.ps.gz * ftp://sunsite.unc.edu/pub/Linux/GCC/elf.latex.tar.gz * ftp://sunsite.unc.edu/pub/Linux/GCC/ELF.doc.tar.gz H.J. hjl@gnu.org 07/19/98