"Fossies" - the Fresh Open Source Software Archive

Member "perl-5.32.1/README.cygwin" (18 Dec 2020, 27202 Bytes) of package /linux/misc/perl-5.32.1.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 If you read this file _as_is_, just ignore the funny characters you
    2 see. It is written in the POD format (see F<pod/perlpod.pod>) which is
    3 specially designed to be readable as is.
    4 
    5 =head1 NAME
    6 
    7 perlcygwin - Perl for Cygwin
    8 
    9 =head1 SYNOPSIS
   10 
   11 This document will help you configure, make, test and install Perl
   12 on Cygwin.  This document also describes features of Cygwin that will
   13 affect how Perl behaves at runtime.
   14 
   15 B<NOTE:> There are pre-built Perl packages available for Cygwin and a
   16 version of Perl is provided in the normal Cygwin install.  If you do
   17 not need to customize the configuration, consider using one of those
   18 packages.
   19 
   20 
   21 =head1 PREREQUISITES FOR COMPILING PERL ON CYGWIN
   22 
   23 =head2 Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
   24 
   25 The Cygwin tools are ports of the popular GNU development tools for Win32
   26 platforms.  They run thanks to the Cygwin library which provides the UNIX
   27 system calls and environment these programs expect.  More information
   28 about this project can be found at:
   29 
   30 L<https://www.cygwin.com/>
   31 
   32 A recent net or commercial release of Cygwin is required.
   33 
   34 At the time this document was last updated, Cygwin 1.7.16 was current.
   35 
   36 
   37 =head2 Cygwin Configuration
   38 
   39 While building Perl some changes may be necessary to your Cygwin setup so
   40 that Perl builds cleanly.  These changes are B<not> required for normal
   41 Perl usage.
   42 
   43 B<NOTE:> The binaries that are built will run on all Win32 versions.
   44 They do not depend on your host system (WinXP/Win2K/Win7) or your
   45 Cygwin configuration (binary/text mounts, cvgserver).
   46 The only dependencies come from hard-coded pathnames like F</usr/local>.
   47 However, your host system and Cygwin configuration will affect Perl's
   48 runtime behavior (see L</"TEST">).
   49 
   50 =over 4
   51 
   52 =item * C<PATH>
   53 
   54 Set the C<PATH> environment variable so that Configure finds the Cygwin
   55 versions of programs. Any not-needed Windows directories should be removed or
   56 moved to the end of your C<PATH>.
   57 
   58 =item * I<nroff>
   59 
   60 If you do not have I<nroff> (which is part of the I<groff> package),
   61 Configure will B<not> prompt you to install I<man> pages.
   62 
   63 =back
   64 
   65 =head1 CONFIGURE PERL ON CYGWIN
   66 
   67 The default options gathered by Configure with the assistance of
   68 F<hints/cygwin.sh> will build a Perl that supports dynamic loading
   69 (which requires a shared F<cygperl5_16.dll>).
   70 
   71 This will run Configure and keep a record:
   72 
   73   ./Configure 2>&1 | tee log.configure
   74 
   75 If you are willing to accept all the defaults run Configure with B<-de>.
   76 However, several useful customizations are available.
   77 
   78 =head2 Stripping Perl Binaries on Cygwin
   79 
   80 It is possible to strip the EXEs and DLLs created by the build process.
   81 The resulting binaries will be significantly smaller.  If you want the
   82 binaries to be stripped, you can either add a B<-s> option when Configure
   83 prompts you,
   84 
   85   Any additional ld flags (NOT including libraries)? [none] -s
   86   Any special flags to pass to g++ to create a dynamically loaded
   87   library?
   88   [none] -s
   89   Any special flags to pass to gcc to use dynamic linking? [none] -s
   90 
   91 or you can edit F<hints/cygwin.sh> and uncomment the relevant variables
   92 near the end of the file.
   93 
   94 =head2 Optional Libraries for Perl on Cygwin
   95 
   96 Several Perl functions and modules depend on the existence of
   97 some optional libraries.  Configure will find them if they are
   98 installed in one of the directories listed as being used for library
   99 searches.  Pre-built packages for most of these are available from
  100 the Cygwin installer.
  101 
  102 =over 4
  103 
  104 =item * C<-lcrypt>
  105 
  106 The crypt package distributed with Cygwin is a Linux compatible 56-bit
  107 DES crypt port by Corinna Vinschen.
  108 
  109 Alternatively, the crypt libraries in GNU libc have been ported to Cygwin.
  110 
  111 As of libcrypt 1.3 (March 2016), you will need to install the
  112 libcrypt-devel package for Configure to detect crypt().
  113 
  114 =item * C<-lgdbm_compat> (C<use GDBM_File>)
  115 
  116 GDBM is available for Cygwin.
  117 
  118 NOTE: The GDBM library only works on NTFS partitions.
  119 
  120 =item * C<-ldb> (C<use DB_File>)
  121 
  122 BerkeleyDB is available for Cygwin.
  123 
  124 NOTE: The BerkeleyDB library only completely works on NTFS partitions.
  125 
  126 =item * C<cygserver> (C<use IPC::SysV>)
  127 
  128 A port of SysV IPC is available for Cygwin.
  129 
  130 NOTE: This has B<not> been extensively tested.  In particular,
  131 C<d_semctl_semun> is undefined because it fails a Configure test
  132 and on Win9x the I<shm*()> functions seem to hang.  It also creates
  133 a compile time dependency because F<perl.h> includes F<<sys/ipc.h>>
  134 and F<<sys/sem.h>> (which will be required in the future when compiling
  135 CPAN modules). CURRENTLY NOT SUPPORTED!
  136 
  137 =item * C<-lutil>
  138 
  139 Included with the standard Cygwin netrelease is the inetutils package
  140 which includes libutil.a.
  141 
  142 =back
  143 
  144 =head2 Configure-time Options for Perl on Cygwin
  145 
  146 The F<INSTALL> document describes several Configure-time options.  Some of
  147 these will work with Cygwin, others are not yet possible.  Also, some of
  148 these are experimental.  You can either select an option when Configure
  149 prompts you or you can define (undefine) symbols on the command line.
  150 
  151 =over 4
  152 
  153 =item * C<-Uusedl>
  154 
  155 Undefining this symbol forces Perl to be compiled statically.
  156 
  157 =item * C<-Dusemymalloc>
  158 
  159 By default Perl does not use the C<malloc()> included with the Perl source,
  160 because it was slower and not entirely thread-safe.  If you want to force
  161 Perl to build with the old -Dusemymalloc define this.
  162 
  163 =item * C<-Uuseperlio>
  164 
  165 Undefining this symbol disables the PerlIO abstraction.  PerlIO is now the
  166 default; it is not recommended to disable PerlIO.
  167 
  168 =item * C<-Dusemultiplicity>
  169 
  170 Multiplicity is required when embedding Perl in a C program and using
  171 more than one interpreter instance.  This is only required when you build
  172 a not-threaded perl with C<-Uuseithreads>.
  173 
  174 =item * C<-Uuse64bitint>
  175 
  176 By default Perl uses 64 bit integers.  If you want to use smaller 32 bit
  177 integers, define this symbol.
  178 
  179 =item * C<-Duselongdouble>
  180 
  181 I<gcc> supports long doubles (12 bytes).  However, several additional
  182 long double math functions are necessary to use them within Perl
  183 (I<{atan2, cos, exp, floor, fmod, frexp, isnan, log, modf, pow, sin, sqrt}l,
  184 strtold>).
  185 These are B<not> yet available with newlib, the Cygwin libc.
  186 
  187 =item * C<-Uuseithreads>
  188 
  189 Define this symbol if you want not-threaded faster perl.
  190 
  191 =item * C<-Duselargefiles>
  192 
  193 Cygwin uses 64-bit integers for internal size and position calculations,
  194 this will be correctly detected and defined by Configure.
  195 
  196 =item * C<-Dmksymlinks>
  197 
  198 Use this to build perl outside of the source tree.  Details can be
  199 found in the F<INSTALL> document.  This is the recommended way to
  200 build perl from sources.
  201 
  202 =back
  203 
  204 =head2 Suspicious Warnings on Cygwin
  205 
  206 You may see some messages during Configure that seem suspicious.
  207 
  208 =over 4
  209 
  210 =item * Win9x and C<d_eofnblk>
  211 
  212 Win9x does not correctly report C<EOF> with a non-blocking read on a
  213 closed pipe.  You will see the following messages:
  214 
  215  But it also returns -1 to signal EOF, so be careful!
  216  WARNING: you can't distinguish between EOF and no data!
  217 
  218  *** WHOA THERE!!! ***
  219      The recommended value for $d_eofnblk on this machine was
  220      "define"!
  221      Keep the recommended value? [y]
  222 
  223 At least for consistency with WinNT, you should keep the recommended
  224 value.
  225 
  226 =item * Compiler/Preprocessor defines
  227 
  228 The following error occurs because of the Cygwin C<#define> of
  229 C<_LONG_DOUBLE>:
  230 
  231   Guessing which symbols your C compiler and preprocessor define...
  232   try.c:<line#>: missing binary operator
  233 
  234 This failure does not seem to cause any problems.  With older gcc
  235 versions, "parse error" is reported instead of "missing binary
  236 operator".
  237 
  238 =back
  239 
  240 =head1 MAKE ON CYGWIN
  241 
  242 Simply run I<make> and wait:
  243 
  244   make 2>&1 | tee log.make
  245 
  246 =head1 TEST ON CYGWIN
  247 
  248 There are two steps to running the test suite:
  249 
  250   make test 2>&1 | tee log.make-test
  251 
  252   cd t; ./perl harness 2>&1 | tee ../log.harness
  253 
  254 The same tests are run both times, but more information is provided when
  255 running as C<./perl harness>.
  256 
  257 Test results vary depending on your host system and your Cygwin
  258 configuration.  If a test can pass in some Cygwin setup, it is always
  259 attempted and explainable test failures are documented.  It is possible
  260 for Perl to pass all the tests, but it is more likely that some tests
  261 will fail for one of the reasons listed below.
  262 
  263 =head2 File Permissions on Cygwin
  264 
  265 UNIX file permissions are based on sets of mode bits for
  266 {read,write,execute} for each {user,group,other}.  By default Cygwin
  267 only tracks the Win32 read-only attribute represented as the UNIX file
  268 user write bit (files are always readable, files are executable if they
  269 have a F<.{com,bat,exe}> extension or begin with C<#!>, directories are
  270 always readable and executable).  On WinNT with the I<ntea> C<CYGWIN>
  271 setting, the additional mode bits are stored as extended file attributes.
  272 On WinNT with the default I<ntsec> C<CYGWIN> setting, permissions use the
  273 standard WinNT security descriptors and access control lists. Without one of
  274 these options, these tests will fail (listing not updated yet):
  275 
  276   Failed Test           List of failed
  277   ------------------------------------
  278   io/fs.t               5, 7, 9-10
  279   lib/anydbm.t          2
  280   lib/db-btree.t        20
  281   lib/db-hash.t         16
  282   lib/db-recno.t        18
  283   lib/gdbm.t            2
  284   lib/ndbm.t            2
  285   lib/odbm.t            2
  286   lib/sdbm.t            2
  287   op/stat.t             9, 20 (.tmp not an executable extension)
  288 
  289 =head2 NDBM_File and ODBM_File do not work on FAT filesystems
  290 
  291 Do not use NDBM_File or ODBM_File on FAT filesystem.  They can be
  292 built on a FAT filesystem, but many tests will fail:
  293 
  294  ../ext/NDBM_File/ndbm.t       13  3328    71   59  83.10%  1-2 4 16-71
  295  ../ext/ODBM_File/odbm.t      255 65280    ??   ??       %  ??
  296  ../lib/AnyDBM_File.t           2   512    12    2  16.67%  1 4
  297  ../lib/Memoize/t/errors.t      0   139    11    5  45.45%  7-11
  298  ../lib/Memoize/t/tie_ndbm.t   13  3328     4    4 100.00%  1-4
  299  run/fresh_perl.t                          97    1   1.03%  91
  300 
  301 If you intend to run only on FAT (or if using AnyDBM_File on FAT),
  302 run Configure with the -Ui_ndbm and -Ui_dbm options to prevent
  303 NDBM_File and ODBM_File being built.
  304 
  305 With NTFS (and no CYGWIN=nontsec), there should be no problems even if
  306 perl was built on FAT.
  307 
  308 =head2 C<fork()> failures in io_* tests
  309 
  310 A C<fork()> failure may result in the following tests failing:
  311 
  312   ext/IO/lib/IO/t/io_multihomed.t
  313   ext/IO/lib/IO/t/io_sock.t
  314   ext/IO/lib/IO/t/io_unix.t
  315 
  316 See comment on fork in L</Miscellaneous> below.
  317 
  318 =head1 Specific features of the Cygwin port
  319 
  320 =head2 Script Portability on Cygwin
  321 
  322 Cygwin does an outstanding job of providing UNIX-like semantics on top of
  323 Win32 systems.  However, in addition to the items noted above, there are
  324 some differences that you should know about.  This is a very brief guide
  325 to portability, more information can be found in the Cygwin documentation.
  326 
  327 =over 4
  328 
  329 =item * Pathnames
  330 
  331 Cygwin pathnames are separated by forward (F</>) slashes, Universal
  332 Naming Codes (F<//UNC>) are also supported Since cygwin-1.7 non-POSIX
  333 pathnames are discouraged.  Names may contain all printable
  334 characters.
  335 
  336 File names are case insensitive, but case preserving.  A pathname that
  337 contains a backslash or drive letter is a Win32 pathname, and not
  338 subject to the translations applied to POSIX style pathnames, but
  339 cygwin will warn you, so better convert them to POSIX.
  340 
  341 For conversion we have C<Cygwin::win_to_posix_path()> and
  342 C<Cygwin::posix_to_win_path()>.
  343 
  344 Since cygwin-1.7 pathnames are UTF-8 encoded.
  345 
  346 =item * Text/Binary
  347 
  348 Since cygwin-1.7 textmounts are deprecated and strongly discouraged.
  349 
  350 When a file is opened it is in either text or binary mode.  In text mode
  351 a file is subject to CR/LF/Ctrl-Z translations.  With Cygwin, the default
  352 mode for an C<open()> is determined by the mode of the mount that underlies
  353 the file. See L</Cygwin::is_binmount>(). Perl provides a C<binmode()> function
  354 to set binary mode on files that otherwise would be treated as text.
  355 C<sysopen()> with the C<O_TEXT> flag sets text mode on files that otherwise
  356 would be treated as binary:
  357 
  358     sysopen(FOO, "bar", O_WRONLY|O_CREAT|O_TEXT)
  359 
  360 C<lseek()>, C<tell()> and C<sysseek()> only work with files opened in binary
  361 mode.
  362 
  363 The text/binary issue is covered at length in the Cygwin documentation.
  364 
  365 =item * PerlIO
  366 
  367 PerlIO overrides the default Cygwin Text/Binary behaviour.  A file will
  368 always be treated as binary, regardless of the mode of the mount it lives
  369 on, just like it is in UNIX.  So CR/LF translation needs to be requested in
  370 either the C<open()> call like this:
  371 
  372   open(FH, ">:crlf", "out.txt");
  373 
  374 which will do conversion from LF to CR/LF on the output, or in the
  375 environment settings (add this to your .bashrc):
  376 
  377   export PERLIO=crlf
  378 
  379 which will pull in the crlf PerlIO layer which does LF -> CRLF conversion
  380 on every output generated by perl.
  381 
  382 =item * F<.exe>
  383 
  384 The Cygwin C<stat()>, C<lstat()> and C<readlink()> functions make the F<.exe>
  385 extension transparent by looking for F<foo.exe> when you ask for F<foo>
  386 (unless a F<foo> also exists).  Cygwin does not require a F<.exe>
  387 extension, but I<gcc> adds it automatically when building a program.
  388 However, when accessing an executable as a normal file (e.g., I<cp>
  389 in a makefile) the F<.exe> is not transparent.  The I<install> program
  390 included with Cygwin automatically appends a F<.exe> when necessary.
  391 
  392 =item * Cygwin vs. Windows process ids
  393 
  394 Cygwin processes have their own pid, which is different from the
  395 underlying windows pid.  Most posix compliant Proc functions expect
  396 the cygwin pid, but several Win32::Process functions expect the
  397 winpid. E.g. C<$$> is the cygwin pid of F</usr/bin/perl>, which is not
  398 the winpid.  Use C<Cygwin::pid_to_winpid()> and C<Cygwin::winpid_to_pid()>
  399 to translate between them.
  400 
  401 =item * Cygwin vs. Windows errors
  402 
  403 Under Cygwin, $^E is the same as $!.  When using L<Win32 API Functions|Win32>,
  404 use C<Win32::GetLastError()> to get the last Windows error.
  405 
  406 =item * rebase errors on fork or system
  407 
  408 Using C<fork()> or C<system()> out to another perl after loading multiple dlls
  409 may result on a DLL baseaddress conflict. The internal cygwin error
  410 looks like like the following:
  411 
  412  0 [main] perl 8916 child_info_fork::abort: data segment start:
  413  parent (0xC1A000) != child(0xA6A000)
  414 
  415 or:
  416 
  417  183 [main] perl 3588 C:\cygwin\bin\perl.exe: *** fatal error -
  418  unable to remap C:\cygwin\bin\cygsvn_subr-1-0.dll to same address
  419  as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child
  420  3588 - died waiting for dll loading, errno11
  421 
  422 See L<https://cygwin.com/faq/faq-nochunks.html#faq.using.fixing-fork-failures>
  423 It helps if not too many DLLs are loaded in memory so the available address space is larger,
  424 e.g. stopping the MS Internet Explorer might help.
  425 
  426 Use the perlrebase or rebase utilities to resolve the conflicting dll addresses.
  427 The rebase package is included in the Cygwin setup. Use F<setup.exe>
  428 from L<https://cygwin.com/install.html> to install it.
  429 
  430 1. kill all perl processes and run C<perlrebase> or
  431 
  432 2. kill all cygwin processes and services, start dash from cmd.exe and run C<rebaseall>.
  433 
  434 =item * C<chown()>
  435 
  436 On WinNT C<chown()> can change a file's user and group IDs.  On Win9x C<chown()>
  437 is a no-op, although this is appropriate since there is no security model.
  438 
  439 =item * Miscellaneous
  440 
  441 File locking using the C<F_GETLK> command to C<fcntl()> is a stub that
  442 returns C<ENOSYS>.
  443 
  444 Win9x can not C<rename()> an open file (although WinNT can).
  445 
  446 The Cygwin C<chroot()> implementation has holes (it can not restrict file
  447 access by native Win32 programs).
  448 
  449 Inplace editing C<perl -i> of files doesn't work without doing a backup
  450 of the file being edited C<perl -i.bak> because of windowish restrictions,
  451 therefore Perl adds the suffix C<.bak> automatically if you use C<perl -i>
  452 without specifying a backup extension.
  453 
  454 =back
  455 
  456 =head2 Prebuilt methods:
  457 
  458 =over 4
  459 
  460 =item C<Cwd::cwd>
  461 
  462 Returns the current working directory.
  463 
  464 =item C<Cygwin::pid_to_winpid>
  465 
  466 Translates a cygwin pid to the corresponding Windows pid (which may or
  467 may not be the same).
  468 
  469 =item C<Cygwin::winpid_to_pid>
  470 
  471 Translates a Windows pid to the corresponding cygwin pid (if any).
  472 
  473 =item C<Cygwin::win_to_posix_path>
  474 
  475 Translates a Windows path to the corresponding cygwin path respecting
  476 the current mount points. With a second non-null argument returns an
  477 absolute path. Double-byte characters will not be translated.
  478 
  479 =item C<Cygwin::posix_to_win_path>
  480 
  481 Translates a cygwin path to the corresponding cygwin path respecting
  482 the current mount points. With a second non-null argument returns an
  483 absolute path. Double-byte characters will not be translated.
  484 
  485 =item C<Cygwin::mount_table()>
  486 
  487 Returns an array of [mnt_dir, mnt_fsname, mnt_type, mnt_opts].
  488 
  489   perl -e 'for $i (Cygwin::mount_table) {print join(" ",@$i),"\n";}'
  490   /bin c:\cygwin\bin system binmode,cygexec
  491   /usr/bin c:\cygwin\bin system binmode
  492   /usr/lib c:\cygwin\lib system binmode
  493   / c:\cygwin system binmode
  494   /cygdrive/c c: system binmode,noumount
  495   /cygdrive/d d: system binmode,noumount
  496   /cygdrive/e e: system binmode,noumount
  497 
  498 =item C<Cygwin::mount_flags>
  499 
  500 Returns the mount type and flags for a specified mount point.
  501 A comma-separated string of mntent->mnt_type (always
  502 "system" or "user"), then the mntent->mnt_opts, where
  503 the first is always "binmode" or "textmode".
  504 
  505   system|user,binmode|textmode,exec,cygexec,cygdrive,mixed,
  506   notexec,managed,nosuid,devfs,proc,noumount
  507 
  508 If the argument is "/cygdrive", then just the volume mount settings,
  509 and the cygdrive mount prefix are returned.
  510 
  511 User mounts override system mounts.
  512 
  513   $ perl -e 'print Cygwin::mount_flags "/usr/bin"'
  514   system,binmode,cygexec
  515   $ perl -e 'print Cygwin::mount_flags "/cygdrive"'
  516   binmode,cygdrive,/cygdrive
  517 
  518 =item C<Cygwin::is_binmount>
  519 
  520 Returns true if the given cygwin path is binary mounted, false if the
  521 path is mounted in textmode.
  522 
  523 =item C<Cygwin::sync_winenv>
  524 
  525 Cygwin does not initialize all original Win32 environment variables.
  526 See the bottom of this page L<https://cygwin.com/cygwin-ug-net/setup-env.html>
  527 for "Restricted Win32 environment".
  528 
  529 Certain Win32 programs called from cygwin programs might need some environment
  530 variable, such as e.g. ADODB needs %COMMONPROGRAMFILES%.
  531 Call Cygwin::sync_winenv() to copy all Win32 environment variables to your
  532 process and note that cygwin will warn on every encounter of non-POSIX paths.
  533 
  534 =back
  535 
  536 =head1 INSTALL PERL ON CYGWIN
  537 
  538 This will install Perl, including I<man> pages.
  539 
  540   make install 2>&1 | tee log.make-install
  541 
  542 NOTE: If C<STDERR> is redirected C<make install> will B<not> prompt
  543 you to install I<perl> into F</usr/bin>.
  544 
  545 You may need to be I<Administrator> to run C<make install>.  If you
  546 are not, you must have write access to the directories in question.
  547 
  548 Information on installing the Perl documentation in HTML format can be
  549 found in the F<INSTALL> document.
  550 
  551 =head1 MANIFEST ON CYGWIN
  552 
  553 These are the files in the Perl release that contain references to Cygwin.
  554 These very brief notes attempt to explain the reason for all conditional
  555 code.  Hopefully, keeping this up to date will allow the Cygwin port to
  556 be kept as clean as possible.
  557 
  558 =over 4
  559 
  560 =item Documentation
  561 
  562  INSTALL README.cygwin README.win32 MANIFEST
  563  pod/perl.pod pod/perlport.pod pod/perlfaq3.pod
  564  pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod
  565  pod/perl561delta.pod pod/perl570delta.pod pod/perl572delta.pod
  566  pod/perl573delta.pod pod/perl58delta.pod pod/perl581delta.pod
  567  pod/perl590delta.pod pod/perlhist.pod pod/perlmodlib.pod
  568  pod/perltoc.pod Porting/Glossary pod/perlgit.pod
  569  Porting/checkAUTHORS.pl
  570  dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes
  571  dist/Time-HiRes/Changes
  572  ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes
  573  ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes
  574  ext/Win32API-File/Changes
  575  lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes
  576  lib/ExtUtils/NOTES lib/ExtUtils/PATCHING lib/ExtUtils/README
  577  lib/Net/Ping/Changes lib/Test/Harness/Changes
  578  lib/Term/ANSIColor/ChangeLog lib/Term/ANSIColor/README
  579  README.symbian symbian/TODO
  580 
  581 =item Build, Configure, Make, Install
  582 
  583  cygwin/Makefile.SHs
  584  ext/IPC/SysV/hints/cygwin.pl
  585  ext/NDBM_File/hints/cygwin.pl
  586  ext/ODBM_File/hints/cygwin.pl
  587  hints/cygwin.sh
  588  Configure             - help finding hints from uname,
  589                          shared libperl required for dynamic loading
  590  Makefile.SH Cross/Makefile-cross-SH
  591                        - linklibperl
  592  Porting/patchls       - cygwin in port list
  593  installman            - man pages with :: translated to .
  594  installperl           - install dll, install to 'pods'
  595  makedepend.SH         - uwinfix
  596  regen_lib.pl          - file permissions
  597 
  598  NetWare/Makefile
  599  plan9/mkfile
  600  symbian/sanity.pl symbian/sisify.pl
  601  hints/uwin.sh
  602  vms/descrip_mms.template
  603  win32/Makefile win32/makefile.mk
  604 
  605 =item Tests
  606 
  607  t/io/fs.t             - no file mode checks if not ntsec
  608                          skip rename() check when not
  609                          check_case:relaxed
  610  t/io/tell.t           - binmode
  611  t/lib/cygwin.t        - builtin cygwin function tests
  612  t/op/groups.t         - basegroup has ID = 0
  613  t/op/magic.t          - $^X/symlink WORKAROUND, s/.exe//
  614  t/op/stat.t           - no /dev, skip Win32 ftCreationTime quirk
  615                          (cache manager sometimes preserves ctime of
  616                          file previously created and deleted), no -u
  617                          (setuid)
  618  t/op/taint.t          - can't use empty path under Cygwin Perl
  619  t/op/time.t           - no tzset()
  620 
  621 =item Compiled Perl Source
  622 
  623  EXTERN.h              - __declspec(dllimport)
  624  XSUB.h                - __declspec(dllexport)
  625  cygwin/cygwin.c       - os_extras (getcwd, spawn, and several
  626                          Cygwin:: functions)
  627  perl.c                - os_extras, -i.bak
  628  perl.h                - binmode
  629  doio.c                - win9x can not rename a file when it is open
  630  pp_sys.c              - do not define h_errno, init
  631                          _pwent_struct.pw_comment
  632  util.c                - use setenv
  633  util.h                - PERL_FILE_IS_ABSOLUTE macro
  634  pp.c                  - Comment about Posix vs IEEE math under
  635                          Cygwin
  636  perlio.c              - CR/LF mode
  637  perliol.c             - Comment about EXTCONST under Cygwin
  638 
  639 =item Compiled Module Source
  640 
  641  ext/Compress-Raw-Zlib/Makefile.PL
  642                        - Can't install via CPAN shell under Cygwin
  643  ext/Compress-Raw-Zlib/zlib-src/zutil.h
  644                        - Cygwin is Unix-like and has vsnprintf
  645  ext/Errno/Errno_pm.PL - Special handling for Win32 Perl under
  646                          Cygwin
  647  ext/POSIX/POSIX.xs    - tzname defined externally
  648  ext/SDBM_File/sdbm/pair.c
  649                        - EXTCONST needs to be redefined from
  650                          EXTERN.h
  651  ext/SDBM_File/sdbm/sdbm.c
  652                        - binary open
  653  ext/Sys/Syslog/Syslog.xs
  654                        - Cygwin has syslog.h
  655  ext/Sys/Syslog/win32/compile.pl
  656                        - Convert paths to Windows paths
  657  ext/Time-HiRes/HiRes.xs
  658                        - Various timers not available
  659  ext/Time-HiRes/Makefile.PL
  660                        - Find w32api/windows.h
  661  ext/Win32/Makefile.PL - Use various libraries under Cygwin
  662  ext/Win32/Win32.xs    - Child dir and child env under Cygwin
  663  ext/Win32API-File/File.xs
  664                        - _open_osfhandle not implemented under
  665                          Cygwin
  666  ext/Win32CORE/Win32CORE.c
  667                        - __declspec(dllexport)
  668 
  669 =item Perl Modules/Scripts
  670 
  671  ext/B/t/OptreeCheck.pm - Comment about stderr/stdout order under
  672                           Cygwin
  673  ext/Digest-SHA/bin/shasum
  674                        - Use binary mode under Cygwin
  675  ext/Sys/Syslog/win32/Win32.pm
  676                        - Convert paths to Windows paths
  677  ext/Time-HiRes/HiRes.pm
  678                        - Comment about various timers not available
  679  ext/Win32API-File/File.pm
  680                        - _open_osfhandle not implemented under
  681                          Cygwin
  682  ext/Win32CORE/Win32CORE.pm
  683                        - History of Win32CORE under Cygwin
  684  lib/Cwd.pm            - hook to internal Cwd::cwd
  685  lib/ExtUtils/CBuilder/Platform/cygwin.pm
  686                        - use gcc for ld, and link to libperl.dll.a
  687  lib/ExtUtils/CBuilder.pm
  688                        - Cygwin is Unix-like
  689  lib/ExtUtils/Install.pm - Install and rename issues under Cygwin
  690  lib/ExtUtils/MM.pm    - OS classifications
  691  lib/ExtUtils/MM_Any.pm - Example for Cygwin
  692  lib/ExtUtils/MakeMaker.pm
  693                        - require MM_Cygwin.pm
  694  lib/ExtUtils/MM_Cygwin.pm
  695                        - canonpath, cflags, manifypods, perl_archive
  696  lib/File/Fetch.pm     - Comment about quotes using a Cygwin example
  697  lib/File/Find.pm      - on remote drives stat() always sets
  698                          st_nlink to 1
  699  lib/File/Spec/Cygwin.pm - case_tolerant
  700  lib/File/Spec/Unix.pm - preserve //unc
  701  lib/File/Spec/Win32.pm - References a message on cygwin.com
  702  lib/File/Spec.pm      - Pulls in lib/File/Spec/Cygwin.pm
  703  lib/File/Temp.pm      - no directory sticky bit
  704  lib/Module/CoreList.pm - List of all module files and versions
  705  lib/Net/Domain.pm     - No domainname command under Cygwin
  706  lib/Net/Netrc.pm      - Bypass using stat() under Cygwin
  707  lib/Net/Ping.pm       - ECONREFUSED is EAGAIN under Cygwin
  708  lib/Pod/Find.pm       - Set 'pods' dir
  709  lib/Pod/Perldoc/ToMan.pm - '-c' switch for pod2man
  710  lib/Pod/Perldoc.pm    - Use 'less' pager, and use .exe extension
  711  lib/Term/ANSIColor.pm - Cygwin terminal info
  712  lib/perl5db.pl        - use stdin not /dev/tty
  713  utils/perlbug.PL      - Add CYGWIN environment variable to report
  714 
  715 =item Perl Module Tests
  716 
  717  dist/Cwd/t/cwd.t
  718  ext/Compress-Zlib/t/14gzopen.t
  719  ext/DB_File/t/db-btree.t
  720  ext/DB_File/t/db-hash.t
  721  ext/DB_File/t/db-recno.t
  722  ext/DynaLoader/t/DynaLoader.t
  723  ext/File-Glob/t/basic.t
  724  ext/GDBM_File/t/gdbm.t
  725  ext/POSIX/t/sysconf.t
  726  ext/POSIX/t/time.t
  727  ext/SDBM_File/t/sdbm.t
  728  ext/Sys/Syslog/t/syslog.t
  729  ext/Time-HiRes/t/HiRes.t
  730  ext/Win32/t/Unicode.t
  731  ext/Win32API-File/t/file.t
  732  ext/Win32CORE/t/win32core.t
  733  lib/AnyDBM_File.t
  734  lib/Archive/Extract/t/01_Archive-Extract.t
  735  lib/Archive/Tar/t/02_methods.t
  736  lib/ExtUtils/t/Embed.t
  737  lib/ExtUtils/t/eu_command.t
  738  lib/ExtUtils/t/MM_Cygwin.t
  739  lib/ExtUtils/t/MM_Unix.t
  740  lib/File/Compare.t
  741  lib/File/Copy.t
  742  lib/File/Find/t/find.t
  743  lib/File/Path.t
  744  lib/File/Spec/t/crossplatform.t
  745  lib/File/Spec/t/Spec.t
  746  lib/Net/hostent.t
  747  lib/Net/Ping/t/110_icmp_inst.t
  748  lib/Net/Ping/t/500_ping_icmp.t
  749  lib/Net/t/netrc.t
  750  lib/Pod/Simple/t/perlcyg.pod
  751  lib/Pod/Simple/t/perlcygo.txt
  752  lib/Pod/Simple/t/perlfaq.pod
  753  lib/Pod/Simple/t/perlfaqo.txt
  754  lib/User/grent.t
  755  lib/User/pwent.t
  756 
  757 =back
  758 
  759 =head1 BUGS ON CYGWIN
  760 
  761 Support for swapping real and effective user and group IDs is incomplete.
  762 On WinNT Cygwin provides C<setuid()>, C<seteuid()>, C<setgid()> and C<setegid()>.
  763 However, additional Cygwin calls for manipulating WinNT access tokens
  764 and security contexts are required.
  765 
  766 =head1 AUTHORS
  767 
  768 Charles Wilson <cwilson@ece.gatech.edu>,
  769 Eric Fifer <egf7@columbia.edu>,
  770 alexander smishlajev <als@turnhere.com>,
  771 Steven Morlock <newspost@morlock.net>,
  772 Sebastien Barre <Sebastien.Barre@utc.fr>,
  773 Teun Burgers <burgers@ecn.nl>,
  774 Gerrit P. Haase <gp@familiehaase.de>,
  775 Reini Urban <rurban@cpan.org>,
  776 Jan Dubois <jand@activestate.com>,
  777 Jerry D. Hedden <jdhedden@cpan.org>.
  778 
  779 =head1 HISTORY
  780 
  781 Last updated: 2012-02-08