Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/doc/history.texinfo')
-rw-r--r--winsup/doc/history.texinfo667
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.