Subject: GNU-Win32 Beta 19 is available!
From: [email-masked] (Geoffrey Noer)

27 Feb 1998 03:03:27 -0800
Message-ID: <[email-masked]>
Content-Type: text
To: [email-masked]
Cc: [email-masked] (Geoffrey Noer)

Greetings!

I'm pleased to announce the immediate availability of the 19th beta
release of the GNU-Win32 tools for Windows NT and 95.

Please use the mirror closest to you to download the release.  It may
take a day or two for them to be updated.  Until then, it is available
from the primary ftp server in 

	ftp://go.cygnus.com/pub/ftp.cygnus.com/gnu-win32/latest

as well as from the secondary ftp server ftp.cygnus.com.

Appended to this message is the README for the Beta 19 release.

Enjoy!

Geoffrey Noer
[email-masked]

------------------------------- README.TXT --------------------------

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.

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.

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 Harry 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.

GNU-Win32 FTP Sites
*******************

   The primary ftp site is
`ftp://go.cygnus.com/pub/ftp.cygnus.com/gnu-win32'.  There are also
several mirrors:

   `' North America:
        `' Alberta: `ftp://ftp.reversion.ca/pub/mirrors/gnu-win32'

        `' California: `ftp://ftp.cygnus.com/pub/gnu-win32'

        `' Texas: `ftp://ftp.deninc.com/pub'

   `' Worldwide:
        `' Austria: `ftp://gd.tuwien.ac.at/pub/gnu/gnu-win32'

        `' France: `ftp://ftp.fwntug.org/gnu',

          `ftp://ftp.inria.fr/INRIA/Projects/Meta2/Scilab/Windows/cygwin/'

        `' Greece: `ftp://ftp.ntua.gr/pub/pc/gnu-win32'

        `' Italy: `ftp://aaue.matrice.it/pub/gnu-win32'

        `' Japan: `ftp://ftp.crl.go.jp/pub/GNU/cygnus/gnu-win32'

        `' Slovenia: `ftp://sunsite.fri.uni-lj.si/pub/gnu-win32'

        `' Spain: `ftp.rediris.es/mirror/gnu-win32'

        `' UK:
          `ftp://sunsite.doc.ic.ac.uk/packages/gnu/cygnus/gnu-win32'

Contents
========

   The following packages are included in the full release:

   Cygnus Developer's Kit (CDK): binutils, bison, byacc, dejagnu, diff,
expect, flex, gas, gcc, gdb, itcl, ld, libg++, libstdc++, make, patch,
tcl, tix, tk

   user tools: ash, bash, diff, fileutils, findutils, gawk, grep, gzip,
m4, sed, shellutils, tar, textutils, time

   The user tools release only contains the user tools.

   Full source code is available for these tools.  It is split into
these two units.  Ash is provided separately for now.

Installing the binary release:
==============================

   Important!  Be sure to move out of the way any older versions of the
gnu-win32 tools that exist in your $PATH (or delete them).

   Connect to one of the ftp servers listed above and cd to the
directory containing the latest release.  On our primary server, that
would be:

   `ftp://go.cygnus.com/pub/ftp.cygnus.com/gnu-win32/latest'.

   If you want the development tools and the programs necessary to run
the GNU configure mechanism, you should download the whole release
called `cdk.exe'.  If you only care about the user tools listed above,
download `usertools.exe'.

   If you have an unreliable connection, download the binary in smaller
chunks instead.  For the split cdk installer, get the files in the
`cdk-split' subdirectory.  Once downloaded, combine the split files at
the command prompt by doing a:

     copy /b xaa + xab + xac + ... + xai + xaj cdk.exe
     del xa*.*

   The same process can be used for the user tools.

   Once you have an install executable on your system, run it.  First
off, the installer will prompt you for a location to extract the
temporary files it needs to install the release on your system.  The
default should be fine for most people.

   Next it will ask you to choose a default install location,
`<system-drive>:\cygnus\b19'.  Feel free to choose another location if
you would prefer.

   Finally, it will ask you for the name of the Program Files folder
shortcut to add.  The default is `Cygwin32 Beta 19'.  When this step is
completed, it will install the tools and exit.

   At this point, you should be able to look under the start menu and
select "Cygwin32 Beta 19" (or whatever you named it).  This will pop up
a bash shell with all special environment variables set up for you.  If
you are running Windows 95 and are faced with the error message "Out of
environment space", you need to increase the amount of environment
space in your config.sys and try again.  Adding the line
`shell=C:\command.com /e:4096 /p' should do the trick if `C:' is your
system drive letter.

   There are two remaining thing you should do from this prompt.
First, you need to type `mkdir -p /tmp' to ensure that a temp directory
exists for programs that expect to find one there.

   Second, if you are installing the full distribution (`cdk.exe'),
various programs will need to be able to find `/bin/sh'.  You should
`mkdir -p /bin' and put a copy of `sh.exe' there, removing the older
version, if present.  You can use the `mount' utility to select which
drive letter is mounted as `/'. See the Frequently Asked Questions
(FAQ) file for more information on `mount'.

   And you should be done!

   If you should ever want to uninstall the tools, you may do so via
the "Add/Remove Programs" control panel.

Installing the source code
==========================

   Before downloading the source code corresponding to the release, you
should install the latest release of the tools (either the full release
or just the user tools).

   Create the directory that will house the source code.  `cd' there.

   Connect to one of the ftp servers listed above and cd to the
directory containing the latest release.  On our primary server, that
would be:

   `ftp://go.cygnus.com/pub/ftp.cygnus.com/gnu-win32/latest'.

   If you want the user tools source code, `cd' into the
`usertools-src' subdirectory.  Download the files there.  If you want
the Cygnus Developer's Kit sources, `cd' into the `cdk-src'
subdirectory.  Download the files there.

   Back in the command.com, for the user tools source:

     copy /b xba + xbb + xbc + xbd + xbe + xbf + xbg usersrc.tar.gz
     del xb*.*
     gunzip -d usersrc.tar.gz
     tar xvf usersrc.tar

   For the compiler tools source:

     copy /b xca + xcb + xcc + xcd + ... + xck + xcl cdksrc.tar.gz
     del xc*.*
     gunzip -d cdksrc.tar.gz
     tar xvf cdksrc.tar

   Both will expand into a directory called `src'.

   And you should be done...

Cygnus Resources Online
=======================

   The main WWW page for the GNU-Win32 project is:

   	http://www.cygnus.com/misc/gnu-win32/

   Tool-specific information can be found here:

   http://www.cygnus.com/library/

   Links to additional documentation are accessible from the main web
page.

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".