in reply to Devel::BeginLift make problem
When you see this type of error (missing perl symbol), the thing to try is this
First run cpanp -i Devel::PPPort
then from within BeginLift directory run perl -MDevel::PPPort -e Devel::PPPort::WriteFile();
then run perl ppport.h --patch=the.patch
then run patch < the.patch
then run make realclean then perl Makefile.PL && make
When I tried this I got
$ perl ppport.h --patch=the.patch Scanning ./BeginLift.xs ... === Analyzing ./BeginLift.xs === Uses INT2PTR, which depends on PTRV Uses PTR2IV, which depends on INT2PTR, PTRV Uses SvREFCNT_inc, which depends on PL_Sv, SvREFCNT Uses aTHX Uses aTHX_ Uses newRV_inc, which depends on newRV Uses pTHX_ *** WARNING: Uses LINKLIST, which may not be portable below perl 5.13. +6, even with 'ppport.h' *** WARNING: Uses sv_derived_from, which may not be portable below per +l 5.004, even with 'ppport.h' Needs to include 'ppport.h' Analysis completed (2 warnings)
The warning had me curious, so the next thing I check is
$ objdump -p C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl514.dll | + grep pad [ 47] PL_ppaddr [ 346] Perl_get_ppaddr [ 648] Perl_pad_findmy [ 649] Perl_pad_push [ 765] Perl_save_padsv_and_mortalize
Hmm, doesn't look good, so I grep the source http://perl5.git.perl.org/perl.git?a=search&h=HEAD&st=grep&s=pad_swipe and see
embed.h 1173 #define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b) op.c 671 pad_swipe(cPADOPo->op_padix, TRUE); 699 pad_swipe(o->op_targ,1); 716 pad_swipe(cPADOPo->op_padix, TRUE); 737 pad_swipe(cPMOPo->op_pmreplrootu.op_pmtargetoff, TRUE +); 3072 pad_swipe(o->op_targ, FALSE); pad.c 1496 =for apidoc m|void|pad_swipe|PADOFFSET po|bool refadjust 1505 Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust) 1508 ASSERT_CURPAD_LEGAL("pad_swipe"); 1512 Perl_croak(aTHX_ "panic: pad_swipe curpad, %p!=%p", 1515 Perl_croak(aTHX_ "panic: pad_swipe po=%ld, fill=%ld", 1705 /* XXX DAPM integrate with pad_swipe ???? */
To me that means there is no way that is going to work (at least on win32) without compiling a new perl which explicitly exports pad_swipe -- or copy/pasting pad_swipe code into BeginLift.xs -- this has happened before with Devel/B:: modules :) the cost of being on win32
The http://matrix.cpantesters.org/?dist=Devel-BeginLift+0.001003 confirms this, there are no win32 PASS grades
Please report bug upstream to BeginLift author
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Devel::BeginLift make problem
by mascip (Pilgrim) on Jun 18, 2012 at 14:12 UTC | |
by Anonymous Monk on Jun 19, 2012 at 00:02 UTC |