From: Fifer, Eric Date: Thu, 10 Aug 2000 13:15:36 +0000 (+0100) Subject: cygwin port X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=125a13ce0d7046842b66e0511332045542302d57;p=p5sagit%2Fp5-mst-13.2.git cygwin port Message-ID: <779F20BCCE5AD31186A50008C75D997917176A@silldn_mail1.sanwaint.com> p4raw-id: //depot/perl@6564 --- diff --git a/README.cygwin b/README.cygwin index 2a95ab9..886954c 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://sources.redhat.com/cygwin/ A recent net or commercial release of Cygwin is required. -At the time this document was last updated, Cygwin 1.1.2 was current. +At the time this document was last updated, Cygwin 1.1.4 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: @@ -138,22 +140,21 @@ The MD5 port was done by Andy Piper: ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/libcrypt.tgz -There is also a Linux compatible 56 bit DES crypt port by Corinna -Vinschen: - - ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Vinschen_Corinna/V1.1.1/crypt-1.0.tar.gz - =item * C<-lgdbm> (C) 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. @@ -224,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 @@ -297,8 +286,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 @@ -326,8 +315,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 @@ -360,7 +349,7 @@ these options, these tests will fail: FAT partitions do not support hard links (whereas NTFS does), in which 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 both cases, +for remote directories and files is not available. In either case, these tests will fail: Failed Test List of failed @@ -389,7 +378,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 ... @@ -404,7 +393,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). @@ -439,9 +428,9 @@ printable characters except these: : * ? " < > | -File names are case insensitive, but case preserving. A pathname -that contains a backslash is a Win32 pathname (and not subject to the -translations applied to POSIX style pathnames). +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 @@ -480,6 +469,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 @@ -580,12 +572,17 @@ 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. + =head1 AUTHORS Charles Wilson , @@ -597,4 +594,4 @@ Teun Burgers . =head1 HISTORY -Last updated: 20 June 2000 +Last updated: 10 August 2000 diff --git a/hints/cygwin.sh b/hints/cygwin.sh index 47c2092..1fbe5a6 100644 --- a/hints/cygwin.sh +++ b/hints/cygwin.sh @@ -35,9 +35,6 @@ ld='ld2' # - perl malloc needs to be unpolluted bincompat5005='undef' -# stubs (ENOSYS, not implemented) -d_chroot='undef' - # Win9x problem with non-blocking read from a closed pipe d_eofnblk='define'