On January 8, 2016 10:53, Steffen Mueller wrote in perl5-porters:

Picking out one of the failures:
>
On 01/07/2016 09:59 PM, Andreas Koenig wrote:
> > - RSCHUPP/PAR-Packer-1.028.tar.gz
> >
> >    main.o: In function `par_redo_stack':
> >
>  /tmp/loop_over_bdir-6977-63Xcet/PAR-Packer-1.028-WKcHP9/myldr/internals.c:3:
> undefined reference to `PUSHEVAL'
>
My gut says that this should be easy to fix, but I haven't tried. I also

don't know if I'll get to it any time soon (and also, Roderich is quite

capable of it himself).


Uh, that's the infamous Internals::PAR::CLEARSTACK (in myldr/internals.c).
I've wondered on several occasions what its intended purpose was.
My guess is that a script like

use Carp qw(cluck);
sub bar { cluck("you are here -->\n"); }
sub foo { bar(); }
foo();

which produces the following output

you are here -->
 at cluck.pl line 2.
        main::bar() called at cluck.pl line 3
        main::foo() called at cluck.pl line 4

would produce the same output when packed, instead of

you are here -->
 at script/cluck.pl line 2.
        main::bar() called at script/cluck.pl line 3
        main::foo() called at script/cluck.pl line 4
        require main called at
/home/roderich/perl5/perlbrew/perls/perl-5.18.4/lib/site_perl/5.18.4/PAR.pm
line 636
        PAR::_run_member('Archive::Zip::ZipFileMember=HASH(0x1d500e0)', 1)
called at script/main.pl line 26
        require main called at
/home/roderich/perl5/perlbrew/perls/perl-5.18.4/lib/site_perl/5.18.4/PAR.pm
line 636
        PAR::_run_member('Archive::Zip::ZipFileMember=HASH(0x1d503c8)')
called at
/home/roderich/perl5/perlbrew/perls/perl-5.18.4/lib/site_perl/5.18.4/PAR.pm
line 428
        PAR::import('PAR') called at -e line 634
        eval {...} called at -e line 41
        __par_pl::BEGIN() called at script/cluck.pl line 0
        eval {...} called at script/cluck.pl line 0

However, this CLEARSTACK feature has not been enabled for ages. In fact, if
I enable it it makes any packed executable segfault with any version of
perl >= 5.8.
Hence it's time to finally dike it out.

Cheers, Roderich

Reply via email to