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