X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.cygwin;h=6264a15788b7591a479c672b5c03d63c7881a1d4;hb=918426be7f3660c63cebe082bf8eac82a38bf756;hp=eb6c2898819165494ce79188c903b8511cdb4e1d;hpb=ee8c7f5465f003860e2347a2946abacac39bd9b9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.cygwin b/README.cygwin index eb6c289..6264a15 100644 --- a/README.cygwin +++ b/README.cygwin @@ -27,20 +27,19 @@ platforms. They run thanks to the Cygwin library which provides the UNIX system calls and environment these programs expect. More information about this project can be found at: - http://sourceware.cygnus.com/cygwin/ + http://www.cygwin.com/ A recent net or commercial release of Cygwin is required. -At the time this document was written, Cygwin 1.1.1 was current. +At the time this document was last updated, Cygwin 1.1.5 was current. B At this point, minimal effort has been made to provide compatibility with old (beta) Cygwin releases. The focus has been to provide a high quality release and not worry about working around old -Cygwin bugs. If you wish to use Perl with Cygwin B20.1 or earlier, -consider using perl5.005_03, which is available in source and binary -form at C or on the Cygwin CD. If there -is significant demand, a patch kit can be developed to port back to -earlier Cygwin versions. +bugs. If you wish to use Perl with Cygwin B20.1 or earlier, consider +using perl5.005_03, which is available in source and binary form at +C. If there is significant demand, +a patch kit can be developed to port back to earlier Cygwin versions. =head2 Cygwin Configuration @@ -49,11 +48,11 @@ that Perl builds cleanly. These changes are B required for normal Perl usage. B The binaries that are built will run on all Win32 versions. -They do not depend on your host system (Win9x, WinNT) or your Cygwin -configuration (I, I, binary/text mounts). The only -dependencies come from hard-coded pathnames like C. However, -your host system and Cygwin configuration will affect Perl's runtime -behavior (see L). +They do not depend on your host system (Win9x/WinME, WinNT/Win2K) +or your Cygwin configuration (I, I, binary/text mounts). +The only dependencies come from hard-coded pathnames like C. +However, your host system and Cygwin configuration will affect Perl's +runtime behavior (see L). =over 4 @@ -72,7 +71,7 @@ Configure will B prompt you to install I pages. On WinNT with either the I or I C settings, directory and file permissions may not be set correctly. Since the build process -creates files and directories, to be safe you may want to run a `C' on the entire Perl source tree. Also, it is a well known WinNT "feature" that files created by a login @@ -125,7 +124,10 @@ C. =item * C<-lcrypt> -The crypt libraries in GNU libc have been ported to Cygwin. +The crypt package distributed with Cygwin is a Linux compatible 56-bit +DES crypt port by Corinna Vinschen. + +Alternatively, the crypt libraries in GNU libc have been ported to Cygwin. The DES based Ultra Fast Crypt port was done by Alexey Truhan: @@ -144,11 +146,15 @@ GDBM is available for Cygwin. GDBM's ndbm/dbm compatibility feature also makes C and C possible (although they add little extra value). +NOTE: The ndbm/dbm emulations only completely work on NTFS partitions. + =item * C<-ldb> (C) BerkeleyDB is available for Cygwin. Some details can be found in F. +NOTE: The BerkeleyDB library only completely works on NTFS partitions. + =item * C<-lcygipc> (C) A port of SysV IPC is available for Cygwin. @@ -199,7 +205,7 @@ These are B yet available with Cygwin. I supports long doubles (12 bytes). However, several additional long double math functions are necessary to use them within Perl -(I<{atan2,cos,exp,floor,fmod,frexp,log,modf,pow,sin,sqrt}l,strtold>). +(I<{atan2,cos,exp,floor,fmod,frexp,isnan,log,modf,pow,sin,sqrt}l,strtold>). These are B yet available with Cygwin. =item * C<-Dusethreads> @@ -219,18 +225,6 @@ You may see some messages during Configure that seem suspicious. =over 4 -=item * Whoa There - -Cygwin does not yet implement chroot() functionality, but has a stub -function that returns C. You will see a message when Configure -detects that its guess conflicts with the hint file. - - *** WHOA THERE!!! *** - The recommended value for $d_chroot on this machine was "undef"! - Keep the recommended value? [y] - -You should keep the recommended value. - =item * I I is needed to build dynamic libraries, but it does not exist @@ -259,21 +253,13 @@ closed pipe. You will see the following messages: At least for consistency with WinNT, you should keep the recommended value. -=item * Checking how std your stdio is... - -Configure reports: - - Your stdio doesn't appear very std. - -This is correct. - =item * Compiler/Preprocessor defines The following error occurs because of the Cygwin C<#define> of C<_LONG_DOUBLE>: Guessing which symbols your C compiler and preprocessor define... - try.c:3847: parse error + try.c:: parse error This failure does not seem to cause any problems. @@ -292,8 +278,8 @@ Warnings like these are normal: warning: overriding commands for target warning: ignoring old commands for target - Warning: no export definition file provided - dllwrap will create one, but may not be what you want + dllwrap: no export definition file provided + dllwrap: creating one, but that may not be what you want =head2 ld2 @@ -321,8 +307,8 @@ running as `C<./perl harness>'. Test results vary depending on your host system and your Cygwin configuration. If a test can pass in some Cygwin setup, it is always attempted and explainable test failures are documented. It is possible -that Perl will pass all the tests, but it is more likely that some tests -will fail for one of these reasons. +for Perl to pass all the tests, but it is more likely that some tests +will fail for one of the reasons listed below. =head2 File Permissions @@ -353,7 +339,10 @@ these options, these tests will fail: =head2 Hard Links FAT partitions do not support hard links (whereas NTFS does), in which -case Cygwin implements link() by copying the file. These tests will fail: +case Cygwin implements link() by copying the file. On remote (network) +drives Cygwin's stat() always sets C to 1, so the link count +for remote directories and files is not available. In either case, +these tests will fail: Failed Test List of failed ------------------------------------ @@ -381,7 +370,7 @@ the system with messages like: A required .DLL file, CYGWIN1.DLL, was not found WinNT - perl.exe or sh.exe - Unable to Locate DLL + perl.exe - Unable to Locate DLL The dynamic link library cygwin1.dll could not be found in the specified path ... @@ -396,7 +385,7 @@ will fail: Alternatively, you can copy F into the directory where the tests run: - cp `type -p cygwin1.dll` t + cp /bin/cygwin1.dll t or one of the Windows system directories (although, this is B recommended). @@ -431,7 +420,9 @@ printable characters except these: : * ? " < > | -File names are case insensitive, but case preserving. +File names are case insensitive, but case preserving. A pathname that +contains a backslash or drive letter is a Win32 pathname (and not subject +to the translations applied to POSIX style pathnames). =item * Text/Binary @@ -450,13 +441,13 @@ The text/binary issue is covered at length in the Cygwin documentation. =item * F<.exe> -The Cygwin stat() makes the F<.exe> extension transparent by looking for -F when you ask for F (unless a F also exists). Cygwin -does not require a F<.exe> extension, but I adds it automatically -when building a program. However, when accessing an executable as a -normal file (e.g., I in a makefile) the F<.exe> is not transparent. -The I included with Cygwin automatically appends a F<.exe> -when necessary. +The Cygwin stat(), lstat() and readlink() functions make the F<.exe> +extension transparent by looking for F when you ask for F +(unless a F also exists). Cygwin does not require a F<.exe> +extension, but I adds it automatically when building a program. +However, when accessing an executable as a normal file (e.g., I +in a makefile) the F<.exe> is not transparent. The I included +with Cygwin automatically appends a F<.exe> when necessary. =item * chown() @@ -470,6 +461,9 @@ returns C. Win9x can not rename() an open file (although WinNT can). +The Cygwin chroot() implementation has holes (it can not restrict file +access by native Win32 programs). + =back =head1 INSTALL @@ -498,11 +492,11 @@ be kept as clean as possible. =item Documentation - INSTALL README.cygwin - Changes Changes5.005 Changes5.004 - AUTHORS MAINTAIN MANIFEST README.win32 - pod/perl.pod pod/perlfaq3.pod pod/perlhist.pod pod/perlmodlib.pod - pod/perlport.pod pod/perltoc.pod pod/perldelta.pod pod/perl5004delta.pod + INSTALL README.cygwin README.win32 MANIFEST + Changes Changes5.005 Changes5.004 Changes5.6 + pod/perl.pod pod/perlport.pod pod/perlfaq3.pod + pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod + pod/perlhist.pod pod/perlmodlib.pod pod/buildtoc.PL pod/perltoc.pod =item Build, Configure, Make, Install @@ -524,6 +518,7 @@ be kept as clean as possible. =item Tests t/io/tell.t - binmode + t/lib/b.t - ignore Cwd from os_extras t/lib/glob-basic.t - Win32 directory list access differs from read mode t/op/magic.t - $^X/symlink WORKAROUND, s/.exe// t/op/stat.t - no /dev, skip Win32 ftCreationTime quirk @@ -539,9 +534,7 @@ be kept as clean as possible. perl.h - binmode doio.c - win9x can not rename a file when it is open pp_sys.c - do not define h_errno, pp_system with spawn - mg.c - environ WORKAROUND - unixish.h - environ WORKAROUND - util.c - environ WORKAROUND + util.c - use setenv =item Compiled Module Source @@ -558,9 +551,10 @@ be kept as clean as possible. - require MM_Cygwin.pm lib/ExtUtils/MM_Cygwin.pm - canonpath, cflags, manifypods, perl_archive + lib/File/Find.pm - on remote drives stat() always sets st_nlink to 1 lib/File/Spec/Unix.pm - preserve //unc + lib/File/Temp.pm - no directory sticky bit lib/perl5db.pl - use stdin not /dev/tty - utils/perlcc.PL - DynaLoader.a in compile, -DUSEIMPORTLIB utils/perldoc.PL - version comment =back @@ -569,16 +563,25 @@ be kept as clean as possible. When I starts, it warns about overriding commands for F. -`C' does not remove library F<.def> and F<.exe.stackdump> +`C' does not remove library F<.def> or F<.exe.stackdump> files. The I script contains references to the source directory. You should change these to $installbin after `C'. +Support for swapping real and effective user and group IDs is incomplete. +On WinNT Cygwin provides setuid(), seteuid(), setgid() and setegid(). +However, additional Cygwin calls for manipulating WinNT access tokens +and security contexts are required. + +When building DLLs, `C' is used to export +global symbols. It might be better to generate an explicit F<.def> file +(see F). Also, DLLs can now be build with `C'. + =head1 AUTHORS Charles Wilson , -Eric Fifer , +Eric Fifer , alexander smishlajev , Steven Morlock , Sebastien Barre , @@ -586,4 +589,4 @@ Teun Burgers . =head1 HISTORY -Last updated: 5 May 2000 +Last updated: 9 November 2000