Bug#549170: perl: DynaLoader is in perl-base but needs Config_heavy.pl from perl

Niko Tyni ntyni at debian.org
Thu Oct 1 07:12:01 UTC 2009


Package: perl
Version: 5.10.1-4
Severity: serious

As revealed by the piuparts test at

 http://piuparts.debian.org/sid/fail/libperl5.10_5.10.1-4.log 

DynaLoader from perl-base no longer works without perl installed:

 Can't locate Config_heavy.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/lib/perl/5.10/Config.pm line 69.

This was caused by upstream change

 http://perl5.git.perl.org/perl.git/commit/9e6e929b49155a4e040be3c98aa578e5de1ec66d

which makes $dl_dlext and $dl_so get expanded at runtime rather than buildtime.
These need Config_heavy.pl which is in the perl package.

The relevant discussion starts at

 http://www.nntp.perl.org/group/perl.perl5.porters/2007/12/msg131528.html 

Quoting Jan Dubious there:

> However, I think that interpolating $dl_dlext and $dl_so at buildtime
> was a mistake; we should have retained the module variables and
> interpolated them at runtime.

I'll hardcode the values for now as a quick fix, but I don't think this
deviation from upstream is a good thing in the long run. Brendan,
can you recall any specific reason (other than 'not needed') why
Config_heavy.pl is not in perl-base?


--- /usr/lib/perl/5.10.1/DynaLoader.pm  2009-09-29 19:57:59.000000000 +0000
+++ /tmp/DynaLoader 2009-10-01 07:03:09.000000000 +0000
@@ -39,7 +39,8 @@
 
 sub dl_load_flags { 0x00 }
 
-($dl_dlext, $dl_so, $dlsrc) = @Config::Config{qw(dlext so dlsrc)};
+#($dl_dlext, $dl_so, $dlsrc) = @Config::Config{qw(dlext so dlsrc)};
+($dl_dlext, $dl_so, $dlsrc) = ('so', 'so', 'dl_dlopen.xs');
 
 $do_expand = 0;
 
-- 
Niko Tyni   ntyni at debian.org






More information about the Perl-maintainers mailing list