Skip Menu |

This queue is for tickets about the Devel-MAT CPAN distribution.

Report information
The Basics
Id: 114581
Status: resolved
Priority: 0/
Queue: Devel-MAT

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc: KENTNL [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 0.23
  • 0.24
  • 0.25
Fixed in: 0.25



Subject: Compilation failure with perl 5.25.1 ('OP' has no member named 'op_sibling')
See subject. Build log excerpt: ... cc -I/opt/perl-5.25.1/lib/5.25.1/x86_64-linux/CORE -DVERSION="0.23" -DXS_VERSION="0.23" -fPIC -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -o lib/Devel/MAT/Dumper.o lib/Devel/MAT/Dumper.c lib/Devel/MAT/Dumper.xs: In function 'dump_optree': lib/Devel/MAT/Dumper.xs:203:52: error: 'OP' has no member named 'op_sibling' for (kid = ((UNOP*)o)->op_first; kid; kid = kid->op_sibling) { ^ error building lib/Devel/MAT/Dumper.o from 'lib/Devel/MAT/Dumper.c' at /opt/perl-5.25.1/lib/5.25.1/ExtUtils/CBuilder/Base.pm line 174. ... See also discussion at: https://rt.perl.org/rt3/Ticket/Display.html?id=128179
You should be able to fix this with the upcoming version of Devel::PPPort.
Here's a patch that doesn;t involve bringing the whole ppport.h in here: === modified file 'lib/Devel/MAT/Dumper.xs' --- lib/Devel/MAT/Dumper.xs 2016-06-03 15:23:30 +0000 +++ lib/Devel/MAT/Dumper.xs 2016-09-29 22:26:59 +0000 @@ -25,6 +25,10 @@ # define CxHASARGS(cx) ((cx)->blk_sub.hasargs) #endif +#ifndef OpSIBLING +# define OpSIBLING(o) ((o)->op_sibling) +#endif + /* This technically applies all the way back to 5.6 if we need it... */ #if (PERL_REVISION == 5) && (PERL_VERSION == 10) && (PERL_SUBVERSION == 0) # define CxOLD_OP_TYPE(cx) ((cx)->blk_eval.old_op_type) @@ -200,7 +204,7 @@ } if(o->op_flags & OPf_KIDS) { - for (kid = ((UNOP*)o)->op_first; kid; kid = kid->op_sibling) { + for (kid = ((UNOP*)o)->op_first; kid; kid = OpSIBLING(kid)) { dump_optree(fh, cv, kid); } }
On Thu Sep 29 18:36:52 2016, RANDIR wrote: Show quoted text
> Here's a patch that doesn;t involve bringing the whole ppport.h in here:
Yes; I already did exactly that :) -- Paul Evans
Чтв Сен 29 19:05:24 2016, PEVANS писал: Show quoted text
> On Thu Sep 29 18:36:52 2016, RANDIR wrote:
> > Here's a patch that doesn;t involve bringing the whole ppport.h in here:
> Yes; I already did exactly that :)
Great, since I test everything I compile on all available perls, I've stumbled upon this during Sentinel patching)
Huh, I thought I had committed this fix already, but apparently not. I've now done so from the patch above. Thanks, -- Paul Evans
Was released in 0.25 -- Paul Evans