diff options
author | Christopher Faylor <me@cgf.cx> | 2000-02-17 19:38:33 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-02-17 19:38:33 +0000 |
commit | 1fd5e000ace55b323124c7e556a7a864b972a5c4 (patch) | |
tree | dc4fcf1e5e22a040716ef92c496b8d94959b2baa /winsup/doc/history.texinfo | |
parent | 369d8a8fd5e887eca547bf34bccfdf755c9e5397 (diff) | |
download | cygnal-1fd5e000ace55b323124c7e556a7a864b972a5c4.tar.gz cygnal-1fd5e000ace55b323124c7e556a7a864b972a5c4.tar.bz2 cygnal-1fd5e000ace55b323124c7e556a7a864b972a5c4.zip |
import winsup-2000-02-17 snapshot
Diffstat (limited to 'winsup/doc/history.texinfo')
-rw-r--r-- | winsup/doc/history.texinfo | 667 |
1 files changed, 667 insertions, 0 deletions
diff --git a/winsup/doc/history.texinfo b/winsup/doc/history.texinfo new file mode 100644 index 000000000..2d5c4c0e8 --- /dev/null +++ b/winsup/doc/history.texinfo @@ -0,0 +1,667 @@ +@chapter History + +@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 +<ESC>[n1;n2r and setting the console title using xterm escape sequence: +<ESC>]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 <cygwin32/cygwin_dll.h> 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 "Cygnus Solutions" 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 <<EOF bug is fixed. + +The symlink cookie has changed, so old links wont work any more. + +Two resource tools are provided (untested). + +More windows header files are provided. WxWindows almost compiles. + +You can get to a raw floppy with `/dev/fd0 or `/dev/fd1. + +You can have two filenames with the same name and different case in +the same directory. + +Stat now fills in the st_nlink field for directories, so find works +better. + +This version is much more stable than any previous version, and will +stay running long enough to configure and build itself on my NT box. + +This version is also available in PowerPC versions. The PowerPC +compiler doesn't do stack probing, so some applications won't work, or +they'll only work on some input data - e.g. the demo "hello world" will +compile, but gcc will crash compiling the dhrystone benchmark. + +There's a new registry variable "fmode=binary" which controls +whether the tools always open files in binary mode (unless overridden +with O_TEXT), or always open files in text mode (unless overridden with +O_BINARY). + +Filesystems can be mounted with the mixed_case flag. This allows +you to use filenames with the same spelling, but different case in the +same directory. + +I haven't tested or even used some of the packages that I've +provided. I compiled them, and then fixed the obvious "the file should +have been opened in binary mode" problems. + +I've already had reports of some of it not working correctly on +Windows 95. I don't have a simple to use Windows 95 configuration, but +when I did try "it worked for me". This may be another manifestation +of the bug which makes bash hang sometimes under NT. + +@section Release Beta 12 (Jan 3 1996) + +You can call non- gnu-win32 applications from bash. + +You can mount other directories using the @code{mount} command. + +Minimal ANSI terminal emulation included. + +Packages split into smaller and more logical lumps. + +/d<name> 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 <foo>/include +rather that <foo>/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. |