Upgrade to 1.56 as provided in perl-5.25.12

This commit is contained in:
Petr Písař 2017-05-11 13:07:41 +02:00
parent 2fc6f3c708
commit 61b1ec670f
2 changed files with 49 additions and 29 deletions

View File

@ -1,12 +1,13 @@
%global cpan_version 1.55
Name: perl-threads-shared
Version: 1.55
Release: 2%{?dist}
Version: 1.56
Release: 1%{?dist}
Summary: Perl extension for sharing data structures between threads
License: GPL+ or Artistic
URL: http://search.cpan.org/dist/threads-shared/
Source0: http://www.cpan.org/authors/id/J/JD/JDHEDDEN/threads-shared-%{version}.tar.gz
# Fix arenas allocation, RT#131124, in perl-5.25.12
Patch0: threads-shared-1.55-threads-shared-alloc-arenas-with-correct-context.patch
Source0: http://www.cpan.org/authors/id/J/JD/JDHEDDEN/threads-shared-%{cpan_version}.tar.gz
# Unbudled from perl-5.25.12
Patch0: threads-shared-1.55-Upgrade-to-1.56.patch
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: make
@ -46,8 +47,8 @@ you to share variables across different threads (and pseudo-forks on
Win32). It is used together with the threads module.
%prep
%setup -q -n threads-shared-%{version}
%patch0 -p3
%setup -q -n threads-shared-%{cpan_version}
%patch0 -p1
%build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 OPTIMIZE="$RPM_OPT_FLAGS"
@ -68,6 +69,9 @@ make test
%{_mandir}/man3/*
%changelog
* Thu May 11 2017 Petr Pisar <ppisar@redhat.com> - 1.56-1
- Upgrade to 1.56 as provided in perl-5.25.12
* Fri Apr 21 2017 Petr Pisar <ppisar@redhat.com> - 1.55-2
- Fix arenas allocation (RT#131124)

View File

@ -1,30 +1,46 @@
From defb77b559d3c08f94e6db14937a91a4cac8e204 Mon Sep 17 00:00:00 2001
From: David Mitchell <davem@iabyn.com>
Date: Fri, 14 Apr 2017 10:51:56 +0100
Subject: [PATCH] threads::shared: alloc arenas with correct context
From c7f8a613ce96ab9eb7472dfce9beba86c28a4031 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Thu, 11 May 2017 13:03:59 +0200
Subject: [PATCH] Upgrade to 1.56
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RT #131124
In a couple of places in shared.xs, it calls sv_newmortal() with
a perl context different from that currently set by PERL_SET_CONTEXT().
If sv_newmortal() happens to trigger the malloc of a new SV HEAD arena,
then under PERL_TRACK_MEMPOOL, this will cause panics when the arena is
freed or realloced.
Petr Písař: Ported to 1.55 to not increase version to 1.56.
Unbundled from perl-5.25.12.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
dist/threads-shared/shared.xs | 6 ++++--
dist/threads-shared/t/object2.t | 24 +++++++++++++++++++++++-
lib/threads/shared.pm | 4 ++--
shared.xs | 6 ++++--
t/object2.t | 24 +++++++++++++++++++++++-
3 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/dist/threads-shared/shared.xs b/dist/threads-shared/shared.xs
diff --git a/lib/threads/shared.pm b/lib/threads/shared.pm
index 5a203b0..73c4dd9 100644
--- a/lib/threads/shared.pm
+++ b/lib/threads/shared.pm
@@ -7,7 +7,7 @@ use warnings;
use Scalar::Util qw(reftype refaddr blessed);
-our $VERSION = '1.55'; # Please update the pod, too.
+our $VERSION = '1.56'; # Please update the pod, too.
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -195,7 +195,7 @@ threads::shared - Perl extension for sharing data structures between threads
=head1 VERSION
-This document describes threads::shared version 1.55
+This document describes threads::shared version 1.56
=head1 SYNOPSIS
diff --git a/shared.xs b/shared.xs
index dab5e36..3c1b5e6 100644
--- a/dist/threads-shared/shared.xs
+++ b/dist/threads-shared/shared.xs
--- a/shared.xs
+++ b/shared.xs
@@ -1104,8 +1104,9 @@ sharedsv_array_mg_CLEAR(pTHX_ SV *sv, MAGIC *mg)
if (!sv) continue;
if ( (SvOBJECT(sv) || (SvROK(sv) && (sv = SvRV(sv))))
@ -47,10 +63,10 @@ index dab5e36..3c1b5e6 100644
sv_upgrade(tmp, SVt_RV);
get_RV(tmp, sv);
PERL_SET_CONTEXT((aTHX = PL_sharedsv_space));
diff --git a/dist/threads-shared/t/object2.t b/dist/threads-shared/t/object2.t
diff --git a/t/object2.t b/t/object2.t
index 3d795b9..31c3797 100644
--- a/dist/threads-shared/t/object2.t
+++ b/dist/threads-shared/t/object2.t
--- a/t/object2.t
+++ b/t/object2.t
@@ -17,7 +17,7 @@ use ExtUtils::testlib;
BEGIN {
@ -90,5 +106,5 @@ index 3d795b9..31c3797 100644
# EOF
--
2.7.4
2.9.3