1 This file is best viewed with "perldoc README.cygwin".
5 README.cygwin - Parrot under Cygwin
9 Parrot builds out of the box under Cygwin,
10 when no other parrot is installed. See below at PROBLEMS.
12 There are official cygwin parrot packages available via
13 L<http://cygwin.com/setup.exe>.
15 parrot libparrot0 libparrot-devel parrot-perl6 parrot-languages
17 Some tweaks are needed for different names for the ffi to some dll's.
18 See L</loadlib DLL versioning>.
23 You'll need the following Cygwin packages to run and build Parrot
28 libreadline6 ncurses libintl8 libgmp3 libgdbm4
30 Optional requirements:
32 libicu38 libpq5 openssl
34 for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
38 gcc make perl parrot readline libncurses-devel libgmp-devel
39 libgdbm-devel pcre-devel
41 Optional build requirements:
43 libicu-devel openssl-devel
45 for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
47 Optional perl packages for testing:
49 L<Test::TAP::HTMLMatrix> if you want to run the smoke tests
52 perl L<Test::Perl::Critic> and L<Perl::Critic>
56 =item Cygwin subversion and perl
58 If you use SVN to get a copy of Parrot, you should use the Cygwin SVN
59 and not the TortoiseSVN client to avoid build errors. Similarly you will
60 need Cygwin Perl rather than ActiveState or Strawberry Perl.
64 Note that ICU is now optional, you can build Parrot without it,
65 by not installing it or asking Parrot to ignore it (C<--without-icu>).
71 If the freeglut package for the X Server is installed, this
72 is used, otherwise the w32api and opengl packages for native
73 Windows opengl support are tried.
75 In order to use the w32api native GLUT there must be no
76 F</usr/include/GL> directory.
78 The problem is that the L<NCI|pdds/draft/pdd16_native_call.pod>
79 tries the header files to create the imports and not the
80 libraries, and if the /usr/include/GL headers are found
81 these are used, despite the w32api GLUT libraries are
84 Determining if your platform supports OpenGL.............yes, freeglut 3.4.
85 Determining if your platform supports OpenGL...................yes, GLUT 3.
86 Determining if your platform supports OpenGL............................no.
90 libglut-devel libGL-devel libGLU-devel libglut3 ...
92 or if C<libglut-devel> and C<libGL-devel> is not installed:
98 SDL references F<cygSDL-1-2-0.dll>, which is only in cygports
99 L<http://news.gmane.org/gmane.os.cygwin.ports.announce>
103 libaio-devel "Linux-native asynchronous I/O access" is not available
104 for cygwin, and as the name says it will never be :)
119 =item perl fatal error - unable to remap Glob.dll
122 F<perl.exe>: *** fatal error - unable to remap
123 F<C:\cygwin\lib\perl5\5.10\i686-cygwin\auto\File\Glob\Glob.dll>
124 to same address as parent(C<0x860000>) != C<0x14D0000>
126 This is a known cygwin problem with dll's, esp. perl on non-XP 32bit platforms.
127 You need to install the C<rebase> package and run C<rebaseall> from an C<ash>
130 =item Crash at miniparrot.exe config_lib.pasm
132 Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your
135 F<./miniparrot.exe config_lib.pasm > runtime/parrot/include/config.fpmc>
140 =item Spurious stackdumps while building
142 Be sure that there's no other libparrot.dll.a or libparrot.a
143 in the linker libpath.
145 F</usr/lib/libparrot.dll.a>, F</usr/local/lib/libparrot.dll.a>
147 =item os hardlink test fail
149 t/pmc/os....................................
150 # Failed test 'hard link was really created'
151 # at t/pmc/os.t line 312.
153 This is a known Windows limitation with NTFS junctions on files.
161 =item loadlib DLL versioning
163 Use cyg*-1.1.dll naming conventions instead of lib*.so.1.1 names for
166 Thanks to the C<Windows DLL Hell> and the impossibility of
167 file hardlinks, windows dll names are versioned, so the loadlib
168 function or the various pir's needs more logic.
170 Either add the version to each loadlib call, and stem the version from
171 POSIX versions within get_path(), or add an optional version argument
172 to loadlib for win32. Or just fix all the pir's, which will be easier
173 when exceptions work again.
177 Threads, Events, and Signals are missing.
185 =item Reini Urban E<lt>rurban@x-ray.atE<gt>
195 Last updated: 23 January 2009