Lines Matching full:cygwin
9 perlcygwin - Perl for Cygwin
14 on Cygwin. This document also describes features of Cygwin that will
17 B<NOTE:> There are pre-built Perl packages available for Cygwin and a
18 version of Perl is provided in the normal Cygwin install. If you do
23 =head1 PREREQUISITES FOR COMPILING PERL ON CYGWIN
25 =head2 Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
27 The Cygwin tools are ports of the popular GNU development tools for Win32
28 platforms. They run thanks to the Cygwin library which provides the UNIX
32 L<https://www.cygwin.com/>
34 A recent net or commercial release of Cygwin is required.
36 At the time this document was last updated, Cygwin 3.0.7 was current.
39 =head2 Cygwin Configuration
41 While building Perl some changes may be necessary to your Cygwin setup so
47 Cygwin configuration (binary/text mounts, cygserver).
49 However, your host system and Cygwin configuration will affect Perl's
56 Set the C<PATH> environment variable so that Configure finds the Cygwin
67 =head1 CONFIGURE PERL ON CYGWIN
70 F<hints/cygwin.sh> will build a Perl that supports dynamic loading
80 =head2 Stripping Perl Binaries on Cygwin
93 or you can edit F<hints/cygwin.sh> and uncomment the relevant variables
96 =head2 Optional Libraries for Perl on Cygwin
102 the Cygwin installer.
108 The crypt package distributed with Cygwin is a Linux compatible 56-bit
111 Alternatively, the crypt libraries in GNU libc have been ported to Cygwin.
118 GDBM is available for Cygwin.
124 BerkeleyDB is available for Cygwin.
130 A port of SysV IPC is available for Cygwin.
140 Included with the standard Cygwin netrelease is the inetutils package
145 =head2 Configure-time Options for Perl on Cygwin
148 these will work with Cygwin, others are not yet possible. Also, some of
186 These are B<not> yet available with newlib, the Cygwin libc.
194 Cygwin uses 64-bit integers for internal size and position calculations,
205 =head1 MAKE ON CYGWIN
214 =head1 TEST ON CYGWIN
230 Test results vary depending on your host system and your Cygwin
231 configuration. If a test can pass in some Cygwin setup, it is always
236 =head2 File Permissions on Cygwin
239 {read,write,execute} for each {user,group,other}. By default Cygwin
243 always readable and executable). On WinNT with the I<ntea> C<CYGWIN>
245 On WinNT with the default I<ntsec> C<CYGWIN> setting, permissions use the
278 With NTFS (and no CYGWIN=nontsec), there should be no problems even if
291 =head1 Specific features of the Cygwin port
293 =head2 Script Portability on Cygwin
295 Cygwin does an outstanding job of providing UNIX-like semantics on top of
298 to portability, more information can be found in the Cygwin documentation.
304 Cygwin pathnames are separated by forward (F</>) slashes, Universal
305 Naming Codes (F<//UNC>) are also supported. Since cygwin-1.7 non-POSIX
312 cygwin will warn you, so better convert them to POSIX.
314 For conversion we have C<Cygwin::win_to_posix_path()> and
315 C<Cygwin::posix_to_win_path()>.
317 Since cygwin-1.7 pathnames are UTF-8 encoded.
321 Since cygwin-1.7 textmounts are deprecated and strongly discouraged.
324 a file is subject to CR/LF/Ctrl-Z translations. With Cygwin, the default
326 the file. See L</Cygwin::is_binmount>(). Perl provides a C<binmode()> function
336 The text/binary issue is covered at length in the Cygwin documentation.
340 PerlIO overrides the default Cygwin Text/Binary behaviour. A file will
357 The Cygwin C<stat()>, C<lstat()> and C<readlink()> functions make the F<.exe>
359 (unless a F<foo> also exists). Cygwin does not require a F<.exe>
363 included with Cygwin automatically appends a F<.exe> when necessary.
365 =item * Cygwin vs. Windows process ids
367 Cygwin processes have their own pid, which is different from the
369 the cygwin pid, but several Win32::Process functions expect the
370 winpid. E.g. C<$$> is the cygwin pid of F</usr/bin/perl>, which is not
371 the winpid. Use C<Cygwin::pid_to_winpid()> and C<Cygwin::winpid_to_pid()>
374 =item * Cygwin vs. Windows errors
376 Under Cygwin, $^E is the same as $!. When using L<Win32 API Functions|Win32>,
382 may result on a DLL baseaddress conflict. The internal cygwin error
390 183 [main] perl 3588 C:\cygwin\bin\perl.exe: *** fatal error -
391 unable to remap C:\cygwin\bin\cygsvn_subr-1-0.dll to same address
395 See L<https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures>
400 The rebase package is included in the Cygwin setup. Use F<setup.exe>
401 from L<https://cygwin.com/install.html> to install it.
406 2. kill all cygwin processes and services, and run setup.exe.
413 The Cygwin C<chroot()> implementation has holes (it can not restrict file
431 =item C<Cygwin::pid_to_winpid>
433 Translates a cygwin pid to the corresponding Windows pid (which may or
436 =item C<Cygwin::winpid_to_pid>
438 Translates a Windows pid to the corresponding cygwin pid (if any).
440 =item C<Cygwin::win_to_posix_path>
442 Translates a Windows path to the corresponding cygwin path respecting
446 =item C<Cygwin::posix_to_win_path>
448 Translates a cygwin path to the corresponding cygwin path respecting
452 =item C<Cygwin::mount_table()>
456 perl -e 'for $i (Cygwin::mount_table) {print join(" ",@$i),"\n";}'
457 /bin c:\cygwin\bin system binmode,cygexec
458 /usr/bin c:\cygwin\bin system binmode
459 /usr/lib c:\cygwin\lib system binmode
460 / c:\cygwin system binmode
465 =item C<Cygwin::mount_flags>
480 $ perl -e 'print Cygwin::mount_flags "/usr/bin"'
482 $ perl -e 'print Cygwin::mount_flags "/cygdrive"'
485 =item C<Cygwin::is_binmount>
487 Returns true if the given cygwin path is binary mounted, false if the
490 =item C<Cygwin::sync_winenv>
492 Cygwin does not initialize all original Win32 environment variables.
493 See the bottom of this page L<https://cygwin.com/cygwin-ug-net/setup-env.html>
496 Certain Win32 programs called from cygwin programs might need some environment
498 Call Cygwin::sync_winenv() to copy all Win32 environment variables to your
499 process and note that cygwin will warn on every encounter of non-POSIX paths.
503 =head1 INSTALL PERL ON CYGWIN
518 =head1 MANIFEST ON CYGWIN
520 These are the files in the Perl release that contain references to Cygwin.
522 code. Hopefully, keeping this up to date will allow the Cygwin port to
529 INSTALL README.cygwin README.win32 MANIFEST
549 cygwin/Makefile.SHs
550 ext/IPC/SysV/hints/cygwin.pl
551 ext/NDBM_File/hints/cygwin.pl
552 ext/ODBM_File/hints/cygwin.pl
553 hints/cygwin.sh
558 Porting/patchls - cygwin in port list
574 t/lib/cygwin.t - builtin cygwin function tests
581 t/op/taint.t - can't use empty path under Cygwin Perl
588 cygwin/cygwin.c - os_extras (getcwd, spawn, and several
589 Cygwin:: functions)
598 Cygwin
600 perliol.c - Comment about EXTCONST under Cygwin
605 - Can't install via CPAN shell under Cygwin
607 - Cygwin is Unix-like and has vsnprintf
609 Cygwin
617 - Cygwin has syslog.h
624 ext/Win32/Makefile.PL - Use various libraries under Cygwin
625 ext/Win32/Win32.xs - Child dir and child env under Cygwin
628 Cygwin
635 Cygwin
637 - Use binary mode under Cygwin
644 Cygwin
646 - History of Win32CORE under Cygwin
648 lib/ExtUtils/CBuilder/Platform/cygwin.pm
651 - Cygwin is Unix-like
652 lib/ExtUtils/Install.pm - Install and rename issues under Cygwin
654 lib/ExtUtils/MM_Any.pm - Example for Cygwin
659 lib/File/Fetch.pm - Comment about quotes using a Cygwin example
662 lib/File/Spec/Cygwin.pm - case_tolerant
664 lib/File/Spec/Win32.pm - References a message on cygwin.com
665 lib/File/Spec.pm - Pulls in lib/File/Spec/Cygwin.pm
668 lib/Net/Domain.pm - No domainname command under Cygwin
669 lib/Net/Netrc.pm - Bypass using stat() under Cygwin
670 lib/Net/Ping.pm - ECONREFUSED is EAGAIN under Cygwin
674 lib/Term/ANSIColor.pm - Cygwin terminal info
676 utils/perlbug.PL - Add CYGWIN environment variable to report
722 =head1 BUGS ON CYGWIN
725 On WinNT Cygwin provides C<setuid()>, C<seteuid()>, C<setgid()> and C<setegid()>.
726 However, additional Cygwin calls for manipulating WinNT access tokens