Subject: | Fails to build with perl-5.18.0-RC2 |
Trying to install Enbugger on perl-5.18.0-RC2 fails with the following error in t/11load.t:
Can't use an undefined value as a symbol reference at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 6141.
at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 6141.
DB::print_lineinfo('main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 4285
DB::depth_print_lineinfo(1, 'main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 3248
DB::Obj::_my_print_lineinfo('DB::Obj=HASH(0x15c8f90)', 157, 'main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 3336
DB::Obj::_DB__grab_control('DB::Obj=HASH(0x15c8f90)') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 2644
DB::DB called at t/11load.pl line 157
Failed to run /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -Mblib t/11load.pl /tmp/OHODr42ySy: exit: 255 at t/Test/Enbugger.pm line 104.
Full build.log attached.
Subject: | build.log |
cpanm (App::cpanminus) 1.5017 on perl 5.018000 built for x86_64-linux
Work directory is /home/makholm/.cpanm/work/1368439070.17306
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
--> Working on http://cpan.metacpan.org/authors/id/J/JJ/JJORE/Enbugger-2.013.tar.gz
Fetching http://cpan.metacpan.org/authors/id/J/JJ/JJORE/Enbugger-2.013.tar.gz
-> OK
Unpacking Enbugger-2.013.tar.gz
Entering Enbugger-2.013
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
Configuring Enbugger-2.013
Running Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Enbugger
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
Checking if you have B::Utils 0 ... Yes (0.21)
Checking if you have Test::More 0 ... Yes (0.98)
Building and testing Enbugger-2.013
cp lib/Enbugger/NYTProf.pm blib/lib/Enbugger/NYTProf.pm
cp lib/Enbugger/perl5db.pm blib/lib/Enbugger/perl5db.pm
cp lib/Enbugger.pm blib/lib/Enbugger.pm
cp lib/Enbugger/sdb.pm blib/lib/Enbugger/sdb.pm
cp lib/Enbugger/ptkdb.pm blib/lib/Enbugger/ptkdb.pm
cp lib/Enbugger/ebug.pm blib/lib/Enbugger/ebug.pm
cp lib/Enbugger/OnError.pm blib/lib/Enbugger/OnError.pm
cp lib/Enbugger/trepan.pm blib/lib/Enbugger/trepan.pm
cp lib/Enbugger.pod blib/lib/Enbugger.pod
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/ExtUtils/xsubpp -typemap /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/ExtUtils/typemap Enbugger.xs > Enbugger.xsc && mv Enbugger.xsc Enbugger.c
cc -c -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"2.013\" -DXS_VERSION=\"2.013\" -fPIC "-I/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/x86_64-linux/CORE" Enbugger.c
Running Mkbootstrap for Enbugger ()
chmod 644 Enbugger.bs
rm -f blib/arch/auto/Enbugger/Enbugger.so
cc -shared -O2 -L/usr/local/lib -fstack-protector Enbugger.o -o blib/arch/auto/Enbugger/Enbugger.so \
\
chmod 755 blib/arch/auto/Enbugger/Enbugger.so
cp Enbugger.bs blib/arch/auto/Enbugger/Enbugger.bs
chmod 644 blib/arch/auto/Enbugger/Enbugger.bs
cp bin/screen-server-backend blib/script/screen-server-backend
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/screen-server-backend
cp bin/tmux-server-backend blib/script/tmux-server-backend
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/tmux-server-backend
cp bin/xterm-server-backend blib/script/xterm-server-backend
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/xterm-server-backend
cp bin/tmux-server blib/script/tmux-server
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/tmux-server
cp bin/xterm-server blib/script/xterm-server
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/xterm-server
cp bin/screen-server blib/script/screen-server
/home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/screen-server
Manifying blib/man1/tmux-server-backend.1
Manifying blib/man1/xterm-server-backend.1
Manifying blib/man1/tmux-server.1
Manifying blib/man1/xterm-server.1
Manifying blib/man1/screen-server.1
Manifying blib/man1/screen-server-backend.1
Manifying blib/man3/Enbugger::NYTProf.3
Manifying blib/man3/Enbugger::trepan.3
Manifying blib/man3/Enbugger::perl5db.3
Manifying blib/man3/Enbugger::ebug.3
Manifying blib/man3/Enbugger.3
PERL_DL_NONLAZY=1 /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/10load.t ...... ok
#!perl
# COPYRIGHT AND LICENCE
#
# Copyright (C) 2007,2008 WhitePages.com, Inc. with primary
# development by Joshua ben Jore.
#
# This program is distributed WITHOUT ANY WARRANTY, including but not
# limited to the implied warranties of merchantability or fitness for
# a particular purpose.
#
# The program is free software. You may distribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation (either version 2 or any later version)
# and the Perl Artistic License as published by OâReilly Media, Inc.
# Please open the files named gpl-2.0.txt and Artistic for a copy of
# these licenses.
use strict;
use warnings;
use Getopt::Long qw( GetOptions );
use vars qw( $Ok );
use lib qw( ./t/ );
BEGIN {
=head1 DESCRIPTION
This test attempts to run the perl5db debugger, gives it some
commands, then tests that the commands occurred. In general the idea
is that depending on how the Enbugger.xs code is modifying COP nodes,
it could have either removed instrumentation from code that should be
instrumented or done the reverse and instrumented the debugger itself.
The output of this program can be read by another program and used in
a test.
=head1 OPTIONS
=over
=item --noimport
Enbugger will be loaded without calling C<< ->import >>.
=item --import ELT
Adds an item to the C<< ->import >> argument list.
=item --help
Runs perldoc on this program.
=item --load_perl5db
After loading Enbugger, C<< Enbugger->load_perl5db >> will also be called.
=back
=cut
$ENV{PERLDB_OPTS} = 'noTTY';
# Option parsing.
my $import = 1;
my @import = ();
my $loadPerl5Db = 0;
my $onError = 0;
GetOptions(
help => sub { exec {'perldoc'} 'perldoc', $0 },
noimport => sub { $import = 0 },
'import=s' => \@import,
load_perl5db => \ $loadPerl5Db,
onerror => \ $onError,
)
or exec {'perldoc'} 'perldoc', $0;
# Promote some options into constants.
require constant;
constant->import( LoadPerl5Db => !! $loadPerl5Db );
# The test is whether the debugger runs and is controlled by my
# test commands here.
{
no warnings 'once';
push @DB::typeahead, '$main::Ok = 1', 'c', 'q';
}
# All our output will go to *OUT. If this program was given a
# paramter, we accept it as file that we should write our output too.
{
my ( $file ) = shift @ARGV;
if ( defined $file ) {
open OUT, '>', $file
or die "Can't open $file for writing: $!";
}
else {
*OUT = *STDOUT;
}
# OUTPUT is HOT.
select *OUT;
$| = 1;
# Things written to STDERR should also go to our single *OUT.
no warnings 'once';
*STDERR = $DB::OUT = $DB::LINEINFO = *OUT;
}
# Look to see if the debugger is on. Before I go and load
# Enbugger, I figure I can at least count on being able to examine
# $^P to see if we were started with the -d debugger flag.
constant->import( UnderTheDebugger => !! $^P );
# Load Enbugger and completely knacker our process. This little
# snippet used to just be a static `use Enbugger;' but I moved it
# up here when it became obvious that I wanted to optionally avoid
# importing anything.
if ( $onError ) {
require Enbugger::OnError;
Enbugger::OnError->import;
}
else {
require Enbugger;
if ( $import ) {
Enbugger->import( @import );
}
}
# Now dropping into normal run-time.
}
# Load the perl5db debugger if the user asked for us to do it
# manually. Normally the ->stop method call will also do this for us.
if ( LoadPerl5Db ) {
Enbugger->load_perl5db;
}
# Trigger a breakpoint.
#
# At this point, I already supplied some commands to the debugger so
# it should go set our $ok variable and then continue on
# automatically.
Enbugger->stop unless $Ok;
# Check that the debugger was stopped and it processed the commands
# requested of it.
$Ok = 'undef' if not defined $Ok;
print "\$ok = $Ok.\n";
## Local Variables:
## mode: cperl
## mode: auto-fill
## cperl-indent-level: 4
## tab-width: 8
## End:
Can't use an undefined value as a symbol reference at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 6141.
at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 6141.
DB::print_lineinfo('main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 4285
DB::depth_print_lineinfo(1, 'main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 3248
DB::Obj::_my_print_lineinfo('DB::Obj=HASH(0x15c8f90)', 157, 'main::(t/11load.pl:157):\x{9}$Ok = \'undef\' if not defined $Ok;\x{a}') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 3336
DB::Obj::_DB__grab_control('DB::Obj=HASH(0x15c8f90)') called at /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/lib/5.18.0/perl5db.pl line 2644
DB::DB called at t/11load.pl line 157
Failed to run /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/perl -Mblib t/11load.pl /tmp/OHODr42ySy: exit: 255 at t/Test/Enbugger.pm line 104.
# Looks like your test exited with 255 before it could output anything.
t/11load.t ......
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 12/12 subtests
t/20error.t ..... ok
t/21error.t ..... ok
t/22signal.t .... ok
# report_file: t/nytprof.out
# report_dir: t/nytprof
# nytprofcsv: /home/makholm/perl5/perlbrew/perls/perl-5.18.0-RC2/bin/nytprofcsv
t/nytprof.t ..... ok
t/trepantest.t .. skipped: Skipped because Devel::Trepan isn't installed
Test Summary Report
-------------------
t/11load.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 12 tests but ran 0.
Files=7, Tests=19, 1 wallclock secs ( 0.02 usr 0.02 sys + 1.16 cusr 0.07 csys = 1.27 CPU)
Result: FAIL
Failed 1/7 test programs. 0/19 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing http://cpan.metacpan.org/authors/id/J/JJ/JJORE/Enbugger-2.013.tar.gz failed. See /home/makholm/.cpanm/build.log for details.