From: noer AT cygnus DOT com (Geoffrey Noer) Subject: GNU-Win32 Beta 19 is available! 27 Feb 1998 03:03:27 -0800 Message-ID: <199802271045.CAA10299.cygnus.gnu-win32@rtl.cygnus.com> Content-Type: text To: gnu-win32 AT cygnus DOT com Cc: noer AT cygnus DOT com (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 noer AT cygnus DOT com ------------------------------- 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 [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 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 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, `:\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 "gnu-win32-request AT cygnus DOT com" with one line of text: "help".