Subject: The Linux C library 4.5.19 is released.
From: [email-masked] (H.J. Lu)
Date: 4 Feb 1994 22:01:53 GMT
Newsgroups: comp.os.linux.announce

[ Moderator's note: I took the liberty of removing the ChangeLog from
  this announcement.  Please see the file in the distribution if you
  are interested.  (It was about eight hundred lines.)  --liw ]

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.19. You have to
run the kernel and install the source code of 0.99 pl 13s or above to
use it.  You also need gcc 2.5.7 or above to use it.

If your kernel is older than specified, you should install libc 4.5.19
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.19 and the old kernel. FYI, the compiler stuff 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.19.tar.gz,
libc-4.5.19.tar.gz, image-4.5.19.tar.gz and extra-4.5.19.tar.gz.

In binutils-1.9l.3-as-2.2l.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 binutils-1.9l.3-as-2.2l.tar.gz under /. Otherwise, the
symbolic links may fail.

I only make i486 binary versions this time.

WARNING: PLEASE READ THEM OR DON'T 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-as.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.19, 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.19. 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 [email-masked] 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 or above is also required by this release. It is on
	tsx-11.mit.edu under pub/linux/packages/GCC.

	There is a bug in ld.so 1.3, which uses the alphabet oder to
	compare the library version. That means 4.5.8 > 4.5.19. A new
	ld.so, 1.4, is in the same directory where you get the Linux
	C library.

	If you are having problem with some shared library after you
	install ld.so 1.4, you can remove /etc/ld.so.cache for the
	time being. ld.so 1.4.1 will fix that.
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.1x.
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.

This release is compressed with gzip 1.1.2.

Please read ChangeLog for details of the bug fixes and changes.

The file list:

1. inc-4.5.19.tar.gz

  REQUIRED. It is the header files for 4.5.19.

  cd /
  rm /usr/include/regex.h /usr/include/rx.h
  gzip -dc inc-4.5.19.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.19.tar.gz | tar xSvvof -

  The header files in inc-4.5.19.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. libc-4.5.19.tar.gz
 
  Source code for 4.5.19.
 
  cd src
  rm -rf libc-linux
  gzip -dc libc-4.5.19.tar.gz | tar xSvvof -

3. image-4.5.19.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.19.tar.gz | tar xSvvof -
  cp -av ./lib ./usr /
  ldconfig -v

4. extra-4.5.19.tar.gz
 
  REQUIRED. libmcheck.a, libg.a, libc_p.a, libgmon.a and gcrt0.o. To
  install

  cd /
  gzip -dc extra-4.5.19.tar.gz | tar xSvvof -

5. ChangeLog

  Change log for the Linux C library.

Please fix the file permissions after you install it.

H.J.
[email-masked]
02/03/94

--
[email-masked]  (finger [email-masked])
Humans are unreliable, computers are non-deterministically reliable.