Dan Sugalski wrote:

> Okay, folks, our base ICU as we ship with parrot just flat-out 
> doesn't seem to work with cygwin

I figured I would add my lessons learned here so that people don't have to
start from scratch.

ICU's static only implementation (Win32) has not been completed and likely
will not be until June 25th or after.

To get parrot to link to ICU dynamically, you need to do the following:

1.  Modify config/init/hints/cygwin.pl and add link => 'c++',
2.  Ensure that the path to the .dlls are in your PATH env variable. 
Otherwise you will get "xxx.dll not found".
3.  Ensure that the .dlls are all executable or else you will get 
initialization error 0xc0000022
4.  If you are telling parrot to link to a pre-installed version of ICU
you need to modify the config/gen/icu.pl to tell it where the $icudatadir
is or else parrot.exe will yell at you about not being able to find the
data files

Ok - so once you have parrot dynamically linked to ICU fire it up:

c++ -o parrot.exe -L/usr/local/lib  -g  imcc/main.o blib/lib/libparrot.a  
-lcrypt -licuuc -licudt
Invoking Parrot to generate library/config.fpmc--cross your fingers
/parrot config_lib.pasm
make: *** [library/config.fpmc] Segmentation fault (core dumped)

Now here is where I throw my hands up.  I am going to try one more thing
that I have previously tried (but not sure if I knew about the .dlls
permission problem then) but I do not have much hope that it will work.

Joshua Gatcomb

Reply via email to