Fix compiler warnings in code generated by ExtUtils::Constant
This commit is contained in:
parent
a0ea65ae26
commit
0721cd5f0e
@ -0,0 +1,45 @@
|
||||
From 357c35e6f18e65f372e7a1b22ee39a3c7c9e5810 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Barker <RMBarker@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ř <ppisar@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
|
||||
|
69
perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
Normal file
69
perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From 389f3ef2fdfbba2c2816e7334a69a5f540c0a33d Mon Sep 17 00:00:00 2001
|
||||
From: David Mitchell <davem@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ř <ppisar@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
|
||||
|
14
perl.spec
14
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 <ignatenkobrain@fedoraproject.org> - 4:5.26.0-397
|
||||
- Enable separate debuginfo back
|
||||
|
Loading…
Reference in New Issue
Block a user