From 0721cd5f0ea576eadd40dfcbcef9dec65c931892 Mon Sep 17 00:00:00 2001
From: Petr Písař <ppi...@redhat.com>
Date: Aug 09 2017 14:10:08 +0000
Subject: Fix compiler warnings in code generated by ExtUtils::Constant


---

diff --git 
a/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch 
b/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
new file mode 100644
index 0000000..d5593b6
--- /dev/null
+++ b/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
@@ -0,0 +1,45 @@
+From 357c35e6f18e65f372e7a1b22ee39a3c7c9e5810 Mon Sep 17 00:00:00 2001
+From: Robin Barker <rmbar...@cpan.org>
+Date: Mon, 17 Dec 2012 18:20:14 +0100
+Subject: [PATCH] Avoid compiler warnings due to mismatched types in *printf
+ format strings.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc (and probably others) was warning about a mismatch for between `int`
+(implied by the format %d) and the actual type passed, `line_t`. Avoid this
+by explicitly casting to UV, and using UVuf.
+
+CPAN #63832
+
+Signed-off-by: Petr Písař <ppi...@redhat.com>
+---
+ cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm 
b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+index 545d322..c7e6d05 100644
+--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+@@ -629,13 +629,14 @@ EOA
+       if ((C_ARRAY_LENGTH(values_for_notfound) > 1)
+           ? hv_exists_ent(${c_subname}_missing, sv, 0) : 0) {
+           sv = newSVpvf("Your vendor has not defined $package_sprintf_safe 
macro %" SVf
+-                        ", used at %" COP_FILE_F " line %d\\n", sv,
+-                        COP_FILE(cop), CopLINE(cop));
++                        ", used at %" COP_FILE_F " line %" UVuf "\\n", 
++                        sv, COP_FILE(cop), (UV)CopLINE(cop));
+       } else
+ #endif
+       {
+           sv = newSVpvf("%"SVf" is not a valid $package_sprintf_safe macro at 
%"
+-                        COP_FILE_F " line %d\\n", sv, COP_FILE(cop), 
CopLINE(cop));
++                        COP_FILE_F " line %" UVuf "\\n",
++                        sv, COP_FILE(cop), (UV)CopLINE(cop));
+       }
+       croak_sv(sv_2mortal(sv));
+ EOC
+-- 
+2.9.4
+
diff --git a/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch 
b/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
new file mode 100644
index 0000000..e330518
--- /dev/null
+++ b/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
@@ -0,0 +1,69 @@
+From 389f3ef2fdfbba2c2816e7334a69a5f540c0a33d Mon Sep 17 00:00:00 2001
+From: David Mitchell <da...@iabyn.com>
+Date: Mon, 15 Dec 2014 16:14:13 +0000
+Subject: [PATCH] EU::Constant: avoid 'uninit' warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The code generated by ExtUtils::Constant can look something like:
+
+static int
+constant (..., IV *iv_return) {
+   switch (...) {
+     case ...:
+       *iv_return = ...;
+       return PERL_constant_ISIV;
+     ...
+  }
+}
+
+{
+    int type;
+    IV iv;
+    type = constant(..., &iv);
+    switch (type) {
+        case PERL_constant_ISIV:
+            PUSHi(iv);
+    ...
+    }
+}
+
+and the compiler isn't clever enough to realise that the value of iv
+is only used in the code path where its been set.
+
+So initialise it to zero to shut gcc up. Ditto nv and pv.
+
+Signed-off-by: Petr Písař <ppi...@redhat.com>
+---
+ cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm 
b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
+index 0dc9258..cf0e1ca 100644
+--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
+@@ -198,17 +198,17 @@ $XS_subname(sv)
+ EOT
+ 
+   if ($params->{IV}) {
+-    $xs .= "  IV              iv;\n";
++    $xs .= "  IV              iv = 0; /* avoid uninit var warning */\n";
+   } else {
+     $xs .= "  /* IV\t\tiv;\tUncomment this if you need to return IVs */\n";
+   }
+   if ($params->{NV}) {
+-    $xs .= "  NV              nv;\n";
++    $xs .= "  NV              nv = 0.0; /* avoid uninit var warning */\n";
+   } else {
+     $xs .= "  /* NV\t\tnv;\tUncomment this if you need to return NVs */\n";
+   }
+   if ($params->{PV}) {
+-    $xs .= "  const char      *pv;\n";
++    $xs .= "  const char      *pv = NULL; /* avoid uninit var warning */\n";
+   } else {
+     $xs .=
+       "       /* const char\t*pv;\tUncomment this if you need to return PVs 
*/\n";
+-- 
+2.9.4
+
diff --git a/perl.spec b/perl.spec
index 868fda7..954398a 100644
--- a/perl.spec
+++ b/perl.spec
@@ -216,6 +216,14 @@ Patch53:        
perl-5.27.1-perl-131597-ensure-the-GV-slot-is-filled-for-our-foo
 # RT#130907 in upstream after 5.27.1
 Patch54:        perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch
 
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#63832,
+# in upstream after 5.27.2
+Patch55:        
perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
+
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN 
RT#101487,
+# in upstream after 5.27.2
+Patch56:        perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
+
 # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048
 Patch200:       
perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
 
@@ -2800,6 +2808,8 @@ Perl extension for Version Objects
 %patch52 -p1
 %patch53 -p1
 %patch54 -p1
+%patch55 -p1
+%patch56 -p1
 %patch200 -p1
 %patch201 -p1
 
@@ -2839,6 +2849,8 @@ perl -x patchlevel.h \
     'Fedora Patch52: Fix executing arybase::_tie_it() in Safe compartement 
(RT#131588)' \
     'Fedora Patch53: Fix handling attribute specification on our variables 
(RT#131597)' \
     'Fedora Patch54: Fix splitting non-ASCII strings if unicode_strings 
feature is enabled (RT#130907)' \
+    'Fedora Patch55: Fix compiler warnings in code generated by 
ExtUtils::Constant (CPAN RT#63832)' \
+    'Fedora Patch56: Fix compiler warnings in code generated by 
ExtUtils::Constant (CPAN RT#101487)' \
     'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on 
Linux' \
     'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \
     %{nil}
@@ -5134,6 +5146,8 @@ popd
 - Fix executing arybase::_tie_it() in Safe compartement (RT#131588)
 - Fix handling attribute specification on our variables (RT#131597)
 - Fix splitting non-ASCII strings if unicode_strings feature is enabled 
(RT#130907)
+- Fix compiler warnings in code generated by ExtUtils::Constant
+  (CPAN RT#63832, CPAN RT#101487)
 
 * Sat Jul 29 2017 Igor Gnatenko <ignatenkobr...@fedoraproject.org> - 
4:5.26.0-397
 - Enable separate debuginfo back


        
https://src.fedoraproject.org/rpms/perl/c/0721cd5f0ea576eadd40dfcbcef9dec65c931892?branch=master
_______________________________________________
perl-devel mailing list -- perl-devel@lists.fedoraproject.org
To unsubscribe send an email to perl-devel-le...@lists.fedoraproject.org

Reply via email to