From: H.J. Lu (hlu@yoda.eecs.wsu.edu)
Date: 06/27/92


From: hlu@yoda.eecs.wsu.edu (H.J. Lu)
Subject: README: gcc 2.2.2 is out
Date: 28 Jun 1992 02:08:00 GMT

NOTE: You should only use gcc 2.2.2 for Linux. You should only use the
binaries compiled by it. Anything else may contain bugs due to buggy
gcc from the FSF and buggy libc.a.

The official gcc 2.2.2 is out on banjo.concert.net under pub/Linux/GCC.
Please READ all the docs when you install it. Missing one senetnce may
mean a failure.

The official gcc ftp site is banjo.concert.net. I can guarantee the
files are up to date. But I have no control over any other sites. If you
have any doubt, PLEASE USE banjo.concert.net.

If you are mirroring banjo for gcc, please make sure your directory is
exactly the same as pub/Linux/GCC on banjo, except for
pub/Linux/GCC/private, which is for gcc testing. Otherwise, please
don't mirror it to avoid any confusions.

I also uploaded zsh.tar.Z together with gcc 2.2.2. You have to use gcc
2.2.2 to link zsh.a to make zsh.

H.J.

-- 
gcc/libc maintainer for Linux.
=============release.2.2.2====
This is a testing release until it is announced on comp.os.linux.

Please read all the previous release notes and docs. This release note only covers the new stuffs.

This is gcc 2.2.2 for Linux. It is on banjo.concert.net under /pub/Linux/GCC. Gcc 2.3 will support Linux, according to RMS. The FSF has all the files Linux needs.

Please get the new binutils.tar.Z, which fixed some bugs in as and a gprof with some patches from Rick Sladkey at jrs@world.std.com, if you haven't got it.

I added some jumptable stubs to gcc. But I don't have the time to implement it. In the future, you can use jump table with -jump in CFLAGS.

Libg++.a is 2.2 beta.

This gcc will produce binaries only run safely under 0.96a patch level 4 or above.

The list of known bugs.

1. one 'cmp' in dbz test fails. Per is not planning on doing anything about it. your contribution is welcome.

The following bugs in libc.a are fixed.

1. hard and soft math libs are fixed. some of functions are totally rewritten. 2. acosh, asinh and atanh are added to libsoft.a and math.h. 3. open a file for read and write, then do fseek followed by fwrite works now. 4. now random () and srandom () are renamed to __random () and __srandom (), respectively. 5. the header files taken from glibc.a are fixed. 6. the sys call mount now takes 4 args. 7. getpagesize and getdtablesize work now. 8. netdb.h, resolv.h, sys/uio.h, netinet.h, arpa/inet.h and arpa/nameser.h are changed. 9. Some function declarations are added to sys/socket.h in 0.96bp2inc.tar.Z.

The following functions are added to libc.a.

1. profil. 2. libg.a is there. 3. getdtablesize. 4. lots of stuffs added to errno.h and string/errlist.c. 5. some changes in string/siglist.c. 6. dtoa. 7. there is a new strtod, please check it out. 8. drem. 9. the inet library functions are in libinet.a. They are untested. Once they are tested ok, they will be moved to libc.a. All the inet library functions are there, except for res_xxxx, rcmd, rexec and ruserpass, which require more kernel support, like F_SETOWN, FASYNC, and a few network system calls.

There should also be a set of files in /etc for inet functions. I hope Ross will provide them.

In this release, there is a libc_p.a compiled with "-pg" for profiling.

You should use "-g" for debugging and "-pg/-p" for profiling in CFLAGS when you compile the source code.

There must be a few other bugs. Please let me know if you find any.

File list:

1. 2.2.2db.tar.Z (cpp, libg.a and libc_p.a) 2. 2.2.2lib.tar.Z (cc1, cc1plus) 3. 2.2.2misc.tar.Z (header files, drivers, libs, doc, ....) 4. shlib-2.2.2.tar.Z (making the shared libs for gcc 2.2.2) 5. libc-2.2.2.tar.Z (source code for the libs) 6. gcc-2.2.2.tar.Z (patches for compiling gcc 2.2.2) 7. 0.96bp2inc.tar.Z (the kernel header files for 0.96b patch level 2)

H.J. hlu@eecs.wsu.edu 06/27/92 =============release.2.2==== Please read all the previous release notes and docs. This release note only covers the new stuffs.

This is gcc 2.2 for Linux, which is equivalent to gcc 2.2.1 from the FSF. It is on banjo.concert.net under /pub/Linux/GCC. Gcc 2.3 will support Linux, according to RMS. The FSF has all the files Linux needs.

