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