Skip Menu |

This queue is for tickets about the rpm-build-perl CPAN distribution.

Report information
The Basics
Id: 117350
Status: open
Priority: 0/
Queue: rpm-build-perl

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

Bug Information
Severity: (no value)
Broken in: 0.82
Fixed in: (no value)



Subject: Compilation error with perl 5.25.x (op_sibling)
With bleadperl (I think since 5.25.1 and later) the compilation fails: cc -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 -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fPIC "-I/opt/perl-5.25.4/lib/5.25.4/x86_64-linux/CORE" ConstOptree.c ConstOptree.xs: In function ‘convert_arg’: ConstOptree.xs:28:7: error: ‘SVOP’ has no member named ‘op_sibling’ newop->op_sibling = op1->op_sibling; ^ ConstOptree.xs:28:25: error: ‘OP’ has no member named ‘op_sibling’ newop->op_sibling = op1->op_sibling; ^ ConstOptree.xs: In function ‘my_ck_op’: ConstOptree.xs:41:17: error: ‘OP’ has no member named ‘op_sibling’ argp = &(*argp)->op_sibling; ^ Makefile:312: recipe for target 'ConstOptree.o' failed
From: ppisar [...] redhat.com
Dne Út 30.srp.2016 18:15:02, SREZIC napsal(a): Show quoted text
> With bleadperl (I think since 5.25.1 and later) the compilation fails: > > cc -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 -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" > -fPIC "-I/opt/perl-5.25.4/lib/5.25.4/x86_64-linux/CORE" > ConstOptree.c > ConstOptree.xs: In function ‘convert_arg’: > ConstOptree.xs:28:7: error: ‘SVOP’ has no member named > ‘op_sibling’ > newop->op_sibling = op1->op_sibling; > ^
This could be fixed by including modern ppport.h and converting the code to use OpSIBLING-like macros. See <https://rt.perl.org/Public/Bug/Display.html?id=128179#txn-1405910>.
From: ppisar [...] redhat.com
Dne Pá 19.Květen.2017 03:18:01, ppisar napsal(a): Show quoted text
> This could be fixed by including modern ppport.h and converting the > code to use OpSIBLING-like macros. See > <https://rt.perl.org/Public/Bug/Display.html?id=128179#txn-1405910>.
An attempt to do it is attached. Tests still fail.
Subject: 0001-Port-to-OpSIBLING-like-macros-required-since-Perl-5..patch
From 61bcc980e25b8c0463edebf36f30fe3783330940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> Date: Fri, 19 May 2017 10:54:13 +0200 Subject: [PATCH] Port to OpSIBLING-like macros required since Perl 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This tries to fix build failure on Perl >= 5.25.1 by means of <https://rt.perl.org/Public/Bug/Display.html?id=128179#txn-1405910%3E>. But t/02-perlreq.t tests still fail with Perl 5.26.0 RC1: t/02-perlreq.t .... 1/? This patch changes only the code, it does not bundle ppport.h. CPAN RT#117350 Signed-off-by: Petr Písař <ppisar@redhat.com> --- ConstOptree/ConstOptree.xs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ConstOptree/ConstOptree.xs b/ConstOptree/ConstOptree.xs index f3e10d3..767f821 100644 --- a/ConstOptree/ConstOptree.xs +++ b/ConstOptree/ConstOptree.xs @@ -2,6 +2,7 @@ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" +#include "ppport.h" #include "XSUB.h" static OP *convert_arg(pTHX_ OP *op) @@ -25,7 +26,7 @@ static OP *convert_arg(pTHX_ OP *op) if (*name == ']') /* $] */ newop = (SVOP *) newSVOP(OP_CONST, 0, vnumify(PL_patchlevel)); if (newop) { - newop->op_sibling = op1->op_sibling; + OpMAYBESIB_set(newop, OpSIBLING(op1), NULL); newop->op_next = (OP *) newop; op_free(op); return (OP *) newop; @@ -38,7 +39,7 @@ static OP *my_ck_op(pTHX_ OP *op) OP **argp = &cUNOPx(op)->op_first; while (*argp) { *argp = convert_arg(aTHX_ *argp); - argp = &(*argp)->op_sibling; + *argp = OpSIBLING(*argp); } return op; } -- 2.9.4
From: ppisar [...] redhat.com
Dne Pá 19.Květen.2017 04:59:19, ppisar napsal(a): Show quoted text
> Dne Pá 19.Květen.2017 03:18:01, ppisar napsal(a):
> > This could be fixed by including modern ppport.h and converting the > > code to use OpSIBLING-like macros. See > > <https://rt.perl.org/Public/Bug/Display.html?id=128179#txn-1405910>.
> > An attempt to do it is attached. Tests still fail. >
A working fix is attached. It also bundles ppport.h.
Subject: rpm-build-perl-0.82-Port-to-OpSIBLING-like-macros-required-since-Perl-5..patch

Message body is not shown because it is too large.