Sys::Guestfs build failure (was: Re: [libguestfs] Perl mass rebuild)

Iain Arnell iarnell at gmail.com
Mon Jun 20 03:07:20 UTC 2011


On Sun, Jun 19, 2011 at 4:39 PM, Richard W.M. Jones <rjones at redhat.com> wrote:
>> Not a CODE reference at /usr/lib/perl5/DynaLoader.pm line 213.
>> END failed--call queue aborted at ../perl/blib/lib/Sys/Guestfs.pm line 213.
>> Compilation failed in require at ./test-launch-race.pl line 26.
>> BEGIN failed--compilation aborted at ./test-launch-race.pl line 26.
>> FAIL: test-launch-race.pl
>>
>> [...]
>>
>> Not a CODE reference at /usr/lib/perl5/DynaLoader.pm line 213.
>> END failed--call queue aborted at ../perl/blib/lib/Sys/Guestfs.pm line 213.
>> Compilation failed in require at ./test-lvm-mapping.pl line 23.
>> BEGIN failed--compilation aborted at ./test-lvm-mapping.pl line 23.
>> FAIL: test-lvm-mapping.pl
>
> It turned out that I could *not* reproduce this problem on Rawhide
> just by installing the perl-5.14.0-169.fc16.x86_64 package (plus the
> other binary RPMs that are directly part of perl-5.14.0-169).
>
> Sys::Guestfs does not depend on any other Perl libraries, except
> things like ExtUtils::MakeMaker that are used in the build process and
> libraries like Dynaloader which are part of core Perl.

Several packages are failing the mass rebuild on i686 only
due to an issue with ExtUtils::MakeMaker and CCFLAGS. The problem
appears as "Not a CODE reference at /usr/lib/perl5/DynaLoader.pm" in
build logs. And the ultimate cause is that these packages are passing
CCFLAGS to WriteMakefile in Makefile.PL which ends up replacing the
default CCFLAGS rather than adding to them. Debian is facing the same
problem[1]. So far, I've just been patching the affected rpms'
Makefile.PL to explicitly include $Config{ccflags} when passing
CCFLAGS to WriteMakefile (i.e. CCFLAGS => "$Config{ccflags}
-whatever-else-is-added").

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628522

-- 
Iain.



More information about the perl-devel mailing list