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
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.
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