diff options
author | Fifer, Eric <EFifer@sanwaint.com> | 2000-02-24 17:15:28 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-02-24 18:00:49 +0000 |
commit | 5db16f6aca34f97afbc0dca7253849c56c0c381d (patch) | |
tree | c838fb0afb1b0643ce3428b18235ee402e9891f3 /README.cygwin | |
parent | 86d026b8c4144498131a8760a0ef71417fc4151d (diff) | |
download | perl-5db16f6aca34f97afbc0dca7253849c56c0c381d.tar.gz |
cygwin port
To: "'perl5-porters@perl.org'" <perl5-porters@perl.org>
Message-ID: <779F20BCCE5AD31186A50008C75D99791716E1@SILLDN_MAIL1>
p4raw-id: //depot/cfgperl@5241
Diffstat (limited to 'README.cygwin')
-rw-r--r-- | README.cygwin | 105 |
1 files changed, 62 insertions, 43 deletions
diff --git a/README.cygwin b/README.cygwin index ab60a58a0a..5a0be88230 100644 --- a/README.cygwin +++ b/README.cygwin @@ -134,7 +134,7 @@ binaries to be stripped, you can either add a B<-s> option when Configure prompts you, Any additional ld flags (NOT including libraries)? [none] -s - Any special flags to pass to gcc to use dynamic loading? [none] -s + Any special flags to pass to gcc to use dynamic linking? [none] -s Any special flags to pass to ld2 to create a dynamically loaded library? [none] -s @@ -155,7 +155,7 @@ C<http://cygutils.netpedia.net/>. The crypt libraries in GNU libc have been ported to Cygwin. -The DES based Ultra Fast Crypt port was done by Alexey Truhan +The DES based Ultra Fast Crypt port was done by Alexey Truhan: http://dome.weeg.uiowa.edu/pub/domestic/sos/cw32crypt-dist-0.tgz @@ -183,12 +183,9 @@ F<ext/DB_File/DB_File.pm>. =item * C<-lcygipc> (C<use IPC::SysV>) -A port of SysV IPC is available for Cygwin: - - http://www.multione.capgemini.fr/tools/pack_ipc/ - -The 1.3 release does not include ftok(), but code for ftok() can be -borrowed from glibc. +A port of SysV IPC is available for Cygwin. It has not been extensively +tested. In particular, C<d_semctl_semun> does not configure properly +because the configure test fails and on Win9x the shm*() functions hang. =back @@ -222,17 +219,17 @@ more than one interpreter instance. This works with the Cygwin port. The PerlIO abstraction works with the Cygwin port. -=item * C<-Duse64bits -Duselonglong> +=item * C<-Duse64bits> I<gcc> supports 64-bit integers. However, several additional long long -functions are necessary to use them within Perl (I<{atol,strtoul}l>). +functions are necessary to use them within Perl (I<{strtol,strtoul}l>). These are B<not> yet available with Cygwin. =item * C<-Duselongdouble> I<gcc> supports long doubles (12 bytes). However, several additional long double math functions are necessary to use them within Perl -(I<{sqrt,pow,atan2,exp,fmod,log,cos,frexp,sin,floor,modf,atof}l>). +(I<{atan2,cos,exp,floor,fmod,frexp,log,modf,pow,sin,sqrt}l,strtold>). These are B<not> yet available with Cygwin. =item * C<-Dusethreads> @@ -242,7 +239,7 @@ POSIX threads are B<not> yet implemented in Cygwin. =item * C<-Duselargefiles> Although Win32 supports large files, Cygwin currently uses 32-bit ints -for internal size and positional calculations. +for internal size and position calculations. =back @@ -265,6 +262,21 @@ hint file. You should keep the recommended value. +=item * Win9x and d_eofnblk + +Win9x does not correctly report C<EOF> with a non-blocking read on a +closed pipe. You will see the following messages: + + But it also returns -1 to signal EOF, so be careful! + WARNING: you can't distinguish between EOF and no data! + + *** WHOA THERE!!! *** + The recommended value for $d_eofnblk on this machine was "define"! + Keep the recommended value? [y] + +At least for consistency with WinNT, you should keep the recommended +value. + =item * Checking how std your stdio is... Configure reports: @@ -273,6 +285,8 @@ Configure reports: This is correct. +=back + =head1 MAKE Simply run make and wait: @@ -313,8 +327,8 @@ The same tests are run both times, but more information is provided when running as `C<./perl harness>'. Test results vary depending on your host system and your Cygwin -configuration. It is possible that Cygwin will pass all the tests, but it -is more likely that some tests will fail for one of the the reasons below. +configuration. It is possible that Cygwin will pass all the tests, +but it is more likely that some tests will fail for one of these reasons. =head2 File Permissions @@ -337,7 +351,6 @@ options, these tests will fail: lib/db-hash.t 16 lib/db-recno.t 18 lib/gdbm.t 2 - lib/glob-basic.t 9 (directory always readable) lib/ndbm.t 2 lib/odbm.t 2 lib/sdbm.t 2 @@ -391,7 +404,7 @@ directories (although, this is B<not> recommended). =head2 /etc/group -Cygwin does not need F</etc/group>, in which case the F<op/grent.t> +Cygwin does not require F</etc/group>, in which case the F<op/grent.t> test will be skipped. The check performed by F<op/grent.t> expects to see entries that use the members field, otherwise this test will fail: @@ -401,18 +414,17 @@ see entries that use the members field, otherwise this test will fail: =head2 Unexplained Failures -Any additional tests that fail are likely due to bugs in Cygwin. It is -expected that by the time of the next net release most of these will -be solved so they are not described here. None of the current bugs are -serious enough that workarounds are needed. +Any additional tests that fail are likely due to bugs in Cygwin or the +optional libraries. It is expected that by the time of the next net +release most of these will be solved so they are not described here. =head2 Script Portability -Cygwin does an outstanding job of providing UNIX-like semantics on top -of Win32 systems. However, in addition to the items noted above, there -are some differences that you should know about. This is only a very -brief guide to portability, more information about Cygwin can be found -in the Cygwin documentation. +Cygwin does an outstanding job of providing UNIX-like semantics on +top of Win32 systems. However, in addition to the items noted above, +there are some differences that you should know about. This is only a +very brief guide to portability, more information can be found in the +Cygwin documentation. =over 4 @@ -439,15 +451,17 @@ F<cygwin1.dll> provided by Sergey Okhapkin at: =item * Text/Binary When a file is opened it is in either text or binary mode. In text mode -it is subject to CR/LF/Ctrl-Z translations. Perl provides a binmode() -function to force binary mode on files that otherwise would be treated -as text. With Cygwin, the default mode for an open() is determined by the -mode of the mount that underlies a file. For binmode() to be effective, -the underlying mount must be text. There is no way to force text mode -on a file underneath a binary mount. The text/binary issue is covered -at length in the Cygwin documentation. +a file is subject to CR/LF/Ctrl-Z translations. With Cygwin, the default +mode for an open() is determined by the mode of the mount that underlies +the file. Perl provides a binmode() function to set binary mode on files +that otherwise would be treated as text. sysopen() with the C<O_TEXT> +flag sets text mode on files that otherwise would be treated as binary: + + sysopen(FOO, "bar", O_WRONLY|O_CREAT|O_TEXT) -lseek() only works with files opened in binary mode. +lseek(), tell() and sysseek() only work with files opened in binary mode. + +The text/binary issue is covered at length in the Cygwin documentation. =item * F<.exe> @@ -458,8 +472,8 @@ automatically when building a program. However, when accessing an executable as a normal file (e.g., I<install> or I<cp> in a makefile) the F<.exe> is not transparent. -NOTE: There is a version of I<install> that understands F<.exe>, it can -be found at: +NOTE: There is a version of I<install> that understands the F<.exe> +semantics, it can be found at: ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/ @@ -474,8 +488,6 @@ although this is appropriate on Win9x since there is no security model. File locking using the C<F_GETLK> command to fcntl() is a stub that returns C<ENOSYS>. -Win32 can not unlink() an open file (but this is emulated by Cygwin). - Win9x can not rename() an open file (although WinNT can). =back @@ -484,7 +496,10 @@ Win9x can not rename() an open file (although WinNT can). This will install Perl, including man pages. - make install 2>&1 | tee log.make-install + make install | tee log.make-install + +NOTE: If C<STDERR> is redirected `C<make install>' will B<not> prompt +you to install I<perl> into F</usr/bin>. You may need to be I<Administrator> to run `C<make install>'. If you are not, you must have write access to the directories in question. @@ -520,21 +535,25 @@ be kept as clean as possible. ext/ODBM_File/hints/cygwin.pl hints/cygwin.sh Porting/patchls - cygwin in port list - Makefile.SH - linklibperl, cygwin/Makefile.SHs + Makefile.SH - linklibperl makedepend.SH - uwinfix Configure - help finding hints from uname, shared libperl required for dynamic loading installman - man pages with :: translated to . - installperl - install dll, install to pods + installperl - install dll/ld2/perlld, install to pods =item Tests t/io/tell.t - binmode - t/op/magic.t - $^X WORKAROUND, s/.exe// - t/op/stat.t - no /dev, no -u (setuid) + 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 + (cache manager sometimes preserves ctime of file + previously created and deleted), no -u (setuid) =item Compiled Perl Source + cygwin/cygwin.c - os_extras (getcwd) doio.c - win9x can not rename a file when it is open EXTERN.h - __declspec(dllimport) XSUB.h - __declspec(dllexport) @@ -587,4 +606,4 @@ Teun Burgers E<lt>burgers@ecn.nlE<gt>. =head1 HISTORY -Last updated: 28 January 2000 +Last updated: 24 February 2000 |