548 lines
16 KiB
Plaintext
548 lines
16 KiB
Plaintext
NOTE: If you miss ONE LINE in this documentation, this library may not
|
|
work for you.
|
|
|
|
Hi, Guys,
|
|
|
|
This is the public release of the Linux C library 4.5.26. You have to
|
|
run the kernel and install the source code of 1.0 or above to
|
|
use all the features in it. You also need gcc 2.5.8 or above to use it.
|
|
|
|
This release fixed a few major bugs. There are some other changes I like
|
|
to see in the next public release. I suggest not to use the shared version
|
|
of math, gdbm, curses and termcap since they will go away in the next release.
|
|
Please remove libm.sa, libcurses.sa, libdbm.sa and libtermcap.sa in
|
|
/usr/lib after the new libraries are installed.
|
|
|
|
The new locale may still not work very well for non-English languanges.
|
|
I don't know when it will be improved.
|
|
|
|
If your kernel is older than specified, you should install libc 4.5.26
|
|
as well as the suitable gcc to compile the new kernel with them first.
|
|
While compiling the new kernel, your system should have as few
|
|
processes running as possible since some of them may be broken with
|
|
libc 4.5.26 and the old kernel. FYI, the compiler itself should work
|
|
with 0.99 pl 13 or above.
|
|
|
|
You can get this package under pub/linux/packages/GCC from
|
|
tsx-11.mit.edu. The file names are inc-4.5.26.tar.gz,
|
|
inc-4.5.21-4.5.26.tar.gz, libc-4.5.26.tar.gz, libc-4.5.21-4.5.26.tar.gz,
|
|
image-4.5.26.tar.gz and extra-4.5.26.tar.gz.
|
|
|
|
In linux-binutils-1.0.tar.gz, there are a new ar, a new ld with
|
|
QMAGIC support, GNU make 3.70 and gas 2.2l. The source codes are under
|
|
pub/linux/packages/GCC/src. You need to do
|
|
|
|
cd /usr/bin
|
|
rm ld as
|
|
|
|
before untar linux-binutils-1.0.tar.gz under /. Otherwise, the
|
|
symbolic links may fail.
|
|
|
|
I only make i486 binary versions this time.
|
|
|
|
WARNING: PLEASE READ THEM OR DONT USE THIS LIBRARY.
|
|
1) There are some massive changes to Makefiles and the file
|
|
structures. Now you can do:
|
|
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
to get everything compiled and installed. Please check it out.
|
|
|
|
There is some primitive support for m68k. Someone has to fill
|
|
the missing files.
|
|
|
|
There are some bugs in gnu make 3.62 which prevents the
|
|
successfull compliation. Please use gnu make 3.70 or above
|
|
instead. I included one in binutils-1.9l.3-as-2.2l.tar.gz.
|
|
2) The Linux C library 4.5.8 is very strict. It won't tolerate
|
|
any bugs in your applications. So it has exposed the
|
|
"fclose on the same file pointer twice" bugs in mailx
|
|
and pdksh. If you find something is wrong when using libc
|
|
4.5.8, please recompile it with -g and run gdb on it. You
|
|
should set break points in _IO_fclose () and _IO_fopen (),
|
|
then check if _IO_fclose () is called twice on the same
|
|
file pointer.
|
|
|
|
In 4.5.26, I tried to relax the stdio a little bit. "fclose on
|
|
the same file pointer twice" may work if the memory used by
|
|
the file pointer does not happen to have a valid stdio
|
|
signature. Please check it out. But I discourage this practice.
|
|
3) In this release, iostream is removed from the Linux C library.
|
|
That means all the previous C++ binaries using iostream linked
|
|
with the shared library will break.
|
|
4) /usr/lib/libgcc.sa and /usr/lib/libgcc.a must not be used with
|
|
libc 4.5.26. You have to remove/backup /usr/lib/libgcc.*.
|
|
5) All binaries using "long long" output in iostream linked with
|
|
the shared library may be broken.
|
|
6) inet_network () returns the network number and treats the
|
|
network address as
|
|
|
|
a.b.c.d (with each treated as 8-bits)
|
|
a.b.c (with each treated as 8-bits)
|
|
a.b (with each treated as 8 bits)
|
|
a (with a treated as 8 bits)
|
|
7) xdm may be miscompiled by early gcc. If it doesn't work with
|
|
this libc. Try to recompile it with gcc 2.5.x (x >= 7) or
|
|
contact Dave_Boyd@Sterling.COM for a working binary.
|
|
8) You need tools 2.10 to make the shared library, which can be
|
|
ftped from tsx-11.mit.edu under pub/linux/packages/GCC/src.
|
|
9) ld.so 1.4.3 or above is also required by this release. It is on
|
|
tsx-11.mit.edu under pub/linux/packages/GCC.
|
|
10) _PATH_LASTLOG, _PATH_MAILDIR and WTMP_FILE have bee moved from
|
|
/usr to /var. _PATH_SENDMAIL is changed to /usr/sbin/sendmail.
|
|
be sure you make the appropriate symbolic links.
|
|
|
|
You need to link /var/adm/utmp with /etc/utmp, /var/adm/lastlog
|
|
with /etc/lastlog, /var/spool/mail with /usr/spool/mail, maybe
|
|
/usr/lib/sendmail with /usr/sbin/sendmail.
|
|
11) I am testing rx 0.03 from sed 2.03 used to replace regex 0.12.
|
|
You have to recompile your applications to take the advantage
|
|
of the fast regex. The old applications should work fine with
|
|
the old regex in the shared image.
|
|
|
|
Rx 0.03 is too buggy. I have sent an email to the author asking
|
|
for new version. At the same time, the old GNU regex 0.12 is
|
|
restored.
|
|
12) Please remove /usr/include/shadow.h if you don't use the shadow
|
|
password. I will try to add the shadow stuff after 4.5.xx
|
|
13) A stdio bug is fixed. For fgets (), the buffer will be
|
|
unchanged and NULL is returned when the EOF is seen. Before
|
|
that, the buffer was terminated by the null char, which
|
|
violates the ANSI C standard. But some programs may rely on
|
|
that bug.
|
|
14) libm.so.x.y is moved to /usr/lib. Please clean up /lib.
|
|
15) A new system call, getpgid (), is added. It requries the
|
|
kernel 0.99 pl 15 or above.
|
|
16) There is a new obstack.[hc]. Please check if it breaks any old
|
|
binaries compiled with old obstack.h.
|
|
17) You have to remove "#include <linux/unistd.h>" from
|
|
<linux/timex.h> if it in there.
|
|
18) Please check locale/*/Makefile for how to install the new
|
|
locale stuff. I expect it will change.
|
|
19) I changed login/getlogin.c and posix/cuserid.c. I hope they
|
|
don't break anything.
|
|
|
|
|
|
This release is compressed with gzip 1.2.4.
|
|
|
|
Please read ChangeLog for details of the bug fixes and changes.
|
|
|
|
The file list:
|
|
|
|
1. inc-4.5.26.tar.gz
|
|
|
|
REQUIRED. It is the header files for 4.5.26.
|
|
|
|
cd /
|
|
rm /usr/include/regex.h /usr/include/rx.h
|
|
gzip -dc inc-4.5.26.tar.gz | tar xvvSof -
|
|
# Please be careful, I don't know what you have under /usr/include.
|
|
# If you have a problem with the header files, you may do
|
|
# rm -rf /usr/include
|
|
# mkdir -p /usr/include
|
|
# before
|
|
# gzip -dc inc-4.5.26.tar.gz | tar xSvvof -
|
|
|
|
The header files in inc-4.5.26.tar.gz are not complete. You have to
|
|
install the kernel source for the rest of the header files. Please
|
|
get the version mentioned at the beginning of this release note.
|
|
Suppose you install the kernel source at "/foo/bar/src", you should
|
|
do as root
|
|
|
|
cd /usr/include
|
|
ln -s /foo/bar/src/linux/include/asm .
|
|
ln -s /foo/bar/src/linux/include/linux .
|
|
|
|
Since some programs need <linux/autoconf.h>, you may have to do
|
|
|
|
cd /foo/bar/src/linux
|
|
make config
|
|
|
|
before you can compile them.
|
|
|
|
2. inc-4.5.21-4.5.26.tar.gz
|
|
|
|
Change of the header files from 4.5.21 to 4.5.26.
|
|
|
|
cd /
|
|
rm -f /usr/include/regex.h /usr/include/rx.h
|
|
gzip -dc inc-4.5.21-4.5.26.tar.gz | tar xSvvof -
|
|
|
|
3. libc-4.5.26.tar.gz
|
|
|
|
Source code for 4.5.26.
|
|
|
|
cd src
|
|
rm -rf libc-linux
|
|
gzip -dc libc-4.5.26.tar.gz | tar xSvvof -
|
|
|
|
4. libc-4.5.21-4.5.26.tar.gz
|
|
|
|
Change of the source code from 4.5.21 to 4.5.26.
|
|
|
|
cd src
|
|
gzip -dc libc-4.5.21-4.5.26.tar.gz | tar xSvvof -
|
|
cd libc-linux
|
|
rm -rf gmon
|
|
|
|
5. image-4.5.26.tar.gz
|
|
|
|
REQUIRED. The stub/static libraries and the shared images. To
|
|
install it, as root do
|
|
|
|
cd /tmp
|
|
rm -rf ./lib
|
|
gzip -dc image-4.5.26.tar.gz | tar xSvvof -
|
|
cp -av ./lib ./usr /
|
|
ldconfig -v
|
|
|
|
6. extra-4.5.26.tar.gz
|
|
|
|
REQUIRED. libmcheck.a, libg.a, libc_p.a, libgmon.a and gcrt0.o. To
|
|
install
|
|
|
|
cd /
|
|
gzip -dc extra-4.5.26.tar.gz | tar xSvvof -
|
|
|
|
7. ChangeLog
|
|
|
|
Change log for the Linux C library.
|
|
|
|
Please fix the file permissions/ownerships after you install it.
|
|
|
|
|
|
H.J.
|
|
hjl@nynexst.com
|
|
05/20/94
|
|
----
|
|
Mon Apr 4 15:24:19 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* version 4.5.26 is released.
|
|
|
|
* jump/libm/jump.params:
|
|
* jump/libc.lite/jump.params:
|
|
* jump/libc/jump.params: bump up to version 4.5.26.
|
|
|
|
* <_G_config.h>: update verion to 4.5.26.
|
|
|
|
Mon Apr 4 14:49:33 1994 Nickolay Saukh (nms@ussr.EU.net)
|
|
|
|
* locale/setlocale.c: new.
|
|
|
|
* locale/collate:
|
|
* locale/ctype:
|
|
* locale/monetary:
|
|
* locale/numeric:
|
|
* locale/response:
|
|
* locale/time: new.
|
|
|
|
Mon Apr 4 13:49:33 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* Makeconfig: add CHARFLAGS=-funsigned-char.
|
|
|
|
* <paths.h>: define _PATH_LOCALE as "/usr/lib/locale".
|
|
|
|
* posix/cuserid.c: use getlogin () for multiply names with
|
|
the same id.
|
|
|
|
* login/getlogin.c: add check for fd 1 and 2.
|
|
|
|
* <unistd.h>: add ctermid ().
|
|
|
|
* posix/ctermid.c: include <unistd.h>.
|
|
|
|
* <utmp.h>: fix typo in ut_host [UT_NAMESIZE]. It should be
|
|
ut_host[UT_HOSTSIZE].
|
|
|
|
* Makeconfig (NLSCFLAGS): add -I$(TOPDIR)/nls.
|
|
|
|
* <netinet/in_systm.h>: renamed from <netinet/in_system.h>.
|
|
|
|
* nls/nl_types.h: removed.
|
|
|
|
* ./libio/ioperror.c:
|
|
* ./bsd/psignal.c:
|
|
* ./posix/getopt.c:
|
|
* ./string/strerror.c:
|
|
* ./string/strsignal.c:
|
|
* ./rpc/svc_au_ux.c:
|
|
* ./rpc/get_myaddr.c:
|
|
* ./rpc/pmap_getmaps.c:
|
|
* ./rpc/svc_run.c:
|
|
* ./rpc/pmap_clnt.c:
|
|
* ./rpc/xdr_ref.c:
|
|
* ./rpc/svc_simple.c:
|
|
* ./rpc/xdr_array.c:
|
|
* ./rpc/clnt_perror.c:
|
|
* ./rpc/clnt_raw.c:
|
|
* ./rpc/auth_unix.c:
|
|
* ./rpc/svc_tcp.c:
|
|
* ./rpc/pmap_rmt.c:
|
|
* ./rpc/xdr.c:
|
|
* ./rpc/clnt_tcp.c:
|
|
* ./rpc/svc_udp.c:
|
|
* ./rpc/xdr_rec.c:
|
|
* ./rpc/clnt_udp.c:
|
|
* ./inet/gethstnmad.c:
|
|
* ./inet/herror.c:
|
|
* ./inet/rcmd.c:
|
|
* ./inet/rexec.c:
|
|
* ./inet/ruserpass.c: change
|
|
|
|
#include "../nls/nl_types.h"
|
|
|
|
to
|
|
|
|
#include "nl_types.h"
|
|
|
|
|
|
Sat Mar 26 14:10:17 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* version 4.5.25 is released.
|
|
|
|
* login/getlogin.c: don't include "pathnames.h".
|
|
|
|
* jump/libc/jump.funcs:
|
|
* jump/libc.lite/jump.funcs: fix a typo.
|
|
|
|
* libbsd/logout.c:
|
|
* libbsd/logwtmp.c: include <utmp.h>.
|
|
|
|
* <lastlog.h>: copied/modified from <bsd/utmp.h>.
|
|
|
|
* <utmp.h>: include <paths.h>.
|
|
|
|
* <bsd/utmp.h>: removed.
|
|
|
|
* time/strftime.c: "%j" should print the day of the yera in the
|
|
range from 001 to 366.
|
|
|
|
* Makefile (DIRS):
|
|
* sysdeps/linux/Makefile (lib all):
|
|
* sysdeps/linux/i386/Makefile (lib all):
|
|
* sysdeps/linux/m68k/Makefile (lib all): check MATH.
|
|
|
|
* misc/syslog.c (openlog): use sizeof(SyslogAddr) -
|
|
sizeof(SyslogAddr.sa_data) + strlen(SyslogAddr.sa_data) for
|
|
the address size.
|
|
(vsyslog): close the log when write () fails. it will try
|
|
to reconnect it next time.
|
|
|
|
* nls/msgcat.c (catclose):
|
|
* <nl_types.h> (catclose): change return from void to int.
|
|
|
|
* login/getlogin.c: check USER_PROCESS.
|
|
|
|
* <m68k/syscall.h>:
|
|
* sysdeps/linux/m68k/sysdep.h: fix a m68k bug. from
|
|
"hamish (h.i.) macdonald" <hamish@bnr.ca>.
|
|
|
|
* jump/libm/jump.params:
|
|
* jump/libc.lite/jump.params:
|
|
* jump/libc/jump.params: bump up to version 4.5.25.
|
|
|
|
* <_G_config.h>: update verion to 4.5.25.
|
|
|
|
* sysdeps/linux/i386/math/atanh.c: check x == -1.0. from
|
|
"James H. Cloos Jr." <cloos@rahul.net>.
|
|
|
|
* login/getlogin.c: undo the change of Fri Mar 11.
|
|
|
|
Fri Mar 18 13:35:20 1994 flebbe@pluto.tat.physik.uni-tuebingen.de (Olaf Flebbe)
|
|
|
|
* <math.h>: add cbrt ().
|
|
(__finite): check __isnan ().
|
|
|
|
* sysdeps/linux/i386/math/cbrt.c: new from SUN libm.
|
|
|
|
* sysdeps/linux/i386/math/Makefile (SRC1S): add cbrt.c.
|
|
|
|
* jump/libm/jump.funcs: add _cbrt.
|
|
|
|
Fri Mar 11 15:00:58 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* version 4.5.24 is released.
|
|
|
|
* jump/libm/jump.params:
|
|
* jump/libc.lite/jump.params:
|
|
* jump/libc/jump.params: bump up to version 4.5.24.
|
|
|
|
* <_G_config.h>: update verion to 4.5.24.
|
|
|
|
* Makerules: fix typos.
|
|
|
|
* jump/libc/Makefile (install):
|
|
* jump/libm/Makefile (install): move the old shared library to
|
|
backup/$SHLIB_FILE.$$.
|
|
|
|
* login/getlogin.c: call getpwnam(name). from Mitchum DSouza
|
|
<m.dsouza@mrc-applied-psychology.cambridge.ac.uk>.
|
|
|
|
* sbin/lib/i386/Makefile:
|
|
* sbin/lib/m68k/Makefile:
|
|
* sbin/lib/Makefile:
|
|
* sysdeps/linux/Makefile:
|
|
* jump/Makefile:
|
|
* sbin/Makefile:
|
|
* sysdeps/Makefile:
|
|
* Maketargets: Use $(MAKE) -C $$i $@.
|
|
|
|
* Makefile (install.static): delete __.SYMDEF from libc.a.
|
|
(install.debug): delete __.SYMDEF from libg.a.
|
|
(install.profile): delete __.SYMDEF from libc_p.a.
|
|
|
|
* jump/libc/Makefile (JUMP_PARAMS):
|
|
* jump/libc.lite/Makefile (JUMP_PARAMS):
|
|
* jump/libm/Makefile (JUMP_PARAMS): change that to
|
|
$(JUMP_DIR)/jump.params.
|
|
|
|
* jump/libc/jump.params.build:
|
|
* jump/libc.lite/jump.params.build:
|
|
* jump/libm/jump.params.build: removed.
|
|
|
|
Thu Mar 10 09:14:39 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* ./sysdeps/linux/i386/Makefile $(DIRS): don't add
|
|
"math crt" if LITE is "true".
|
|
|
|
* <waitflags.h>: for linux, only include <linux/wait.h>.
|
|
|
|
* <netinet/ip_tcp.h>: include <linux/socket.h>.
|
|
|
|
* <sys/debugreg.h>: include <linux/debugreg.h>.
|
|
|
|
* Makeconfig: fix a typo.
|
|
|
|
* jump/libc.lite/jump.funcs (_syscall):
|
|
* jump/libc/jump.funcs (_syscall): mark it "T".
|
|
|
|
* <syscall.h>: change __syscall back to syscall.
|
|
|
|
* ./sysdeps/linux/i386/Makefile $(SRC3S): change __syscall.S
|
|
to syscall.S.
|
|
|
|
* ./sysdeps/linux/i386/__syscall.S: removed.
|
|
|
|
* ./sysdeps/linux/i386/syscall.S: new file.
|
|
|
|
Sun Mar 6 21:52:39 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* version 4.5.23 is released.
|
|
|
|
* jump/libm/jump.params:
|
|
* jump/libm/jump.params.build:
|
|
* jump/libc.lite/jump.params:
|
|
* jump/libc.lite/jump.params.build:
|
|
* jump/libc/jump.params:
|
|
* jump/libc/jump.params.build: bump up to version 4.5.23.
|
|
|
|
* <_G_config.h>: update verion to 4.5.23.
|
|
|
|
* Makeconfig (TARGET_LIBM_SO_DIR): change back to /lib.
|
|
|
|
* ./libio/ChangeLog: new entries.
|
|
|
|
* ./sysdeps/linux/i386/libc_exit.c: fixed for PIC.
|
|
|
|
* ./sysdeps/linux/i386/Makefile $(SRC3S): add __syscall.S.
|
|
|
|
Sat Mar 5 16:55:09 1994 H.J. Lu (hlu@fudan)
|
|
|
|
* version 4.5.22 is released.
|
|
|
|
* jump/libm/jump.params:
|
|
* jump/libm/jump.params.build:
|
|
* jump/libc.lite/jump.params:
|
|
* jump/libc.lite/jump.params.build:
|
|
* jump/libc/jump.params:
|
|
* jump/libc/jump.params.build: bump up to version 4.5.22
|
|
|
|
* <_G_config.h>: update verion to 4.5.22.
|
|
|
|
* ./libio/ChangeLog: new entries.
|
|
|
|
* stdlib/exit.c (exit): call _IO_flush_all directly if
|
|
__PIC__ or __pic__ is defined.
|
|
|
|
* <gnu-stabs.h> (HAVE_GNU_LD): don't define it if __PIC__
|
|
or __pic__ is defined.
|
|
|
|
* rpc/get_myaddr.c: change "#ifdef linux" to "#if 0".
|
|
|
|
* jump/libc.lite/jump.funcs (_syscall):
|
|
* jump/libc/jump.funcs (_syscall): mark it "U".
|
|
|
|
* <syscall.h>: change syscall to __syscall.
|
|
|
|
* <sys/ipc.h> (__ipc): new.
|
|
|
|
* ./sysdeps/linux/Makefile $(SRC2S): add __ipc.S.
|
|
|
|
* ./sysdeps/linux/__ipc.S: new file.
|
|
|
|
* ./sysdeps/linux/msgctl.c:
|
|
* ./sysdeps/linux/msgget.c:
|
|
* ./sysdeps/linux/msgrcv.c:
|
|
* ./sysdeps/linux/msgsnd.c:
|
|
* ./sysdeps/linux/semctl.c:
|
|
* ./sysdeps/linux/semget.c:
|
|
* ./sysdeps/linux/semop.c:
|
|
* ./sysdeps/linux/shmat.c:
|
|
* ./sysdeps/linux/shmctl.c:
|
|
* ./sysdeps/linux/shmdt.c:
|
|
* ./sysdeps/linux/shmget.c: use __ipc ().
|
|
|
|
* ./sysdeps/linux/i386/Makefile (SRC1S): remove syscall.c.
|
|
$(SRC3S): add __syscall.S.
|
|
|
|
* ./sysdeps/linux/i386/__syscall.S: new file.
|
|
|
|
* ./sysdeps/linux/i386/__ioctl.c:
|
|
* ./sysdeps/linux/i386/__fcntl.c:
|
|
* ./sysdeps/linux/i386/__open.c:
|
|
* ./sysdeps/linux/i386/syscall.c: removed.
|
|
|
|
* ./sysdeps/linux/__adjtime.c:
|
|
* ./sysdeps/linux/__ntpgttm.c: don't include <sys/syscall.h>,
|
|
include <syscall.h>.
|
|
|
|
* <demangle.h>: new for cplus_demangle ().
|
|
|
|
* Makefile:
|
|
* Makeconfig:
|
|
* Makerules:
|
|
* Maketargets: add PIC from Mitchum DSouza
|
|
<Mitchum.Dsouza@mrc-applied-psychology.cambridge.ac.uk>.
|
|
|
|
Tue Mar 1 14:37:46 1994 Matthias Urlichs <urlichs@smurf.noris.de>
|
|
|
|
* inet/res_send.c (res_send): if sethostent(1) has been called,
|
|
the resolver opens a TCP connection to the nameserver. If a
|
|
request is interrupted by a signal and we're longjmp()ing
|
|
out, that connection goes out of sync. Ugh.
|
|
|
|
Solution: If that happens, the connection should be closed
|
|
and reopened. Flushing residual data might be an alternate
|
|
idea except that the server might not have answered by the
|
|
time we're trying the next request.
|
|
|
|
Sat Feb 26 14:01:18 1994 H.J. Lu (hlu@nighthawk)
|
|
|
|
* version 4.5.21 is re-released :-(.
|
|
|
|
* ./sysdeps/linux/i386/gmon: moved from ./gmon.
|
|
|
|
* ./sysdeps/linux/i386/gmon/Makefile (TOPDIR): change it to
|
|
"../../../..".
|
|
|
|
* ./sysdeps/linux/i386/Makefile (DIRS): add "gmon" if PROFILE ==
|
|
true.
|
|
|
|
* ./gmon: moved to ./sysdeps/linux/i386.
|
|
|
|
* ./Makefile (CLEAN_DIRS):
|
|
(DIRS): remove "gmon".
|
|
|