This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cygwin 1.7.11-1 broke perl using dynamic loading


  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]