Fri Sep 11 13:29:05 1992 H.J. Lu (hlu@poly2) * rearrange the file structures of gcc. separate compiler from libraries and header files. Here is the new structure: 1. static libraries are in /usr/lib. 2. jump table version of shared library stubs are in /usr/lib/shlib/jump. 3. classic version of shared library stubs are in /usr/lib/shlib/nojump 4. default for gcc is jump table. the other options are -nojump and -static. -g and -pg will use the corresponding static libraries. * shared images are in a separate package. * from this release on, the gcc will follow the FSF naming. the libraries will be named after jump table version number. the current versions are gcc 2.2.2d, the Linux C library 4.1 and the Linux math library 4.0. the Linux math library won't change with the minor version number. so for all the version y.xxx's, there is only one release of math library, version `y.0'. * file list for gcc 2.2.2d, libc 4.1 and libm 4.0: 1. 222d7.TZ gcc 2.2.2d linked with jump table 4.1. it has gcc, cc1, cc1plus and cpp. it also has version dependent header files. unpack it under /. 2. lib41.tar static libraries and shared library stubs. it has lib-4.1.TZ and lib-4.1.sh. run lib-4.1.sh will install lib-4.1.TZ. do lib-4.1.sh you have to have a real sh to run it. This script is used to install the math library, soft or hard. 3. inc-4.1.TZ header files for lib 4.1. unpack it under /. You have to make two symbolic links. one from include/linux of kernel source to /usr/include/linux, another from include/asm of kernel source to /usr/include/asm. There is a file, /usr/include/linux/const.h. You have to move it to include/linux of kernel source before you make symbolic link. unpack it under /. 4. jump41.tar shared images for jump table 4.1. it has jump-4.1.TZ and jump-4.1.sh. do jump-4.1.sh to install jump-4.1.TZ. this script is used to install the shared math image, soft or hard. 5. libdp-4.1.TZ libc_p.a and libg.a. unpack it under /. 6. jump-src-4.1.TZ scripts for build jump table 4.1. almost no documentations. contributions are welcome. 7. lib-src-4.1.TZ source code for the Linux C library 4.1. * the install procedures are minimal. it didn't do much file permission fixing. fix them when you find they are wrong. * this release contains no new binaries for gcc, cc1, cc1plus or cpp. only things changed are in libraries. Mon Sep 7 13:44:09 1992 H.J. Lu (hlu@poly2) * change to jump table 4.1 * add prefix __ to header files. * use strftime from shellutils 1.7 to replace the one from glibc.a 1.03. Sat Sep 5 16:57:21 1992 H.J. Lu (hlu@poly2) * swapoff, wait4 (real one, need 0.97 pl3 or above) are added. * vm86 () and are added. Fri Sep 4 17:31:44 1992 H.J. Lu (hlu@meriadoc) * change jump table to 4.0. Add __brk_addr to global data. fix streambuf static member, _list_all. Wed Sep 2 13:01:59 1992 H.J. Lu (hlu@poly2) * __overflow () and __underflow () are moved into a separate file to facilitate the implementation of jump table. * getdtablesize () returns OPEN_MAX. Mon Aug 31 16:14:38 1992 H.J. Lu (hlu@poly2) * new getpass () from poeigl-1.6.tar.Z. * add C++ wrapper in setjmp.h. * GNU regex 0.9 is used. * file lock in gdbm is changed for real thing in 0.97 pl 2. * ntol? () and hton? () netinet/in.h are fixed. Thu Aug 27 00:12:10 1992 H.J. Lu (hlu@yoda) * regex (version 0.9) from shellutiles-1.7 is used. * bsd style signal () is added in . define _USE_BSD_SIGNAL to use it. * sigblock and sigpause () are added. * ftw () is added. It is untested. It uses seekdir and telldir (). I am afraid it may not work with VFS. Wed Aug 26 00:17:33 1992 H.J. Lu (hlu@fili) * scandir () and alphasort () are added. * killpg () is added to . Sun Aug 23 14:49:23 1992 H.J. Lu (hlu@poly2) * some files are changed for the new shared image scheme. * ypu have to have 0.97 pl 2 or above to use it. * define WTMP_FILENAME and UTMP_FILENAME as WTMP_FILE and UTMP_FILE in . Sat Aug 22 10:57:11 1992 H.J. Lu (hlu@luke) * fix re_comp (""). * setfileno () is added to stdio. don't use it unless you have to. * use POSIX signals in curses, ./posix/system.c and ./iostream/procbuf.C ----------------Start to Use ChangeLog------------------ Thu Aug 12 1992 * gcc-2.2.2d You need to have the header files from virgin Linux kernel 0.97 patch 1 or above on line to use this release. The source codes for gcc itself is unchanged from 2.2.2, but it was recompiled for new kernel. And lots of bugs are fixed. I am trying to make the Linux C library to be POSIX.1 compliant. I cleared up the header files and some library functions. 1. and are fixed. (in 2.2.2dmisc.tar.Z) 2. is fixed, remove __tzname_max (). (in 0.97pl1inc.tar.Z) 3. posix/sysconf.c. (the shared image is compiled with old one. I don't think it will matter too much. this will be fixed in the next release.) 4. time/Makefile (remove tzname.o) There are some problems with pathconf()/fpathconf(). We need a new sys call to get info about the filesystem. Someone mentioned vfsstat (). It may be a good idea. To be compliance with POSIX.1, we need 1. LINK_MAX 2. MAX_CANON 3. NAME_MAX 4. PATH_MAX 5. PIPE_BUF 6. _POSIX_CHOWN_RESTRICTED 7. _POSIX_NO_TRUNC 8. _POSIX_VDISABLE Some of them may change for different filesystems. Some don't. Some may do in the future. The installation procedure is changed. Please read README first. The new correct setjmp/longjmp are not compatible with gcc 2.2.2. If your code uses them, please recompile it with gcc 2.2.2d. And DO NOT USE setjmp/longjmp WITH THE SHARED X386 v1.1, WAIT FOR v2.0. The following bugs in libraries are fixed. 1. div/ldiv. 2. setjmp/longjmp. 3. crt0.o/gcrt0.o. 387 control word is changed to 0x1272. No overflow exception. 4. floating point format errors are fixed. 5. minor bug in mntent.c. 6. popen.o is fixed in libg.a. 7. fopen ("foo", "a") will seek to the end of file. 8. printf ("%10.2f\n", 10.0); 9. libg++.a 2.2 is used. 10. libinet.a is folded into libc.a. All the data bases are in /usr/etc/inet. But you need kernel support for that. Please contact "bir7@leland.stanford.edu" first. 11. a typo in libc-linux/socket/bytedorer.c is fixed. 12. size of args + envs for exec () is fixed. 13. new mount for 0.97. 14. a bug in temporary filename creation is fixed. Now it checks if a process has permission to create a file in specified directory. 15. in libhard.a, pow (0.0, 0.0) = 1.0 now. 16. cc1/cc1plus is fixed for double foo=DBL_MAX; The following functions are added to libraries. 1. setpiority/getpiority. 2. iopl. 3. sigsetjmp/siglongjmp. 4. cfree. The following changes are made to the header files. You won't notice the changes unless you are testing TCP/IP. If you are, please first contact "bir7@leland.stanford.edu". You need more than that. 1. is fixed. 2. is fixed. 3. all the header files are now compatible with gcc -traditional. 4. strncasecmp is added to . 5. is added. 6. lots of bugs are fixed. 7. and are changed. 8. and are changed for TCP/IP. 9. and are in for TCP/IP. 10. lots of header files in kernel and /usr/include are fixed. two dummies, and are added for gdb 4.6. The following changes are made to libraries. 1. byte order functions for networking are written in C. Please read libc-linux/socket/byteorder.c and David's jump table version 2 release 2.1 is in. Jun 27 1992 * gcc-2.2.2 Please get the new binutils.tar.Z, which fixed some bugs in as and gprof with some patches from Rick Sladkey at jrs@world.std.com 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 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. Jun 16 1992 * gcc-2.2 based on FSF release gcc-2.2.1 new binutils.tar.Z, which fixed some bugs in as. Libg++.a is 2.1 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". The following bugs in libc.a are fixed. 1. dirent.[ch] are fixed such that static memory no longer is used in readdir (). 2. 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. 3. __cpluscplus in fnmath.h 4. gets () will only give a warning during linking. 5. wait3 (). 6. is fixed. fputc, fgets and gets are no longer macros. 7. is added in 0.96ap2inc.tar.Z. 8. The return value of clock ticks of the old sysconf () was wrong. It returned 60 instead of 100. 9. The domain errors in the math libraries are improved. 10. 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. socket 24. socketpair 25. statfs () and fstatfs (). 26. truncate 27. usleep 28. vfork 29. wait3() and wait4 (). Gdbm 1.5 is here for X11R5. popen now is based on iostream. I also changed the structure of header files. May 30 1992 * gcc-2.12c based on ss-920528 from FSF 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. Now libg++.a 2.0.91 is here. The following bugs in gcc are fixed. 1. "\xxx" works now. 2. No more warning about "__FUNCTION__" stuffs. The following bugs in libc.a are fixed. 1. hypot added to math.h 2. popen is fixed by Per, Check it out. 3. __cpluseplus in setjmp.h 4. copy sys/dirent.h to sys/dir.h, but change dirent to direct. 5. proto type of gdbm_open in gdbm.h 6. Per tried to fix fseek/fread/fwrite. Check it out. Here is the list of the known bugs. 1. -O won't work with getdate.c from shellutils 1.6. I am trying to fix the following bugs in libg++.a. 1. Maybe Complex.o, which uses hypot. May 27 1992 * gcc-2.12b The following bugs in libc.a are fixed. 1. types used in sigsetmask and siggetmask are now sigset_t. 2. a minor change in sigproc.c. 3. signal.h is changed. I am trying to fix the follwing bugs in libg++.a. 1. Regex.o and String.o Please do this to fix the bug in libg++.a. /bin/rm -rf /usr/g++-include/regex.h May 26 1992 * gcc-2.12 based on FSF prerelease of gcc-2.2. The follwing 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? The following functions are added. 1. tell (bsd) 2. sigsetmask 3. siggetmask popen now is based on iostream. I also changed the structure of header files. Libg++.a 2.0.90 is here, which is MUCH better than the one in gcc 2.11c. Please try this. Stdio should be less buggy. Check it out. To use this release, please get new binutils.tar.Z which has a new gas. May 19 1992 * gcc-2.11c ldd is supported. The source code of the libraries is in libc-2.11c.tar.Z. There are two files: gcc-2.1.tar.Z, for compiler, including some tips for cross-compiling. shlib-2.11c.tar.Z, for building the shared libs. May 17 1992 * gcc-2.11b 1. sleep (0) is fixed. 2. All binaries are recompiled with new gas. 3. X11R5 is not the part of gcc 2.1 anymore. Please get the new binutils.tar.Z. The old one may have bugs.