GNU bug report logs -
#52309
[PATCH, core-updates-frozen] gnu: helm: Fix build with GCC 9 and later.
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 52309 in the body.
You can then email your comments to 52309 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#52309
; Package
guix-patches
.
(Sun, 05 Dec 2021 18:09:07 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Pierre Langlois <pierre.langlois <at> gmx.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 05 Dec 2021 18:09:07 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Guix!
I see the helm synthesizer doesn't build on core-updates-frozen so
here's a patch, taken from https://github.com/mtytel/helm/pull/233.
Thanks,
Pierre
[0001-gnu-helm-Fix-build-with-GCC-9-and-later.patch (text/x-patch, inline)]
From cfbb5b926d0a5d6278554174aca3237d642bee97 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois <at> gmx.com>
Date: Sat, 20 Nov 2021 14:51:13 +0000
Subject: [PATCH] gnu: helm: Fix build with GCC 9 and later.
* gnu/packages/music.scm (helm)[origin]: Add patch.
* gnu/packages/patches/helm-fix-gcc-9-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
gnu/local.mk | 1 +
gnu/packages/music.scm | 4 +-
.../patches/helm-fix-gcc-9-build.patch | 140 ++++++++++++++++++
3 files changed, 144 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/helm-fix-gcc-9-build.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index a2a8c4a9e5..21b8c70e4d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1243,6 +1243,7 @@ dist_patch_DATA = \
%D%/packages/patches/hdf-eos5-fix-szip.patch \
%D%/packages/patches/hdf-eos5-fortrantests.patch \
%D%/packages/patches/hedgewars-network-bsd.patch \
+ %D%/packages/patches/helm-fix-gcc-9-build.patch \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-cross.patch \
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 28dbf1b624..6d04aae59c 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -6396,7 +6396,9 @@ (define-public helm
(file-name (git-file-name name version))
(sha256
(base32
- "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"))))
+ "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"))
+ ;; Apply GCC 9 fixes from https://github.com/mtytel/helm/pull/233
+ (patches (search-patches "helm-fix-gcc-9-build.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
diff --git a/gnu/packages/patches/helm-fix-gcc-9-build.patch b/gnu/packages/patches/helm-fix-gcc-9-build.patch
new file mode 100644
index 0000000000..f623fef203
--- /dev/null
+++ b/gnu/packages/patches/helm-fix-gcc-9-build.patch
@@ -0,0 +1,140 @@
+From cb611a80bd5a36d31bfc31212ebbf79aa86c6f08 Mon Sep 17 00:00:00 2001
+From: jikstra <jikstra <at> disroot.org>
+Date: Tue, 20 Aug 2019 03:00:51 +0200
+Subject: [PATCH] Backport
+ https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6
+ to the bundled JUCE framework to make helm compile on gcc 9.1 again
+
+---
+ .../juce_graphics/colour/juce_PixelFormats.h | 25 +---------
+ .../native/juce_RenderingHelpers.h | 48 +------------------
+ 2 files changed, 4 insertions(+), 69 deletions(-)
+
+diff --git a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+index 9be9ba09c..3535eab80 100644
+--- a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -105,23 +105,9 @@ class JUCE_API PixelARGB
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return components.a; }
+- forcedinline uint8 getRed() const noexcept { return components.r; }
++ forcedinline uint8 getRed() const noexcept { return components.r; }
+ forcedinline uint8 getGreen() const noexcept { return components.g; }
+- forcedinline uint8 getBlue() const noexcept { return components.b; }
+-
+- #if JUCE_GCC
+- // NB these are here as a workaround because GCC refuses to bind to packed values.
+- forcedinline uint8& getAlpha() noexcept { return comps [indexA]; }
+- forcedinline uint8& getRed() noexcept { return comps [indexR]; }
+- forcedinline uint8& getGreen() noexcept { return comps [indexG]; }
+- forcedinline uint8& getBlue() noexcept { return comps [indexB]; }
+- #else
+- forcedinline uint8& getAlpha() noexcept { return components.a; }
+- forcedinline uint8& getRed() noexcept { return components.r; }
+- forcedinline uint8& getGreen() noexcept { return components.g; }
+- forcedinline uint8& getBlue() noexcept { return components.b; }
+- #endif
+-
++ forcedinline uint8 getBlue() const noexcept { return components.b; }
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+
+@@ -340,9 +326,6 @@ class JUCE_API PixelARGB
+ {
+ uint32 internal;
+ Components components;
+- #if JUCE_GCC
+- uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members
+- #endif
+ };
+ }
+ #ifndef DOXYGEN
+@@ -429,10 +412,6 @@ class JUCE_API PixelRGB
+ forcedinline uint8 getGreen() const noexcept { return g; }
+ forcedinline uint8 getBlue() const noexcept { return b; }
+
+- forcedinline uint8& getRed() noexcept { return r; }
+- forcedinline uint8& getGreen() noexcept { return g; }
+- forcedinline uint8& getBlue() noexcept { return b; }
+-
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+
+diff --git a/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h b/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
+index 1c4cd31ef..29519cb5a 100644
+--- a/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -581,18 +581,10 @@ namespace EdgeTableFillers
+ : destData (image), sourceColour (colour)
+ {
+ if (sizeof (PixelType) == 3 && destData.pixelStride == sizeof (PixelType))
+- {
+ areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen()
+ && sourceColour.getGreen() == sourceColour.getBlue();
+- filler[0].set (sourceColour);
+- filler[1].set (sourceColour);
+- filler[2].set (sourceColour);
+- filler[3].set (sourceColour);
+- }
+ else
+- {
+ areRGBComponentsEqual = false;
+- }
+ }
+
+ forcedinline void setEdgeTableYPos (const int y) noexcept
+@@ -643,7 +635,6 @@ namespace EdgeTableFillers
+ const Image::BitmapData& destData;
+ PixelType* linePixels;
+ PixelARGB sourceColour;
+- PixelRGB filler [4];
+ bool areRGBComponentsEqual;
+
+ forcedinline PixelType* getPixel (const int x) const noexcept
+@@ -658,43 +649,8 @@ namespace EdgeTableFillers
+
+ forcedinline void replaceLine (PixelRGB* dest, const PixelARGB colour, int width) const noexcept
+ {
+- if (destData.pixelStride == sizeof (*dest))
+- {
+- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat..
+- {
+- memset (dest, colour.getRed(), (size_t) width * 3);
+- }
+- else
+- {
+- if (width >> 5)
+- {
+- const int* const intFiller = reinterpret_cast<const int*> (filler);
+-
+- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
+- {
+- dest->set (colour);
+- ++dest;
+- --width;
+- }
+-
+- while (width > 4)
+- {
+- int* d = reinterpret_cast<int*> (dest);
+- *d++ = intFiller[0];
+- *d++ = intFiller[1];
+- *d++ = intFiller[2];
+- dest = reinterpret_cast<PixelRGB*> (d);
+- width -= 4;
+- }
+- }
+-
+- while (--width >= 0)
+- {
+- dest->set (colour);
+- ++dest;
+- }
+- }
+- }
++ if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual)
++ memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
+ else
+ {
+ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))
--
2.34.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#52309
; Package
guix-patches
.
(Mon, 06 Dec 2021 07:06:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 52309 <at> debbugs.gnu.org (full text, mbox):
On Sun, Dec 05, 2021 at 02:35:12PM +0000, Pierre Langlois wrote:
> Hi Guix!
>
> I see the helm synthesizer doesn't build on core-updates-frozen so
> here's a patch, taken from https://github.com/mtytel/helm/pull/233.
>
> Thanks,
> Pierre
>
> From cfbb5b926d0a5d6278554174aca3237d642bee97 Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois <at> gmx.com>
> Date: Sat, 20 Nov 2021 14:51:13 +0000
> Subject: [PATCH] gnu: helm: Fix build with GCC 9 and later.
>
> * gnu/packages/music.scm (helm)[origin]: Add patch.
> * gnu/packages/patches/helm-fix-gcc-9-build.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.
Thanks, please push!
Reply sent
to
Pierre Langlois <pierre.langlois <at> gmx.com>
:
You have taken responsibility.
(Mon, 06 Dec 2021 20:44:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Pierre Langlois <pierre.langlois <at> gmx.com>
:
bug acknowledged by developer.
(Mon, 06 Dec 2021 20:44:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 52309-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Leo Famulari <leo <at> famulari.name> writes:
> On Sun, Dec 05, 2021 at 02:35:12PM +0000, Pierre Langlois wrote:
>> Hi Guix!
>>
>> I see the helm synthesizer doesn't build on core-updates-frozen so
>> here's a patch, taken from https://github.com/mtytel/helm/pull/233.
>>
>> Thanks,
>> Pierre
>>
>
>> From cfbb5b926d0a5d6278554174aca3237d642bee97 Mon Sep 17 00:00:00 2001
>> From: Pierre Langlois <pierre.langlois <at> gmx.com>
>> Date: Sat, 20 Nov 2021 14:51:13 +0000
>> Subject: [PATCH] gnu: helm: Fix build with GCC 9 and later.
>>
>> * gnu/packages/music.scm (helm)[origin]: Add patch.
>> * gnu/packages/patches/helm-fix-gcc-9-build.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Register it.
>
> Thanks, please push!
Thanks! Pushed as 4afacd45460241f58508d037d6ed2b3c5ee0973b
Pierre
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 04 Jan 2022 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 74 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.