On Thu, 30 Mar 2000 09:56:58 +0200, Dominic Dunlop wrote: >If perl is statically-linked, and in the absence of the patch below, >make test for Compress::Zlib gives > >PERL_DL_NONLAZY=1 ./perl -Iblib/arch -Iblib/lib >-I/usr/local/lib/perl5/5.6.0/pow >erpc-machten -I/usr/local/lib/perl5/5.6.0 -e 'use Test::Harness >qw(&runtests $ve >rbose); $verbose=0; runtests @ARGV;' t/*.t >t/examples..........NOK 6Subroutine DynaLoader::dl_error redefined at >/usr/local >/lib/perl5/5.6.0/powerpc-machten/DynaLoader.pm line 93. >t/examples..........NOK 13FAILED tests 2, 4, 6, 8, 11, 13 > Failed 6/13 tests, 53.85% okay >t/zlib..............Subroutine DynaLoader::dl_error redefined at >/usr/local/lib/ >perl5/5.6.0/powerpc-machten/DynaLoader.pm line 93. >t/zlib..............ok >Failed Test Status Wstat Total Fail Failed List of failed >------------------------------------------------------------------------------- >t/examples.t 13 6 46.15% 2, 4, 6, 8, 11, 13 >Failed 1/2 test scripts, 50.00% okay. 6/167 subtests failed, 96.41% >okay. >make: *** [test_static] Error 255 > >Everything is fixed (for me) by stopping the module from requiring >DynaLoader. The patch does the same thing as >Change 5884 by gsar@auger on 2000/03/22 >did to the IO module. It needs testing on a dynamically-linked >architecture. Does this cure it? Sarathy gsar@ActiveState.com -----------------------------------8<----------------------------------- Change 5947 by gsar@auger on 2000/04/25 18:11:53 use &dl_error rather than &dl_load_file as the guard for calling boot_DynaLoader() (meant to fix dl_error() redefined warnings in statically built perl) Affected files ... ... //depot/perl/ext/DynaLoader/DynaLoader_pm.PL#13 edit ... //depot/perl/ext/DynaLoader/XSLoader_pm.PL#2 edit Differences ... ==== //depot/perl/ext/DynaLoader/DynaLoader_pm.PL#13 (text) ==== Index: perl/ext/DynaLoader/DynaLoader_pm.PL --- perl/ext/DynaLoader/DynaLoader_pm.PL.~1~ Tue Apr 25 11:12:00 2000 +++ perl/ext/DynaLoader/DynaLoader_pm.PL Tue Apr 25 11:12:00 2000 @@ -114,9 +114,9 @@ } # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. +# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && - !defined(&dl_load_file); - + !defined(&dl_error); if ($dl_debug) { print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n"; ==== //depot/perl/ext/DynaLoader/XSLoader_pm.PL#2 (text) ==== Index: perl/ext/DynaLoader/XSLoader_pm.PL --- perl/ext/DynaLoader/XSLoader_pm.PL.~1~ Tue Apr 25 11:12:00 2000 +++ perl/ext/DynaLoader/XSLoader_pm.PL Tue Apr 25 11:12:00 2000 @@ -37,10 +37,12 @@ print OUT <<'EOT'; +package DynaLoader; + # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. -package DynaLoader; +# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && - !defined(&dl_load_file); + !defined(&dl_error); package XSLoader; 1; # End of main code End of Patch.Thread Previous | Thread Next