Please get the new binutils.tar.Z, which fixed some bugs in as.

>From this release, gcc will use the shared lib. That means you have to keep the shared images used by all the compilers you have. I think there is no disk waste here since the benefit of the shared gcc more than offsets the shared libs. Now both 2.2misc.tar.Z and 2.2lib.tar.Z can fit into one 5.25 floppy.

Libg++.a is 2.1. You can build it yourself. The source code is available on the GNU ftp site. You may have to hack a little to compile it. Please do not compile iostream and get rid of libg++/src/regex.[cc|h]. Make sure ./libiberty only makes those functions Linux doesn't have. Please send me a note if you are interested.

The following bugs in libc.a are fixed.

1. index. 2. sigxxxx return values should be right now. 3. execxxx are taken from glibc.a 1.03. Please check it out. 4. malloc in stdlib.h and malloc.h, when they are included together, they may cause trouble. Can I include malloc.h in stdlib.h and fix malloc in malloc.h? 5. types used in sigsetmask and siggetmask are now sigset_t. 6. signal.h is changed. 7. hypot added to math.h 8. __cpluseplus in setjmp.h 9. prototype of gdbm_open in gdbm.h 10. Per is trying to fix fseek/fwrite with file opened for read and write. 11. dirent.[ch] are fixed such that static memory no longer is used in readdir (). 12. sys/dir.h sys/dirent.h are modified such that there will be a warning when both of them are included. They are also compatible now. 13. __cpluscplus in fnmath.h 14. gets () will only give a warning during linking. 15. wait3 (). 16. <stdio.h> is fixed. fputc, fgets and gets are no longer macros. 17. <sys/user.h> is added in 0.96ap2inc.tar.Z. 18. The return value of clock ticks of the old sysconf () was wrong. It returned 60 instead of 100. 19. The domain errors in the math libraries are improved. 20. bsearch and qsort are fixed for zero element.

The following functions are added to libc.a.

1. accept 2. bind 3. bstring 4. connect 5. ftime 6. fchmod 7. fchown 8. ftruncate 9. getpagesize 10. getpeername 11. getsockname 12. getwd 13. ioperm 14. itimer. 15. listen 16. mmap 17. mntent. 18. ntohs/htons 19. ntohl/htonl 20. psignal 21. ptrace 22. setenv/unsetenv 23. sigsetmask 24. siggetmask 25. socket 26. socketpair 27. statfs () and fstatfs (). 28. tell (bsd) 29. truncate 30. usleep 31. vfork 32. wait3() and wait4 ().

Gdbm 1.5 is here for X11R5.

popen now is based on iostream.

I also changed the structure of header files. To install the gcc 2.2, please do this first

tar cfz inc.bak.tar.Z /usr/include /usr/g++-include /bin/rm -rf /usr/include /usr/g++-include

A new structure of gcc is introduced here. All the static libs are in /usr/lib/gcc-lib/i386-linux/2.xxx and all the shared libs are in /usr/lib/gcc-lib/i386-linux/2.xxx/shared. By default, gcc will search /usr/lib/gcc-lib/i386-linux/2.xxx/shared first, then the static libs. You can turn off the shared libs with "-static".

BTW, you can still use the old compiler, xxx, with

gcc -V xxx

which will use the corresponding shared/static libs for that version. That will make life for X11 easier.

The default should be the same as gcc -V 2.2

If you want to keep gcc 2.11c, please read FAQ. For the older version, 2.12d or above, it is done automatically.

There is a new file for making the shared images for gcc 2.2, shlib-2.2.tar.Z. Please use that to build the shared libs. In this file, a new naming scheme is used. The shared images will be called "libc.2.2", which I think is better than "libc_v_2_2". BTW, you need awk for inst2.x now.

There must be a few bugs. Please let me know if you find any.

File list:

1. 2.2lib.tar.Z (cpp, cc1, cc1plus) 2. 2.2misc.tar.Z (header files, drivers, libs, doc, ....) 3. shlib-2.2.tar.Z (making the shared libs for gcc 2.2) 4. libc-2.2.tar.Z (source code for the libs) 6. gcc-2.2.1.tar.Z (patches for compiling gcc 2.2.1) 7. 0.96ap2inc.tar.Z (the kernel header files for 0.96a patch level 2 with <sys/user.h>) 8. 0.96ainc.tar.Z (the kernel header files for 0.96a)

H.J. hlu@eecs.wsu.edu 06/16/92