From 5d35d9b14ae69207aba306f544ea02053d71751c Mon Sep 17 00:00:00 2001 From: David Starks-Browning Date: Wed, 23 Jan 2002 23:07:18 +0000 Subject: [PATCH] "History" no longer maintained here. Moved to . --- winsup/doc/history.texinfo | 669 +------------------------------------ 1 file changed, 2 insertions(+), 667 deletions(-) diff --git a/winsup/doc/history.texinfo b/winsup/doc/history.texinfo index 8856a70b8..f5ae98780 100644 --- a/winsup/doc/history.texinfo +++ b/winsup/doc/history.texinfo @@ -1,670 +1,5 @@ @chapter History -@strong{(Please note: This section has not yet been updated for the latest -net release.)} +This section of the FAQ is no longer maintained. -@include changes.texinfo - -@section Release Beta 19 (Feb 26 1998) - -This is a major release. It includes a much-updated version of the -Cygwin32 library. Because the Cygwin API has changed in incompatible -ways, the dll has been renamed cygwinb19.dll to avoid invalidating -previously built executables. - -Note that a B19-compiled application exec()ing a B18-compiled -application will treat the B18-compiled executable as an ordinary -Win32 executable. This means that open file descriptors and some other -internals will not be inheritted on exec() calls. The reason for this -is that different shared memory areas are used by the different versions -of the cygwin library. This may or may not be of importance to you -depending on what you're doing. - -The Beta 19 release of the Cygwin32 library continues to be licensed -under the GNU General Public License (GPL). - -The PE format definition used by the compiler tools now matches -Microsoft's more closely. This should allow better interoperability -with other vendors' development tools although more work probably -remains to be done in this area. This change invalidates all previously -built object (.o) and static library (.a) files so be sure to -delete/rebuild old .o and .a files you are using! - -Finally, old symlinks are invalidated by this release. The "system" -attribute is now used to mark symlinks which significantly speeds -up fstat and other file related calls. Either recreate old ones or -set their "system" attribute flag so they will be recognized properly. - -The new installer takes care of all environment variable settings -automatically by installing a shortcut in program files that pulls -up a bash prompt with all the correct environment variables set. -As a result, the setup process should be much cleaner than in the last -release. - -For those of you who end up moving the tools around, the batch file -that sets up the default environment is called cygnus.bat and is -installed in the root of the install directory. Because the tools have -been compiled to install in /cygnus/b19, when installed in this -location, the tools should "just work" if the bin directory is in your -path (no special environment variables are needed). The only exception -is MAKE_MODE which needs to be set if you want to get ordinary Unix-like -make behavior -- see the make notes below for more information. - -@subsection Changes in specific tools: - -Ian Lance Taylor has written a resource compiler called "windres". -It can be used to compile windows resources from a textual rc file -into a COFF file. The sources are in the binutils subdirectory of -the sources. - -We have upgraded many of the utilities. Beta 19 includes bash 2.01.1, -fileutils 3.16, gawk 3.0.3, patch 2.5, shellutils 1.16, tar 1.12, -textutils 1.22, and texinfo 3.11. Bash under Cygwin32 now includes -working job control among other improvements. - -The sh executable is now ash 0.2 from the Debian Linux distribution. -Using this more minimal shell as /bin/sh.exe speeds up configures -significantly. - -Bison 1.25 has been added. - -Tcl/tk are upgraded to version 8.0. Compatible versions of tix and -itcl have been added. These all include Cygwin32-compatible configury -files so you can do a Unix-style build of the Win32 ports of tcl/tk. - -Expect 5.21.3 is included and basically works. - -The binaries have been compiled with i686 optimizations turned on -which may result in a speed increase on Pentium-based systems -although the tools should work on i386 and later chips. - -The linker (ld) has been enhanced -- it will now add the idata3 -terminator automatically when linking dlls. - -kill now supports signal names in arguments. ps now shows process -start time information. - -Although the default install of the tools should hide this detail, the -make utility now defaults to a Win32 mode which uses cmd.exe/command.com -as the subshell. This mode allows the use of backslashes in filenames. -To build Unix programs, you need to set the MAKE_MODE environment -variable to "UNIX". This way you will get the old behavior of using -sh.exe as the subshell. - -@subsection Changes in the Cygwin32 API (cygwin.dll): - -The interface is now better defined. It contains libc, libm, and -Unix compatability calls. It no longer contains exports for libgcc.a. -This should result in a more stable interface. See the calls.texinfo -document for interface documentation. - -There is now only one environment variable called CYGWIN32 that controls -the overall behavior of the dll: - - set CYGWIN32=[no]title [no]strip_title [no]binmode [no]glob - strace=mask:cache,file [no]tty - -So if you "set CYGWIN32=title tty", then you would get tty support -(see below) and have the current running process listed in the title -bar. - -B19 adds support for: - -* tty and pseudo-tty devices. For now, ttys default to off because -taking over the console causes problems with using non-Cygwin console -programs in a Cygwin console. To turn it on, set the environment -variable CYGWIN32 to include "tty". -* Hard links (requires NT on an NTFS filesystem). When not possible (on -non-NTFS filesystems), link() will make a copy of the file in question -as it has done in previous releases. -* The SIGWINCH signal. If tty handling is enabled then the process will -receive a SIGWINCH signal when the screen size changes. -* Additional terminal escape sequences recognized: scroll region setting via -[n1;n2r and setting the console title using xterm escape sequence: -]2;new title^G . - -The following calls have been added: - -* ptsname, grantpt, unlockpt -* login, logout, ttyslot, ctermid -* cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed -* setitimer, getitimer, ftime, tzset -* wait3, wait4, pause, sigpause -* getpgid, killpg, setegid (stub) -* strlwr, strupr -* sexecve, sexecl, sexecle, sexeclp, sexeclpe, sexecv, sexecp, sexecvpe -* rcmd, rresvport, rexec -* strsignal, strtosigno -* dlopen, dlsym, dlclose, dlerror -* inet_netof, inet_makeaddr -* socketpair -* fpathconf, realpath, chroot (stub) -* initgroups (stub), getgroups -* random, srandom - -The following calls have been removed: - -* ScreenCols, ScreenGetCursor, ScreenRows, ScreenSetCursor -* getkey, kbhit -* crypt (stub) -* all libgcc.a exports - -The Winsock dll (wsock32.dll) is no longer implicitly linked into -the Cygwin32 dll. Instead, it is explicitly loaded with LoadLibrary -the first time a process calls a Cygwin32 networking function. This -speeds up most processes significantly (configures by about 20%). - -The signal-related code has been rewritten from scratch. Ditto for -most of the path handling code. - -The globbing and getopt code has been replaced with BSD-derived -code. The regexp code has been replaced with Henry Spencer's PD -implementation. - -Doug Lea's malloc is now being used as the default malloc exported by -cygwin. This malloc balances speed and compactness very nicely but is -more unforgiving when attempts are made to free already freed memory, -i.e., a segmentation violation will occur. - -The bsearch call has been rewritten. - -Alt Gr-key behavior has been changed in this release. The left alt-key -still produces ESC-key sequence. The right alt (Alt Gr)-key now -produces characters according to national keyboard layouts. - -Processes no longer write their name in the title bar unless you include -"title" in the CYGWIN32 environment variable (see above). - -Multiple cygwin.dlls no longer use the same memory space unless they are -identical (built at the same time). This allows multiple dlls with -incompatible shared memory usage to be run simultaneously. It also -facilitates debugging a buggy cygwin.dll. By keeping only a single copy -of the latest cygwin.dll on your system, you can be assured of having -all cygwin processes exist in the same shared memory space. - -The slash mount no longer defaults to C:. It now defaults to the -system drive letter (where the OS is installed). - -The standard dl* dynamic library loader functions are now available. -Cygwin32 B19 now correctly copies data after a fork and automatically -reloads any DLLs loaded in the parent process. In addition, dlls will -now be correctly initialized when loaded and global constructors will -be called. Global destructors will be called when the DLL is detached. -Handles gotten from dlopen or dlsym in the parent will be accessible in a -forked child. The LD_LIBRARY_PATH environment variable is used in the dlopen -search. - -Include the file in a cygwin32 created .dll and -use the line DECLARE_CYGWIN_DLL(dll-entry-point) to produce .dlls that -can be used with these functions. - -@section Release Beta 18 (May 6 1997) - -This is a major release. The new cygwin.dll is still -backwards-compatible with previously linked applications but -contains significant changes. - -We have completely changed the installation process to make -use of an InstallShield5-based installer. This should reduce the -number of installation problems people have experienced in the -past. However, it is still necessary to set environment variables -by hand, as explained in the README.txt accompanying the distribution. -(Future gnu-win32 installers may include the capability to do this -automatically). - -@subsection Changes in specific tools: - -GCC compilation times have been improved by 20-30% by using spawn() -instead of fork(). - -GCC accepts both Win32 and POSIX paths/path lists in its -environment variables (COMPILER_PATH, LIBRARY_PATH, C_INCLUDE_PATH, -CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH) - -GDB comes with a tcl/tk-based GUI (gdbtk). You can still invoke the -command line gdb by invoking it with "gdb -nw". - -Bash verifies that /tmp exists and is a directory upon startup. -It complains if this isn't the case. - -Running gcc or ld with "-s" used to create invalid executables. -The bug in bfd that was responsible for this has been fixed. - -The conflict between String.h and string.h (and other such pairs -of header files) where you include one and get the other has been -fixed. - -The top level install-sh script tries to install foo.exe if asked -to install foo when foo's not present. This fixes many installs -of Unix software. - -Dlltool has preliminary support for the IMPORT declaration in .def files -when invoked with -I. Feel free to experiment with it but once this -functionality is tested more extensively this flag may go away. - -Time is upgraded to version 1.7. - -Make is upgraded to version 3.75. - -Make accepts both Win32 and POSIX path lists in the VPATH variable. - -@subsection Changes in the Cygwin32 API (cygwin.dll): - -The following is now supported: - -* UNC paths -* Reverse index escapes in console code -* Blocking select()s on a combination of sockets/handles -* Directory symlinks. -* Reparenting of child processes. - -The following calls have been added: - -* mmap(), mprotect(), msync(), munmap(). fork() changed to support these. -* fsync(), statfs(), fstatfs(). -* getprotobynumber() and getservbyport(). -* get_osfhandle(), cwait(). -* spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnv(), spawnve(), -spawnvp(), spawnvpe(). -* nice(). -* sigpending(), sigsuspend() -* Under NT only, chown(), getgrgid(), getgrnam(), endgrent(), getgrent(), -setpwend(), getpwent(), endpwent(). Win95 still has these as stubs. - -Significantly better signals / exception handling support added. -The kill signal works much better now (control-C works in bash). - -Shell scripts now run the shell specified after the #! instead of -always defaulting to /bin/sh. - -Floating point registers are now properly initialized in the crt0.o. - -Opening non-disk files such as com ports no longer check to see -if they are symlinks or executables. - -The console title now is set to the name of the running process. - -Winsock is now initialized upon app startup. - -Moved reent_data from private address space to cygwin.dll. - -The system() call now invokes spawnvp() instead of fork()/exec(). - -Support for NT extended attributes has been added but is disabled -for now because it slowed things down too much. We want to use them to -remember info about symlink and executable status of files. - -Under NT only, utilities mkpasswd and mkgroup can generate a valid -/etc/passwd and /etc/group. - -Earlier releases stored mount points in the registry under -"Cygnus Support". This changed to "Red Hat, Inc." starting -with beta 18. Either use a registry editor (regedit under NT) -to rename the old entry or just redo your mount points and the -cygwin.dll will automatically create the new one for you. - -Mount points can now be up to MAX_PATH in length instead of 30 -characters. - -@section Release Beta 17.1 (Dec 10 1996) - -A patch has been applied to make Win 95 configure work again. - -ld has been changed to make "a.exe" be the default executable name. - -@section Release Beta 17 (Dec 7 1996) - -It is now possible to rebuild the tools natively under x86 NT when -the full Cygnus Developers' Kit (CDK) and the User Tools are both -installed correctly. - -While the cygwin.dll underwent substantial changes, none of them -prevent you from using previously built applications The new dll -is compatible with beta 16 to the best of our knowledge. Beta 14-built -programs will continue to fail with the beta 17 dll -- you will have to -relink them before they will work. - -The winsup files that make up the Cygwin32 API are now under the -GNU General Public License. See the accompanying press release -for more information. - -@subsection Changes in specific tools: - -Gcc now links by default against -lkernel32 and also against --luser32 -lgdi32 -lcomdlg32 when mwindows is set. Another major -change is that when creating an executable, gcc will now create -foo.exe when given a -o argument of foo. - -Dlltool has patches to make it better handle the --subsystem argument -that allows choosing console vs. GUI among other options. -ld has been changed to have a much larger stack reserve size. This -is necessary when rebuilding the toolchain natively under NT. - -The C++ headers can now be found given a correctly set GCC_EXEC_PREFIX -environment variable. - -New versions of fileutils and make are included. Findutils has been -added. - -@subsection Changes in the Cygwin32 API (cygwin.dll): - -Scott Christley's headers and def files for the standard Win32 dlls -have been integrated. Anything present only in the previous Cygnus headers -has been added in the appropriate places. There are placeholder files -with the standard Win32 header names that pull in our headers so -programs that try to include specific headers should continue to work. -Having more complete headers should make Win32 native programming -easier. - -Select has been rewritten from scratch. The new one can deal with -all sockets, handles and sockets always ready, all handles. Handles -and sockets with timeout not implemented yet. Select now does -blocking and doesn't spin cpu. - -File handling has been largely rewritten: -The fhandler array has been moved into local memory instead of shared -memory. This makes a number of things behave better. Lots of changes -to support this. There is now fairly complete ansi/vt100 console support. -Some new file locking support has been added. Arrow keys are now -supported. - -Process handling much improved. - -Significant serious bugs in fork() fixed. - -The system() call now works. - -unlink() now chmods read-only files to writable before attempting to -delete a file. This fixes the outstanding problem where rm can't -delete read-only files saying "out of queue slots" repeatedly. - -Text mode read has been rewritten. - -New syslog code allows logging to event log under NT, file under Win 95. - -Symlinks are enabled. - -readv() and writev() have been written and exported. - -For MS compatibility, we now export functions in the dll as _funcname -in addition to funcname. I would suggest not making use of this fact -unless you are building code that already accesses C library calls -in this way. - -Almost all of the source code is now in C++ files. - -@section Release Beta 16 (Aug 30 1996) - -Path handling has been completely rewritten. To refer to drive Q: in -bash, you can now refer to //q/. Alternatively, type "mount Q: /q" to -have drive Q: show up as /q. - -We now pass the Plum Hall positive C conformance tests on the -i386 under Windows 95 and NT 4.0b2. - -Fork was previously not accessible inside the dll. This is no -longer the case which should allow us to add working system and popen -calls. - -getdomainname works (it used to just return "cygnus.com") by getting -information from registry. - -Fixed readdir bug that set errno improperly. This fixed the problem -with diff not working across directories. - -Better error checking in signal functions. Initialize winsock in -cygwin32_socket with checkinit call (fixes bug that required calling any -function that did this first). - -New functions: sigaddset, sigismember, sigfillset, sigemptyset. - -Removed extra underscores present in sysdef files. - -There is a now a major and a minor version number associated with -the cygwin.dll. The major number changes only when incompatible changes -are made, the minor number changes when significant changes are made -to the dll that don't require relinking of old apps. - -Changed value of HZ in include/sys/param.h to correct value of 1000. -(Fixes bug people reported about "time sleep 5" returning 50). - -Assorted exception handling fixes for both i386 and ppc processors. - -Assorted time-related fixes required for Cygnus Kerberos work. -New time functions: gmtime, corelocaltime - -Assorted spawn and fork fixes. - -Pseudo-Unix process handling added -- new ps and kill commands added - -Control-Z's are now handled as a valid EOF token in files opened as -text. -lseek now always operates in binary mode. - -Select revamped. - -Various other changes. For more detailed information, consult the file -in the source code winsup/ChangeLog. - -Preprocessor define scheme changed. Apps should now use _WIN32 -instead of __WIN32__ to check for access to Win32 API and __CYGWIN32__ -to check for presence of the Cygwin32 environment. - -We are no longer including GNU findutils, GNU dbm, GNU bison, -GNU less, ncurses, ftp, finger, rcl, cvtres, or V. This may or may not -change in the future. - -You must relink old apps you built with prior releases with the new -cygwin.dll. - -@section Release Beta 14 (April 10 1996) - -Some bugs have been fixed. GDBM and m4 are in the release. GCC now -uses the standard install directories for cc1 etc. - -A port of V to gnu-win32 is included. You can now write graphics -applications which will run on Unix or Windows unchanged. Some parts of -V work on the PPC too. - -If you call any programs from the standard DOS shell, then the DLL will -expand all the wildcards (glob) found in the arguments on the command -line. So ls *.exe will do what you think it should, even if you're not -in bash. - -ncurses and less are included. The DLL's emulation of a vt100 isn't complete, -so ncurses doesn't do all that it should. Hence less is more or less -useless. This can be fixed with a new DLL. (If you want to use -something which uses curses, be sure to set your TERM and HOME -envirionment variables) - -If you leave out main, then the libraries will try and call WinMain in the -usual way. - -^C works much better on Windows 95. It's still not quite right, but at -least most times it quits what you're doing, and most times doesn't -crash your machine. - -You can start more than one concurrent bash session. - -Some networking support has been added. Even though telnet.exe is provided, -I know that it doesn't work, so please don't send me bug reports. - -You will have to relink your applications to go with the new DLL. - -The DLL is released in its own .zip file too, so you don't have to -download a load of other stuff if you dont want to. - -@section Release Beta 13 (Feb 9 1996) - -Files are opened in binary mode, unless the registry is fiddled with. - -The `cat >foo < mechanism gone. - -Initial support for the PowerPC added. - -@section Release Beta 11 (Jan 3 1996) - -Something broke on the way to the ftp site. - -@section Release Beta 10 (Dec 5 1995) - -You can pass environment variables around in bash. - -Lots more stuff provided precompiled. - -Diffs to standard FSF release provided. - -It self-hosts. - -It supports symbolic links. - -The directory layout has changed to be more unix like. - -The way that you get to non-c drives is new - i:\foo.cc -is now /di/foo.cc - -Nasty bug found and fixed in fork. - -CPP will now search the directories you supply in env names. - -@section Release Beta 9 - -I've put all of libc and libm into a shared library, -This drastically reduces the size of some binaries. -e.g., ls goes from 82,949 bytes to 26,624. -"Hello World" is 2564 bytes long. -This is the first stage in greatly speeding up -some of the stuff that's going on behind the curtain. - -Different processes communicate using shared memory. - -Some trivial use of the registry is made. - -DLLTOOL is now *much* faster. - -Some small problems have been fixed in the way that DLLs were -layed out. - -@section Release Beta 8 - -GDB works. - -GCC now emits debug info which can make **huge** executables -Fortunately, strip works too. - -More work has been done to make quoting work. - -Simple termios support added to newlib. - -Much nicer way of describing paths, eg //c/foo is c:\foo. - -@section Release Beta 7 - -Works again on Win 95 (which is why -6 wasn't advertised). - -Permissions are faked better. - -Source of demos available without having to ftp the entire win32 -binary tree. - -@section Release Beta 6 - -Can now generate DLLs, tiny demo included. -tcl, byacc, fileutils, diff, make included. - -@section Release Beta 5 - -Bug preventing anything from running on recent versions -of Win95 fixed. - -vfork and exec oddities fixed. - -Import libraries are now really libraries and not -just .o files. - -Debugging info stripped from images and libraries; -it's just bloat until gdb works. - -I've filled in the four major import libraries. - -The win*.h files are now installed into /include -rather that /include/sys, so more things will -compile out of the box. - -@section Release Beta 4 - -PE support is fixed. Programs run on -NT 3.1, NT 3.5, NT 3.51 and Windows 95. - -You can build GUI programs. - -.DEF files for three other DLL's started. - -New GUI demo program. - -C library distinguishes between text and binary files -consequently the text files generated by the -tools have the familiar ^M at the end of the line -which DOS likes so much. - -Doug Evans of Cygnus has added a load -of fancy support for execve, opendir and -various other cool things. - -Exception handling is better. - -@section Release Beta 3 - -Was so long ago we don't remember. +Instead, see @file{http://cygwin.com/history.html}.