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.
7 perlcygwin - Perl for Cygwin
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.
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
21 =head1 PREREQUISITES FOR COMPILING PERL ON CYGWIN
23 =head2 Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
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:
30 L<https://www.cygwin.com/>
32 A recent net or commercial release of Cygwin is required.
34 At the time this document was last updated, Cygwin 3.0.7 was current.
37 =head2 Cygwin Configuration
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
43 B<NOTE:> The binaries that are built will run on all Win32 versions.
44 They do not depend on your host system or your
45 Cygwin configuration (binary/text mounts, cygserver).
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">).
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>.
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.
65 =head1 CONFIGURE PERL ON CYGWIN
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>).
71 This will run Configure and keep a record:
73 ./Configure 2>&1 | tee log.configure
75 If you are willing to accept all the defaults run Configure with B<-de>.
76 However, several useful customizations are available.
78 =head2 Stripping Perl Binaries on Cygwin
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
85 Any additional ld flags (NOT including libraries)? [none] -s
86 Any special flags to pass to g++ to create a dynamically loaded
89 Any special flags to pass to gcc to use dynamic linking? [none] -s
91 or you can edit F<hints/cygwin.sh> and uncomment the relevant variables
92 near the end of the file.
94 =head2 Optional Libraries for Perl on Cygwin
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.
106 The crypt package distributed with Cygwin is a Linux compatible 56-bit
107 DES crypt port by Corinna Vinschen.
109 Alternatively, the crypt libraries in GNU libc have been ported to Cygwin.
111 As of libcrypt 1.3 (March 2016), you will need to install the
112 libcrypt-devel package for Configure to detect crypt().
114 =item * C<-lgdbm_compat> (C<use GDBM_File>)
116 GDBM is available for Cygwin.
118 NOTE: The GDBM library only works on NTFS partitions.
120 =item * C<-ldb> (C<use DB_File>)
122 BerkeleyDB is available for Cygwin.
124 NOTE: The BerkeleyDB library only completely works on NTFS partitions.
126 =item * C<cygserver> (C<use IPC::SysV>)
128 A port of SysV IPC is available for Cygwin.
130 NOTE: This has B<not> been extensively tested. In particular,
131 C<d_semctl_semun> is undefined because it fails a Configure test. It
132 also creates a compile time dependency because F<perl.h> includes
133 F<<sys/ipc.h>> and F<<sys/sem.h>> (which will be required in the
134 future when compiling CPAN modules). CURRENTLY NOT SUPPORTED!
138 Included with the standard Cygwin netrelease is the inetutils package
139 which includes libutil.a.
143 =head2 Configure-time Options for Perl on Cygwin
145 The F<INSTALL> document describes several Configure-time options. Some of
146 these will work with Cygwin, others are not yet possible. Also, some of
147 these are experimental. You can either select an option when Configure
148 prompts you or you can define (undefine) symbols on the command line.
154 Undefining this symbol forces Perl to be compiled statically.
156 =item * C<-Dusemymalloc>
158 By default Perl does not use the C<malloc()> included with the Perl source,
159 because it was slower and not entirely thread-safe. If you want to force
160 Perl to build with the old -Dusemymalloc define this.
162 =item * C<-Uuseperlio>
164 Undefining this symbol disables the PerlIO abstraction. PerlIO is now the
165 default; it is not recommended to disable PerlIO.
167 =item * C<-Dusemultiplicity>
169 Multiplicity is required when embedding Perl in a C program and using
170 more than one interpreter instance. This is only required when you build
171 a not-threaded perl with C<-Uuseithreads>.
173 =item * C<-Uuse64bitint>
175 By default Perl uses 64 bit integers. If you want to use smaller 32 bit
176 integers, define this symbol.
178 =item * C<-Duselongdouble>
180 I<gcc> supports long doubles (12 bytes). However, several additional
181 long double math functions are necessary to use them within Perl
182 (I<{atan2, cos, exp, floor, fmod, frexp, isnan, log, modf, pow, sin, sqrt}l,
184 These are B<not> yet available with newlib, the Cygwin libc.
186 =item * C<-Uuseithreads>
188 Define this symbol if you want not-threaded faster perl.
190 =item * C<-Duselargefiles>
192 Cygwin uses 64-bit integers for internal size and position calculations,
193 this will be correctly detected and defined by Configure.
195 =item * C<-Dmksymlinks>
197 Use this to build perl outside of the source tree. Details can be
198 found in the F<INSTALL> document. This is the recommended way to
199 build perl from sources.
203 =head1 MAKE ON CYGWIN
205 Simply run I<make> and wait:
207 make 2>&1 | tee log.make
209 =head1 TEST ON CYGWIN
211 There are two steps to running the test suite:
213 make test 2>&1 | tee log.make-test
215 cd t; ./perl harness 2>&1 | tee ../log.harness
217 The same tests are run both times, but more information is provided when
218 running as C<./perl harness>.
220 Test results vary depending on your host system and your Cygwin
221 configuration. If a test can pass in some Cygwin setup, it is always
222 attempted and explainable test failures are documented. It is possible
223 for Perl to pass all the tests, but it is more likely that some tests
224 will fail for one of the reasons listed below.
226 =head2 File Permissions on Cygwin
228 UNIX file permissions are based on sets of mode bits for
229 {read,write,execute} for each {user,group,other}. By default Cygwin
230 only tracks the Win32 read-only attribute represented as the UNIX file
231 user write bit (files are always readable, files are executable if they
232 have a F<.{com,bat,exe}> extension or begin with C<#!>, directories are
233 always readable and executable). On WinNT with the I<ntea> C<CYGWIN>
234 setting, the additional mode bits are stored as extended file attributes.
235 On WinNT with the default I<ntsec> C<CYGWIN> setting, permissions use the
236 standard WinNT security descriptors and access control lists. Without one of
237 these options, these tests will fail (listing not updated yet):
239 Failed Test List of failed
240 ------------------------------------
250 op/stat.t 9, 20 (.tmp not an executable extension)
252 =head2 NDBM_File and ODBM_File do not work on FAT filesystems
254 Do not use NDBM_File or ODBM_File on FAT filesystem. They can be
255 built on a FAT filesystem, but many tests will fail:
257 ../ext/NDBM_File/ndbm.t 13 3328 71 59 83.10% 1-2 4 16-71
258 ../ext/ODBM_File/odbm.t 255 65280 ?? ?? % ??
259 ../lib/AnyDBM_File.t 2 512 12 2 16.67% 1 4
260 ../lib/Memoize/t/errors.t 0 139 11 5 45.45% 7-11
261 ../lib/Memoize/t/tie_ndbm.t 13 3328 4 4 100.00% 1-4
262 run/fresh_perl.t 97 1 1.03% 91
264 If you intend to run only on FAT (or if using AnyDBM_File on FAT),
265 run Configure with the -Ui_ndbm and -Ui_dbm options to prevent
266 NDBM_File and ODBM_File being built.
268 With NTFS (and no CYGWIN=nontsec), there should be no problems even if
269 perl was built on FAT.
271 =head2 C<fork()> failures in io_* tests
273 A C<fork()> failure may result in the following tests failing:
275 ext/IO/lib/IO/t/io_multihomed.t
276 ext/IO/lib/IO/t/io_sock.t
277 ext/IO/lib/IO/t/io_unix.t
279 See comment on fork in L</Miscellaneous> below.
281 =head1 Specific features of the Cygwin port
283 =head2 Script Portability on Cygwin
285 Cygwin does an outstanding job of providing UNIX-like semantics on top of
286 Win32 systems. However, in addition to the items noted above, there are
287 some differences that you should know about. This is a very brief guide
288 to portability, more information can be found in the Cygwin documentation.
294 Cygwin pathnames are separated by forward (F</>) slashes, Universal
295 Naming Codes (F<//UNC>) are also supported. Since cygwin-1.7 non-POSIX
296 pathnames should not be used. Names may contain all printable
299 File names are case insensitive, but case preserving. A pathname that
300 contains a backslash or drive letter is a Win32 pathname, and not
301 subject to the translations applied to POSIX style pathnames, but
302 cygwin will warn you, so better convert them to POSIX.
304 For conversion we have C<Cygwin::win_to_posix_path()> and
305 C<Cygwin::posix_to_win_path()>.
307 Since cygwin-1.7 pathnames are UTF-8 encoded.
311 Since cygwin-1.7 textmounts are deprecated and strongly discouraged.
313 When a file is opened it is in either text or binary mode. In text mode
314 a file is subject to CR/LF/Ctrl-Z translations. With Cygwin, the default
315 mode for an C<open()> is determined by the mode of the mount that underlies
316 the file. See L</Cygwin::is_binmount>(). Perl provides a C<binmode()> function
317 to set binary mode on files that otherwise would be treated as text.
318 C<sysopen()> with the C<O_TEXT> flag sets text mode on files that otherwise
319 would be treated as binary:
321 sysopen(FOO, "bar", O_WRONLY|O_CREAT|O_TEXT)
323 C<lseek()>, C<tell()> and C<sysseek()> only work with files opened in binary
326 The text/binary issue is covered at length in the Cygwin documentation.
330 PerlIO overrides the default Cygwin Text/Binary behaviour. A file will
331 always be treated as binary, regardless of the mode of the mount it lives
332 on, just like it is in UNIX. So CR/LF translation needs to be requested in
333 either the C<open()> call like this:
335 open(FH, ">:crlf", "out.txt");
337 which will do conversion from LF to CR/LF on the output, or in the
338 environment settings (add this to your .bashrc):
342 which will pull in the crlf PerlIO layer which does LF -> CRLF conversion
343 on every output generated by perl.
347 The Cygwin C<stat()>, C<lstat()> and C<readlink()> functions make the F<.exe>
348 extension transparent by looking for F<foo.exe> when you ask for F<foo>
349 (unless a F<foo> also exists). Cygwin does not require a F<.exe>
350 extension, but I<gcc> adds it automatically when building a program.
351 However, when accessing an executable as a normal file (e.g., I<cp>
352 in a makefile) the F<.exe> is not transparent. The I<install> program
353 included with Cygwin automatically appends a F<.exe> when necessary.
355 =item * Cygwin vs. Windows process ids
357 Cygwin processes have their own pid, which is different from the
358 underlying windows pid. Most posix compliant Proc functions expect
359 the cygwin pid, but several Win32::Process functions expect the
360 winpid. E.g. C<$$> is the cygwin pid of F</usr/bin/perl>, which is not
361 the winpid. Use C<Cygwin::pid_to_winpid()> and C<Cygwin::winpid_to_pid()>
362 to translate between them.
364 =item * Cygwin vs. Windows errors
366 Under Cygwin, $^E is the same as $!. When using L<Win32 API Functions|Win32>,
367 use C<Win32::GetLastError()> to get the last Windows error.
369 =item * rebase errors on fork or system
371 Using C<fork()> or C<system()> out to another perl after loading multiple dlls
372 may result on a DLL baseaddress conflict. The internal cygwin error
373 looks like like the following:
375 0 [main] perl 8916 child_info_fork::abort: data segment start:
376 parent (0xC1A000) != child(0xA6A000)
380 183 [main] perl 3588 C:\cygwin\bin\perl.exe: *** fatal error -
381 unable to remap C:\cygwin\bin\cygsvn_subr-1-0.dll to same address
382 as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child
383 3588 - died waiting for dll loading, errno11
385 See L<https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures>
386 It helps if not too many DLLs are loaded in memory so the available address space is larger,
387 e.g. stopping the MS Internet Explorer might help.
389 +Use the rebase utilities to resolve the conflicting dll addresses.
390 The rebase package is included in the Cygwin setup. Use F<setup.exe>
391 from L<https://cygwin.com/install.html> to install it.
393 1. kill all perl processes and run
394 C<</bin/find <dir> -xdev -name \*.dll | /bin/rebase -OT ->> or
396 2. kill all cygwin processes and services, and run setup.exe.
398 =item * Miscellaneous
400 File locking using the C<F_GETLK> command to C<fcntl()> is a stub that
403 The Cygwin C<chroot()> implementation has holes (it can not restrict file
404 access by native Win32 programs).
406 Inplace editing C<perl -i> of files doesn't work without doing a backup
407 of the file being edited C<perl -i.bak> because of windowish restrictions,
408 therefore Perl adds the suffix C<.bak> automatically if you use C<perl -i>
409 without specifying a backup extension.
413 =head2 Prebuilt methods:
419 Returns the current working directory.
421 =item C<Cygwin::pid_to_winpid>
423 Translates a cygwin pid to the corresponding Windows pid (which may or
424 may not be the same).
426 =item C<Cygwin::winpid_to_pid>
428 Translates a Windows pid to the corresponding cygwin pid (if any).
430 =item C<Cygwin::win_to_posix_path>
432 Translates a Windows path to the corresponding cygwin path respecting
433 the current mount points. With a second non-null argument returns an
434 absolute path. Double-byte characters will not be translated.
436 =item C<Cygwin::posix_to_win_path>
438 Translates a cygwin path to the corresponding cygwin path respecting
439 the current mount points. With a second non-null argument returns an
440 absolute path. Double-byte characters will not be translated.
442 =item C<Cygwin::mount_table()>
444 Returns an array of [mnt_dir, mnt_fsname, mnt_type, mnt_opts].
446 perl -e 'for $i (Cygwin::mount_table) {print join(" ",@$i),"\n";}'
447 /bin c:\cygwin\bin system binmode,cygexec
448 /usr/bin c:\cygwin\bin system binmode
449 /usr/lib c:\cygwin\lib system binmode
450 / c:\cygwin system binmode
451 /cygdrive/c c: system binmode,noumount
452 /cygdrive/d d: system binmode,noumount
453 /cygdrive/e e: system binmode,noumount
455 =item C<Cygwin::mount_flags>
457 Returns the mount type and flags for a specified mount point.
458 A comma-separated string of mntent->mnt_type (always
459 "system" or "user"), then the mntent->mnt_opts, where
460 the first is always "binmode" or "textmode".
462 system|user,binmode|textmode,exec,cygexec,cygdrive,mixed,
463 notexec,managed,nosuid,devfs,proc,noumount
465 If the argument is "/cygdrive", then just the volume mount settings,
466 and the cygdrive mount prefix are returned.
468 User mounts override system mounts.
470 $ perl -e 'print Cygwin::mount_flags "/usr/bin"'
471 system,binmode,cygexec
472 $ perl -e 'print Cygwin::mount_flags "/cygdrive"'
473 binmode,cygdrive,/cygdrive
475 =item C<Cygwin::is_binmount>
477 Returns true if the given cygwin path is binary mounted, false if the
478 path is mounted in textmode.
480 =item C<Cygwin::sync_winenv>
482 Cygwin does not initialize all original Win32 environment variables.
483 See the bottom of this page L<https://cygwin.com/cygwin-ug-net/setup-env.html>
484 for "Restricted Win32 environment".
486 Certain Win32 programs called from cygwin programs might need some environment
487 variable, such as e.g. ADODB needs %COMMONPROGRAMFILES%.
488 Call Cygwin::sync_winenv() to copy all Win32 environment variables to your
489 process and note that cygwin will warn on every encounter of non-POSIX paths.
493 =head1 INSTALL PERL ON CYGWIN
495 This will install Perl, including I<man> pages.
497 make install 2>&1 | tee log.make-install
499 NOTE: If C<STDERR> is redirected C<make install> will B<not> prompt
500 you to install I<perl> into F</usr/bin>.
502 You may need to be I<Administrator> to run C<make install>. If you
503 are not, you must have write access to the directories in question.
505 Information on installing the Perl documentation in HTML format can be
506 found in the F<INSTALL> document.
508 =head1 MANIFEST ON CYGWIN
510 These are the files in the Perl release that contain references to Cygwin.
511 These very brief notes attempt to explain the reason for all conditional
512 code. Hopefully, keeping this up to date will allow the Cygwin port to
513 be kept as clean as possible.
519 INSTALL README.cygwin README.win32 MANIFEST
520 pod/perl.pod pod/perlport.pod pod/perlfaq3.pod
521 pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod
522 pod/perl561delta.pod pod/perl570delta.pod pod/perl572delta.pod
523 pod/perl573delta.pod pod/perl58delta.pod pod/perl581delta.pod
524 pod/perl590delta.pod pod/perlhist.pod pod/perlmodlib.pod
525 pod/perltoc.pod Porting/Glossary pod/perlgit.pod
526 Porting/updateAUTHORS.pl
527 dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes
528 dist/Time-HiRes/Changes
529 ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes
530 ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes
531 ext/Win32API-File/Changes
532 lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes
533 lib/ExtUtils/NOTES lib/ExtUtils/PATCHING lib/ExtUtils/README
534 lib/Net/Ping/Changes lib/Test/Harness/Changes
535 lib/Term/ANSIColor/ChangeLog lib/Term/ANSIColor/README
537 =item Build, Configure, Make, Install
540 ext/IPC/SysV/hints/cygwin.pl
541 ext/NDBM_File/hints/cygwin.pl
542 ext/ODBM_File/hints/cygwin.pl
544 Configure - help finding hints from uname,
545 shared libperl required for dynamic loading
546 Makefile.SH Cross/Makefile-cross-SH
548 Porting/patchls - cygwin in port list
549 installman - man pages with :: translated to .
550 installperl - install dll, install to 'pods'
551 makedepend.SH - uwinfix
552 regen_lib.pl - file permissions
555 vms/descrip_mms.template
560 t/io/fs.t - no file mode checks if not ntsec
561 skip rename() check when not
563 t/io/tell.t - binmode
564 t/lib/cygwin.t - builtin cygwin function tests
565 t/op/groups.t - basegroup has ID = 0
566 t/op/magic.t - $^X/symlink WORKAROUND, s/.exe//
567 t/op/stat.t - no /dev, skip Win32 ftCreationTime quirk
568 (cache manager sometimes preserves ctime of
569 file previously created and deleted), no -u
571 t/op/taint.t - can't use empty path under Cygwin Perl
572 t/op/time.t - no tzset()
574 =item Compiled Perl Source
576 EXTERN.h - __declspec(dllimport)
577 XSUB.h - __declspec(dllexport)
578 cygwin/cygwin.c - os_extras (getcwd, spawn, and several
580 perl.c - os_extras, -i.bak
582 doio.c - win9x can not rename a file when it is open
583 pp_sys.c - do not define h_errno, init
584 _pwent_struct.pw_comment
586 util.h - PERL_FILE_IS_ABSOLUTE macro
587 pp.c - Comment about Posix vs IEEE math under
589 perlio.c - CR/LF mode
590 perliol.c - Comment about EXTCONST under Cygwin
592 =item Compiled Module Source
594 ext/Compress-Raw-Zlib/Makefile.PL
595 - Can't install via CPAN shell under Cygwin
596 ext/Compress-Raw-Zlib/zlib-src/zutil.h
597 - Cygwin is Unix-like and has vsnprintf
598 ext/Errno/Errno_pm.PL - Special handling for Win32 Perl under
600 ext/POSIX/POSIX.xs - tzname defined externally
601 ext/SDBM_File/sdbm/pair.c
602 - EXTCONST needs to be redefined from
604 ext/SDBM_File/sdbm/sdbm.c
606 ext/Sys/Syslog/Syslog.xs
607 - Cygwin has syslog.h
608 ext/Sys/Syslog/win32/compile.pl
609 - Convert paths to Windows paths
610 ext/Time-HiRes/HiRes.xs
611 - Various timers not available
612 ext/Time-HiRes/Makefile.PL
613 - Find w32api/windows.h
614 ext/Win32/Makefile.PL - Use various libraries under Cygwin
615 ext/Win32/Win32.xs - Child dir and child env under Cygwin
616 ext/Win32API-File/File.xs
617 - _open_osfhandle not implemented under
619 ext/Win32CORE/Win32CORE.c
620 - __declspec(dllexport)
622 =item Perl Modules/Scripts
624 ext/B/t/OptreeCheck.pm - Comment about stderr/stdout order under
626 ext/Digest-SHA/bin/shasum
627 - Use binary mode under Cygwin
628 ext/Sys/Syslog/win32/Win32.pm
629 - Convert paths to Windows paths
630 ext/Time-HiRes/HiRes.pm
631 - Comment about various timers not available
632 ext/Win32API-File/File.pm
633 - _open_osfhandle not implemented under
635 ext/Win32CORE/Win32CORE.pm
636 - History of Win32CORE under Cygwin
637 lib/Cwd.pm - hook to internal Cwd::cwd
638 lib/ExtUtils/CBuilder/Platform/cygwin.pm
639 - use gcc for ld, and link to libperl.dll.a
640 lib/ExtUtils/CBuilder.pm
641 - Cygwin is Unix-like
642 lib/ExtUtils/Install.pm - Install and rename issues under Cygwin
643 lib/ExtUtils/MM.pm - OS classifications
644 lib/ExtUtils/MM_Any.pm - Example for Cygwin
645 lib/ExtUtils/MakeMaker.pm
646 - require MM_Cygwin.pm
647 lib/ExtUtils/MM_Cygwin.pm
648 - canonpath, cflags, manifypods, perl_archive
649 lib/File/Fetch.pm - Comment about quotes using a Cygwin example
650 lib/File/Find.pm - on remote drives stat() always sets
652 lib/File/Spec/Cygwin.pm - case_tolerant
653 lib/File/Spec/Unix.pm - preserve //unc
654 lib/File/Spec/Win32.pm - References a message on cygwin.com
655 lib/File/Spec.pm - Pulls in lib/File/Spec/Cygwin.pm
656 lib/File/Temp.pm - no directory sticky bit
657 lib/Module/CoreList.pm - List of all module files and versions
658 lib/Net/Domain.pm - No domainname command under Cygwin
659 lib/Net/Netrc.pm - Bypass using stat() under Cygwin
660 lib/Net/Ping.pm - ECONREFUSED is EAGAIN under Cygwin
661 lib/Pod/Find.pm - Set 'pods' dir
662 lib/Pod/Perldoc/ToMan.pm - '-c' switch for pod2man
663 lib/Pod/Perldoc.pm - Use 'less' pager, and use .exe extension
664 lib/Term/ANSIColor.pm - Cygwin terminal info
665 lib/perl5db.pl - use stdin not /dev/tty
666 utils/perlbug.PL - Add CYGWIN environment variable to report
668 =item Perl Module Tests
671 ext/Compress-Zlib/t/14gzopen.t
672 ext/DB_File/t/db-btree.t
673 ext/DB_File/t/db-hash.t
674 ext/DB_File/t/db-recno.t
675 ext/DynaLoader/t/DynaLoader.t
676 ext/File-Glob/t/basic.t
677 ext/GDBM_File/t/gdbm.t
678 ext/POSIX/t/sysconf.t
680 ext/SDBM_File/t/sdbm.t
681 ext/Sys/Syslog/t/syslog.t
682 ext/Time-HiRes/t/HiRes.t
683 ext/Win32/t/Unicode.t
684 ext/Win32API-File/t/file.t
685 ext/Win32CORE/t/win32core.t
687 lib/Archive/Extract/t/01_Archive-Extract.t
688 lib/Archive/Tar/t/02_methods.t
689 lib/ExtUtils/t/Embed.t
690 lib/ExtUtils/t/eu_command.t
691 lib/ExtUtils/t/MM_Cygwin.t
692 lib/ExtUtils/t/MM_Unix.t
695 lib/File/Find/t/find.t
697 lib/File/Spec/t/crossplatform.t
698 lib/File/Spec/t/Spec.t
700 lib/Net/Ping/t/110_icmp_inst.t
701 lib/Net/Ping/t/500_ping_icmp.t
703 lib/Pod/Simple/t/perlcyg.pod
704 lib/Pod/Simple/t/perlcygo.txt
705 lib/Pod/Simple/t/perlfaq.pod
706 lib/Pod/Simple/t/perlfaqo.txt
712 =head1 BUGS ON CYGWIN
714 Support for swapping real and effective user and group IDs is incomplete.
715 On WinNT Cygwin provides C<setuid()>, C<seteuid()>, C<setgid()> and C<setegid()>.
716 However, additional Cygwin calls for manipulating WinNT access tokens
717 and security contexts are required.
721 Charles Wilson <cwilson@ece.gatech.edu>,
722 Eric Fifer <egf7@columbia.edu>,
723 alexander smishlajev <als@turnhere.com>,
724 Steven Morlock <newspost@morlock.net>,
725 Sebastien Barre <Sebastien.Barre@utc.fr>,
726 Teun Burgers <burgers@ecn.nl>,
727 Gerrit P. Haase <gp@familiehaase.de>,
728 Reini Urban <rurban@cpan.org>,
729 Jan Dubois <jand@activestate.com>,
730 Jerry D. Hedden <jdhedden@cpan.org>.
734 Last updated: 2019-11-14