From: "Andreas K. Hüttel" <dilfridge@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/perl/files/, dev-lang/perl/
Date: Sun, 30 Dec 2018 21:26:55 +0000 (UTC) [thread overview]
Message-ID: <1546205198.e576790a512945d1884868c55e87721b4d75b56b.dilfridge@gentoo> (raw)
commit: e576790a512945d1884868c55e87721b4d75b56b
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 30 21:26:22 2018 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sun Dec 30 21:26:38 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e576790a
dev-lang/perl: Add hppa workaround, bug 634162
Patch from Debian, see https://bugs.debian.org/869122
Closes: https://bugs.gentoo.org/634162
Package-Manager: Portage-2.3.53, Repoman-2.3.12
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
dev-lang/perl/files/perl-5.26.2-hppa.patch | 105 +++++++++++++++++++++++++++++
dev-lang/perl/perl-5.26.2.ebuild | 4 ++
dev-lang/perl/perl-5.26.9999.ebuild | 4 ++
dev-lang/perl/perl-5.28.0.ebuild | 4 ++
dev-lang/perl/perl-5.28.9999.ebuild | 4 ++
5 files changed, 121 insertions(+)
diff --git a/dev-lang/perl/files/perl-5.26.2-hppa.patch b/dev-lang/perl/files/perl-5.26.2-hppa.patch
new file mode 100644
index 00000000000..83ed944353e
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.26.2-hppa.patch
@@ -0,0 +1,105 @@
+https://bugs.gentoo.org/634162
+
+Source:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869122
+
+Index: perl-5.26.0/op.c
+===================================================================
+--- perl-5.26.0.orig/op.c
++++ perl-5.26.0/op.c
+@@ -14832,6 +14832,7 @@ Perl_custom_op_get_field(pTHX_ const OP
+ SV *keysv;
+ HE *he = NULL;
+ XOP *xop;
++ XOPRETANY any;
+
+ static const XOP xop_null = { 0, 0, 0, 0, 0 };
+
+@@ -14874,58 +14875,37 @@ Perl_custom_op_get_field(pTHX_ const OP
+ else
+ xop = INT2PTR(XOP *, SvIV(HeVAL(he)));
+ }
+- {
+- XOPRETANY any;
+- if(field == XOPe_xop_ptr) {
+- any.xop_ptr = xop;
+- } else {
+- const U32 flags = XopFLAGS(xop);
+- if(flags & field) {
+- switch(field) {
+- case XOPe_xop_name:
+- any.xop_name = xop->xop_name;
+- break;
+- case XOPe_xop_desc:
+- any.xop_desc = xop->xop_desc;
+- break;
+- case XOPe_xop_class:
+- any.xop_class = xop->xop_class;
+- break;
+- case XOPe_xop_peep:
+- any.xop_peep = xop->xop_peep;
+- break;
+- default:
+- NOT_REACHED; /* NOTREACHED */
+- break;
+- }
+- } else {
+- switch(field) {
+- case XOPe_xop_name:
+- any.xop_name = XOPd_xop_name;
+- break;
+- case XOPe_xop_desc:
+- any.xop_desc = XOPd_xop_desc;
+- break;
+- case XOPe_xop_class:
+- any.xop_class = XOPd_xop_class;
+- break;
+- case XOPe_xop_peep:
+- any.xop_peep = XOPd_xop_peep;
+- break;
+- default:
+- NOT_REACHED; /* NOTREACHED */
+- break;
+- }
+- }
++
++ if(field == XOPe_xop_ptr) {
++ any.xop_ptr = xop;
++ } else {
++ const U32 flags = XopFLAGS(xop);
++ switch(field) {
++ case XOPe_xop_name:
++ any.xop_name = (flags & field) ? xop->xop_name : XOPd_xop_name;
++ break;
++ case XOPe_xop_desc:
++ any.xop_desc = (flags & field) ? xop->xop_desc : XOPd_xop_desc;
++ break;
++ case XOPe_xop_class:
++ any.xop_class = (flags & field) ? xop->xop_class : XOPd_xop_class;
++ break;
++ case XOPe_xop_peep:
++ any.xop_peep = (flags & field) ? xop->xop_peep : XOPd_xop_peep;
++ break;
++ default:
++ NOT_REACHED; /* NOTREACHED */
++ break;
+ }
+- /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
+- * op.c: In function 'Perl_custom_op_get_field':
+- * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
+- * This is because on those platforms (with -DEBUGGING) NOT_REACHED
+- * expands to assert(0), which expands to ((0) ? (void)0 :
+- * __assert(...)), and gcc doesn't know that __assert can never return. */
+- return any;
+ }
++
++ /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
++ * op.c: In function 'Perl_custom_op_get_field':
++ * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
++ * This is because on those platforms (with -DEBUGGING) NOT_REACHED
++ * expands to assert(0), which expands to ((0) ? (void)0 :
++ * __assert(...)), and gcc doesn't know that __assert can never return. */
++ return any;
+ }
+
+ /*
diff --git a/dev-lang/perl/perl-5.26.2.ebuild b/dev-lang/perl/perl-5.26.2.ebuild
index e2af84bf47d..3efe8267e5b 100644
--- a/dev-lang/perl/perl-5.26.2.ebuild
+++ b/dev-lang/perl/perl-5.26.2.ebuild
@@ -307,6 +307,10 @@ src_prepare() {
local patch
EPATCH_OPTS+=" -p1"
+ if use hppa ; then
+ epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
+ fi
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
diff --git a/dev-lang/perl/perl-5.26.9999.ebuild b/dev-lang/perl/perl-5.26.9999.ebuild
index e2af84bf47d..3efe8267e5b 100644
--- a/dev-lang/perl/perl-5.26.9999.ebuild
+++ b/dev-lang/perl/perl-5.26.9999.ebuild
@@ -307,6 +307,10 @@ src_prepare() {
local patch
EPATCH_OPTS+=" -p1"
+ if use hppa ; then
+ epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
+ fi
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
diff --git a/dev-lang/perl/perl-5.28.0.ebuild b/dev-lang/perl/perl-5.28.0.ebuild
index a88e2d54acf..13cbdc3c005 100644
--- a/dev-lang/perl/perl-5.28.0.ebuild
+++ b/dev-lang/perl/perl-5.28.0.ebuild
@@ -307,6 +307,10 @@ src_prepare() {
local patch
EPATCH_OPTS+=" -p1"
+ if use hppa ; then
+ epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
+ fi
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
diff --git a/dev-lang/perl/perl-5.28.9999.ebuild b/dev-lang/perl/perl-5.28.9999.ebuild
index a88e2d54acf..13cbdc3c005 100644
--- a/dev-lang/perl/perl-5.28.9999.ebuild
+++ b/dev-lang/perl/perl-5.28.9999.ebuild
@@ -307,6 +307,10 @@ src_prepare() {
local patch
EPATCH_OPTS+=" -p1"
+ if use hppa ; then
+ epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
+ fi
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
next reply other threads:[~2018-12-30 21:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-30 21:26 Andreas K. Hüttel [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-01-20 12:04 [gentoo-commits] repo/gentoo:master commit in: dev-lang/perl/files/, dev-lang/perl/ Sam James
2023-12-28 3:53 Sam James
2023-05-01 21:56 Andreas K. Hüttel
2023-01-19 2:27 Sam James
2021-10-09 14:26 Andreas K. Hüttel
2020-08-07 21:05 Kent Fredric
2020-03-21 22:59 Sergei Trofimovich
2019-04-07 14:10 Andreas K. Hüttel
2018-02-22 23:48 Andreas Hüttel
2017-01-05 9:43 Andreas Hüttel
2016-12-29 16:53 Andreas Hüttel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1546205198.e576790a512945d1884868c55e87721b4d75b56b.dilfridge@gentoo \
--to=dilfridge@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox