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)

Attachments
0001-Port-to-OpSIBLING-like-macros-required-since-Perl-5..patch
rpm-build-perl-0.82-Port-to-OpSIBLING-like-macros-required-since-Perl-5..patch



Subject: Compilation error with perl 5.25.x (op_sibling)
Download (untitled) / with headers
text/plain 927b
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
Download (untitled) / with headers
text/plain 778b
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
Download (untitled) / with headers
text/plain 287b
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
Download (untitled) / with headers
text/plain 405b
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.



This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.