Subject: | Problems with trailing space in ldflags |
The output parser in t/cmdline-LIBS-INC.t seems a little shaky:
# perl -V:ldflags
ldflags=' -L/usr/local/lib ';
$ PERL5LIB=../IO-CaptureOutput-1.1104/blib/lib make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t ................... Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
t/00-load.t ................... ok
t/bad-single-word-compiler.t .. Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
t/bad-single-word-compiler.t .. ok
t/cmdline-LIBS-INC.t .......... Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
t/cmdline-LIBS-INC.t .......... 1/3
# Failed test 'linked OK: LIBS=-lm'
# at t/cmdline-LIBS-INC.t line 51.
# STDOUT:
# STDERR: Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
#
# Failed test 'linked OK: LIBS=-lm, LIBS=-lbazbam, LIBS=-L/tmp/3FMz6G2Eff'
# at t/cmdline-LIBS-INC.t line 67.
# STDOUT:
# STDERR: Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
#
# Failed test 'linked OK: "LIBS=-lm -lbazbam -L/tmp/3FMz6G2Eff"'
# at t/cmdline-LIBS-INC.t line 83.
# STDOUT:
# STDERR: Use of uninitialized value in length at /waflhome/augensalat/Devel-CheckLib-1.05/blib/lib/Devel/CheckLib.pm line 437.
#
# Looks like you failed 3 tests of 3.
Here is my Patch:
--- a/Devel-CheckLib-1.05/lib/Devel/CheckLib.pm
+++ b/Devel-CheckLib-1.05/lib/Devel/CheckLib.pm
@@ -431,7 +431,7 @@ sub _findcc {
my $Config_ccflags = $Config{ccflags}; # use copy so ASPerl will compile
my @Config_ldflags = ();
for my $config_val ( @Config{qw(ldflags)} ){
- push @Config_ldflags, $config_val if ( $config_val =~ /\S/ );
+ push @Config_ldflags, $1 if ( $config_val =~ /^\s*(\S.+?)\s*$/ );
}
my @ccflags = grep { length } quotewords('\s+', 1, $Config_ccflags||'');
my @ldflags = grep { length } quotewords('\s+', 1, @Config_ldflags);