257 lines
9.0 KiB
Plaintext
257 lines
9.0 KiB
Plaintext
Hi, Gals and Guys,
|
|
|
|
The Linux C library 5.4.38 is a bug-fixing release for libc 5.4.33.
|
|
There are no new features in this release.
|
|
|
|
Changes from libc 5.4.33:
|
|
|
|
1. More libc 6.x/glibc 2.x compatibility codes for libc 5.4.38
|
|
so that the old XFree86 binaries will run fine with the new XFree86
|
|
shared libraries compiled with libc 6.x/glibc 2.x.
|
|
2. More NIS bug fixes.
|
|
3. md5 support.
|
|
|
|
Again, if there is no new serious bug report, the next public release
|
|
of the Linux C library will be 6.0. The main features in libc 6.0,
|
|
aka glibc 2.0, are MT-safe and pthread support. With libc 6.0, Linux
|
|
will enter an era of SMP kernel support as well as the kernel-based
|
|
pthread support. I have been running libc 6.0 with gcc, binutils,
|
|
bin86 and XFree86 3.3.1. Everything looks very encouraging. As of 2.0.5,
|
|
glibc is usable for general public. People are encouraged to try it
|
|
out and send in bug report.
|
|
|
|
Due to the new, improved locale, the Linux C library 5.4.38 is binary
|
|
compatible with libc 5.3.12 but not vice versa. The binaries
|
|
compiled/linked with libc.so.5.4.38 may not run with libc.so.5.3.12.
|
|
You may need to regenerate locale files for the new locale in libc
|
|
5.4.38 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.38. 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.38.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.38.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.38.tar.gz
|
|
|
|
Source tree for libc and header files.
|
|
|
|
3. libc-5.4.33-5.4.38.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 <macgyver@tos.net> 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 <linux/autoconf.h>, 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.38.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 <sys/syscall.h>,
|
|
<asm/unistd.h> and <linux/unistd.h>. 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.
|
|
|
|
<iostdio.h> and <iolibio.h> 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.ai.mit.edu
|
|
09/02/97
|
|
----
|
|
RCS file: /home/cvs/gnu/make/dir.c,v
|
|
retrieving revision 1.1.1.1
|
|
diff -c -r1.1.1.1 dir.c
|
|
*** 1.1.1.1 1995/06/25 03:27:16
|
|
--- dir.c 1995/06/25 03:55:22
|
|
***************
|
|
*** 20,26 ****
|
|
|
|
#if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
|
|
#include <dirent.h>
|
|
! #ifndef __GNU_LIBRARY__
|
|
#define D_NAMLEN(d) strlen((d)->d_name)
|
|
#else /* GNU C library. */
|
|
#define D_NAMLEN(d) ((d)->d_namlen)
|
|
--- 20,26 ----
|
|
|
|
#if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
|
|
#include <dirent.h>
|
|
! #ifndef __BAD_GNU_LIBRARY__
|
|
#define D_NAMLEN(d) strlen((d)->d_name)
|
|
#else /* GNU C library. */
|
|
#define D_NAMLEN(d) ((d)->d_namlen)
|
|
===================================================================
|
|
RCS file: /home/cvs/gnu/make/glob/glob.c,v
|
|
retrieving revision 1.1.1.1
|
|
diff -c -r1.1.1.1 glob.c
|
|
*** 1.1.1.1 1995/06/25 03:27:18
|
|
--- glob/glob.c 1995/06/25 03:56:01
|
|
***************
|
|
*** 64,70 ****
|
|
|
|
#if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
|
|
#include <dirent.h>
|
|
! #ifndef __GNU_LIBRARY__
|
|
#define D_NAMLEN(d) strlen((d)->d_name)
|
|
#else /* GNU C library. */
|
|
#define D_NAMLEN(d) ((d)->d_namlen)
|
|
--- 64,70 ----
|
|
|
|
#if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
|
|
#include <dirent.h>
|
|
! #ifndef __BAD_GNU_LIBRARY__
|
|
#define D_NAMLEN(d) strlen((d)->d_name)
|
|
#else /* GNU C library. */
|
|
#define D_NAMLEN(d) ((d)->d_namlen)
|