Fix FTBFS with GCC 12 (#2047123)
This commit is contained in:
parent
d4f64353cd
commit
a378d6e101
27
28b84a1e96a3f061f4ba56d64829206dbd0628c0.patch
Normal file
27
28b84a1e96a3f061f4ba56d64829206dbd0628c0.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From 28b84a1e96a3f061f4ba56d64829206dbd0628c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vadim Zeitlin <vadim@wxwidgets.org>
|
||||||
|
Date: Thu, 27 Jan 2022 15:30:22 +0100
|
||||||
|
Subject: [PATCH] Avoid gcc 12 -Warith-conversion in
|
||||||
|
wxImageHistogram::MakeKey()
|
||||||
|
|
||||||
|
Explicitly convert the operands to unsigned because we do actually want
|
||||||
|
the result to be unsigned here.
|
||||||
|
|
||||||
|
Co-Authored-By: Scott Talbert <swt@techie.net>
|
||||||
|
---
|
||||||
|
include/wx/image.h | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/include/wx/image.h b/include/wx/image.h
|
||||||
|
index 682e952f69be..35fd263e201d 100644
|
||||||
|
--- a/include/wx/image.h
|
||||||
|
+++ b/include/wx/image.h
|
||||||
|
@@ -210,7 +210,7 @@ class wxImageHistogram : public wxImageHistogramBase
|
||||||
|
unsigned char g,
|
||||||
|
unsigned char b)
|
||||||
|
{
|
||||||
|
- return (r << 16) | (g << 8) | b;
|
||||||
|
+ return ((unsigned)r << 16) | ((unsigned)g << 8) | (unsigned)b;
|
||||||
|
}
|
||||||
|
|
||||||
|
// find first colour that is not used in the image and has higher
|
141
37a4bf86937e4e18c5cce70913b6b90e39df20cc.patch
Normal file
141
37a4bf86937e4e18c5cce70913b6b90e39df20cc.patch
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
From 37a4bf86937e4e18c5cce70913b6b90e39df20cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vadim Zeitlin <vadim@wxwidgets.org>
|
||||||
|
Date: Thu, 27 Jan 2022 15:46:42 +0100
|
||||||
|
Subject: [PATCH] Add wxColour::Get{Red,Green,Blue,Alpha}() to avoid gcc 12
|
||||||
|
warnings
|
||||||
|
|
||||||
|
These functions return the colour components as unsigned int and so
|
||||||
|
promote to this type in arithmetic expressions, unlike unsigned char
|
||||||
|
returned by the existing accessors without the "Get" prefix, which
|
||||||
|
promotes to (signed) int and results in gcc 12 -Warith-conversion
|
||||||
|
warnings when the result is then converted to unsigned, as it happened
|
||||||
|
in our own wxColour::GetRGB() and GetRGBA() functions and would probably
|
||||||
|
happen in a lot of code outside wx, which could also be updated to use
|
||||||
|
the new functions instead of inserting casts.
|
||||||
|
---
|
||||||
|
include/wx/colour.h | 11 ++++++++--
|
||||||
|
interface/wx/colour.h | 51 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 60 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/include/wx/colour.h b/include/wx/colour.h
|
||||||
|
index 4e9e0a185407..22a145ab22d1 100644
|
||||||
|
--- a/include/wx/colour.h
|
||||||
|
+++ b/include/wx/colour.h
|
||||||
|
@@ -125,6 +125,13 @@ class WXDLLIMPEXP_CORE wxColourBase : public
|
||||||
|
virtual ChannelType Alpha() const
|
||||||
|
{ return wxALPHA_OPAQUE ; }
|
||||||
|
|
||||||
|
+ // These getters return the values as unsigned int, which avoids promoting
|
||||||
|
+ // them to (signed) int in arithmetic expressions, unlike the ones above.
|
||||||
|
+ unsigned int GetRed() const { return Red(); }
|
||||||
|
+ unsigned int GetGreen() const { return Green(); }
|
||||||
|
+ unsigned int GetBlue() const { return Blue(); }
|
||||||
|
+ unsigned int GetAlpha() const { return Alpha(); }
|
||||||
|
+
|
||||||
|
virtual bool IsSolid() const
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@@ -147,10 +154,10 @@ class WXDLLIMPEXP_CORE wxColourBase : public
|
||||||
|
}
|
||||||
|
|
||||||
|
wxUint32 GetRGB() const
|
||||||
|
- { return Red() | (Green() << 8) | (Blue() << 16); }
|
||||||
|
+ { return GetRed() | (GetGreen() << 8) | (GetBlue() << 16); }
|
||||||
|
|
||||||
|
wxUint32 GetRGBA() const
|
||||||
|
- { return Red() | (Green() << 8) | (Blue() << 16) | (Alpha() << 24); }
|
||||||
|
+ { return GetRed() | (GetGreen() << 8) | (GetBlue() << 16) | (GetAlpha() << 24); }
|
||||||
|
|
||||||
|
#if !wxCOLOUR_IS_GDIOBJECT
|
||||||
|
virtual bool IsOk() const= 0;
|
||||||
|
diff --git a/interface/wx/colour.h b/interface/wx/colour.h
|
||||||
|
index 32424f1123c7..9cc0ac7c9dec 100644
|
||||||
|
--- a/interface/wx/colour.h
|
||||||
|
+++ b/interface/wx/colour.h
|
||||||
|
@@ -34,6 +34,20 @@ const unsigned char wxALPHA_OPAQUE = 0xff;
|
||||||
|
|
||||||
|
You can retrieve the current system colour settings with wxSystemSettings.
|
||||||
|
|
||||||
|
+
|
||||||
|
+ @section colour_accessors Channel Accessor Functions
|
||||||
|
+
|
||||||
|
+ Note that this class provides pairs of functions for each of the colour
|
||||||
|
+ channels, i.e. red, green, blue and alpha values. The one word functions
|
||||||
|
+ Red(), Green(), Blue() and Alpha() return the values of type @c unsigned @c
|
||||||
|
+ char, while GetRed(), GetGreen(), GetBlue() and GetAlpha() returns the same
|
||||||
|
+ value as @c unsigned @c int. According to the C++ integer promotion rules,
|
||||||
|
+ the result of any arithmetic expression involving the former will be
|
||||||
|
+ (signed) @c int, while that of the latter will be @c unsigned, which is
|
||||||
|
+ what would be commonly expected, so the latter family of functions should
|
||||||
|
+ be typically preferred (but they are only available since wxWidgets 3.1.6).
|
||||||
|
+
|
||||||
|
+
|
||||||
|
@library{wxcore}
|
||||||
|
@category{gdi}
|
||||||
|
|
||||||
|
@@ -94,14 +108,47 @@ class wxColour : public wxObject
|
||||||
|
/**
|
||||||
|
Returns the alpha value, on platforms where alpha is not yet supported, this
|
||||||
|
always returns wxALPHA_OPAQUE.
|
||||||
|
+
|
||||||
|
+ @see GetAlpha()
|
||||||
|
*/
|
||||||
|
virtual unsigned char Alpha() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the blue intensity.
|
||||||
|
+
|
||||||
|
+ @see GetBlue()
|
||||||
|
*/
|
||||||
|
virtual unsigned char Blue() const;
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ Returns the alpha value, on platforms where alpha is not yet supported, this
|
||||||
|
+ always returns wxALPHA_OPAQUE.
|
||||||
|
+
|
||||||
|
+ @since 3.1.6
|
||||||
|
+ */
|
||||||
|
+ unsigned int GetAlpha() const;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ Returns the blue intensity as unsigned int.
|
||||||
|
+
|
||||||
|
+ @since 3.1.6
|
||||||
|
+ */
|
||||||
|
+ unsigned int GetBlue() const;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ Returns the green intensity as unsigned int.
|
||||||
|
+
|
||||||
|
+ @since 3.1.6
|
||||||
|
+ */
|
||||||
|
+ unsigned int GetGreen() const;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ Returns the red intensity as unsigned int.
|
||||||
|
+
|
||||||
|
+ @since 3.1.6
|
||||||
|
+ */
|
||||||
|
+ unsigned int GetRed() const;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
Converts this colour to a wxString using the given flags.
|
||||||
|
|
||||||
|
@@ -184,6 +231,8 @@ class wxColour : public wxObject
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the green intensity.
|
||||||
|
+
|
||||||
|
+ @see GetGreen()
|
||||||
|
*/
|
||||||
|
virtual unsigned char Green() const;
|
||||||
|
|
||||||
|
@@ -195,6 +244,8 @@ class wxColour : public wxObject
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the red intensity.
|
||||||
|
+
|
||||||
|
+ @see GetRed()
|
||||||
|
*/
|
||||||
|
virtual unsigned char Red() const;
|
||||||
|
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Name: wxGTK
|
Name: wxGTK
|
||||||
Version: 3.1.5
|
Version: 3.1.5
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: GTK port of the wxWidgets GUI library
|
Summary: GTK port of the wxWidgets GUI library
|
||||||
License: wxWidgets
|
License: wxWidgets
|
||||||
URL: https://www.wxwidgets.org/
|
URL: https://www.wxwidgets.org/
|
||||||
@ -22,6 +22,8 @@ Patch3: gcc11_1.patch
|
|||||||
Patch4: gcc11_2.patch
|
Patch4: gcc11_2.patch
|
||||||
Patch5: gcc11_3.patch
|
Patch5: gcc11_3.patch
|
||||||
Patch6: https://github.com/wxWidgets/wxWidgets/commit/d68c3709e49b967272b0794b0dd30e57e46326e8.patch
|
Patch6: https://github.com/wxWidgets/wxWidgets/commit/d68c3709e49b967272b0794b0dd30e57e46326e8.patch
|
||||||
|
Patch7: https://github.com/wxWidgets/wxWidgets/commit/28b84a1e96a3f061f4ba56d64829206dbd0628c0.patch
|
||||||
|
Patch8: https://github.com/wxWidgets/wxWidgets/commit/37a4bf86937e4e18c5cce70913b6b90e39df20cc.patch
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -305,6 +307,9 @@ fi
|
|||||||
%doc html
|
%doc html
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 28 2022 Scott Talbert <swt@techie.net> - 3.1.5-5
|
||||||
|
- Fix FTBFS with GCC 12 (#2047123)
|
||||||
|
|
||||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.5-4
|
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.5-4
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user