With the introduction of cygwin 1.7.11-1, perl scripts that use
  dynamic loading fail with dll errors when another program is exec'ed.

  The host OS is windows 7 professional, 32-bit.  The error message
  looks like the familiar perl problem fixed by rebaseall, but this
  time, that remedy did not fix the problem.

  A perl one-liner is enough to demonstrate:

        win7% perl -MParams::Util -e 'system q{date}'
              3 [main] perl 3428 child_copy: loaded dll data write copy failed, 
0x721D6000..0x721D635C, done 0, windows pid 5360, Win32 error 487

  Here is the detailed test case that demonstrates the problem:

        win7% cat Util.pm
        #
        # Test case for Cygwin + perl DynaLoader problem.  Dynamic loading in
        # perl works with cygwin 1.7.10-1 and fails with cygwin 1.7.11-1
        #
        # The code looks odd, but that's because it is the simplest reduction of
        # real code that illustrates the problem.
        #
        package Params::Util;
        require List::Util;
        require DynaLoader;
        use vars qw{@ISA};
        @ISA = qw{ DynaLoader };
        bootstrap Params::Util 1.01;
        system q{date};
        1;

        win7% perl Util.pm
              7 [main] perl 5180 child_copy: loaded dll data write copy failed, 
0x72206000..0x7220635C, done 0, windows pid 3520, Win32 error 487
        5033576 [main] perl 5180 child_copy: loaded dll data write copy failed, 
0x72206000..0x7220635C, done 0, windows pid 3520, Win32 error 487
        10066998 [main] perl 5180 child_copy: loaded dll data write copy 
failed, 0x72206000..0x7220635C, done 0, windows pid 3520, Win32 error 487

        win7% cygcheck -c cygwin perl
        Cygwin Package Information
        Package              Version        Status
        cygwin               1.7.11-1       OK
        perl                 5.10.1-5       OK

        win7% perl -MParams::Util -e 'system q{date}'
              3 [main] perl 3428 child_copy: loaded dll data write copy failed, 
0x721D6000..0x721D635C, done 0, windows pid 5360, Win32 error 487



  And here is the test case that shows it used to work:

        win7% cat Util.pm
        #
        # Test case for Cygwin + perl DynaLoader problem.  Dynamic loading in
        # perl works with cygwin 1.7.10-1 and fails with cygwin 1.7.11-1
        #
        # The code looks odd, but that's because it is the simplest reduction of
        # real code that illustrates the problem.
        #
        package Params::Util;
        require List::Util;
        require DynaLoader;
        use vars qw{@ISA};
        @ISA = qw{ DynaLoader };
        bootstrap Params::Util 1.01;
        system q{date};
        1;

        win7% perl Util.pm
        Sat, Mar 03, 2012 09:40:12

        win7% cygcheck -c cygwin perl
        Cygwin Package Information
        Package              Version        Status
        cygwin               1.7.10-1       OK
        perl                 5.10.1-5       OK

        win7% perl -MParams::Util -e 'system q{date}'
        Sat, Mar 03, 2012 09:42:49

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to