Skip Menu |
 

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 105626
Status: rejected
Priority: 0/
Queue: Module-Build

People
Owner: Nobody in particular
Requestors: debdevel187 [...] macrotex.net
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Problem with PERL_DL_NONLAZY in do_tests
Date: Thu, 02 Jul 2015 13:36:59 -0700
To: bug-Module-Build [...] rt.cpan.org
From: debdevel187 [...] macrotex.net
Download (untitled) / with headers
text/plain 863b
The function do_tests in Build/Base.pm sets the environment variable PERL_DL_NONLAZY to 1 which makes my tests using the module Authen::Krb5 fail. In particular, I get output like the following: t/test.t .. Can't load '/usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib/x86_64-linux-gnu/perl/5.20/DynaLoader.pm line 187. at /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3. Compilation failed in require at /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3. I manually changed the line local $ENV{PERL_DL_NONLAZY} = 1; to local $ENV{PERL_DL_NONLAZY} = 0; in Build/Base.pm and the tests all pass. What is needed: an option that allows one to tell do_tests NOT to force $ENV{PERL_DL_NONLAZY} to 1.
Download (untitled) / with headers
text/plain 1.3k
On Thu Jul 02 16:37:12 2015, debdevel187@macrotex.net wrote: Show quoted text
> The function do_tests in Build/Base.pm sets the environment variable > PERL_DL_NONLAZY to 1 which makes my tests using the module Authen::Krb5 > fail. > > In particular, I get output like the following: > > t/test.t .. Can't load > '/usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so' for > module Authen::Krb5: > /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so: > undefined symbol: krb5_free_krbhst at > /usr/lib/x86_64-linux-gnu/perl/5.20/DynaLoader.pm line 187. > at /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3. > Compilation failed in require at > /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3.
This is an issue in Athen::Krb5, not in Module::Build. Apparently that function is no longer provided, giving this result. It is even documenting it shouldn't be using those functions. The solution is to fix Authen::Krb5. Show quoted text
> I manually changed the line > > local $ENV{PERL_DL_NONLAZY} = 1; > > to > > local $ENV{PERL_DL_NONLAZY} = 0; > > in Build/Base.pm and the tests all pass. > > What is needed: an option that allows one to tell do_tests NOT to force > $ENV{PERL_DL_NONLAZY} to 1.
So you're postponing all linkage issues until you actually happen to be calling the affected function. Non-lazy runtime-linking during testing is a feature not a bug. Don't shoot the messenger. Marking this as rejected. Leon


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.