diff --git a/recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch b/recipes-musicians/helm/helm/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch similarity index 100% rename from recipes-musicians/helm/files/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch rename to recipes-musicians/helm/helm/0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch diff --git a/recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch b/recipes-musicians/helm/helm/0002-set-VECTORIZE_LOOP-for-gcc.patch similarity index 100% rename from recipes-musicians/helm/files/0002-set-VECTORIZE_LOOP-for-gcc.patch rename to recipes-musicians/helm/helm/0002-set-VECTORIZE_LOOP-for-gcc.patch diff --git a/recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch b/recipes-musicians/helm/helm/0003-use-single-precision-floats-it-performs-much-better.patch similarity index 100% rename from recipes-musicians/helm/files/0003-use-single-precision-floats-it-performs-much-better.patch rename to recipes-musicians/helm/helm/0003-use-single-precision-floats-it-performs-much-better.patch diff --git a/recipes-musicians/helm/helm/0004-Fix-build-with-gcc9.patch b/recipes-musicians/helm/helm/0004-Fix-build-with-gcc9.patch new file mode 100644 index 0000000..b9a9487 --- /dev/null +++ b/recipes-musicians/helm/helm/0004-Fix-build-with-gcc9.patch @@ -0,0 +1,161 @@ +From cee14bbe5a46de8cf0941b10686e84c30f7eaf76 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 1 Aug 2019 22:29:06 +0200 +Subject: [PATCH] Fix build with gcc9 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ported from [1] + +[1] https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6 + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + .../juce_graphics/colour/juce_PixelFormats.h | 33 +++----------- + .../native/juce_RenderingHelpers.h | 44 +------------------ + 2 files changed, 8 insertions(+), 69 deletions(-) + +diff --git a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h +index cb0867cf..dea97a6b 100644 +--- a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h ++++ b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h +@@ -105,22 +105,9 @@ public: + + //============================================================================== + 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 +327,6 @@ private: + { + 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 +@@ -425,13 +409,9 @@ public: + + //============================================================================== + forcedinline uint8 getAlpha() const noexcept { return 0xff; } +- forcedinline uint8 getRed() const noexcept { return r; } ++ forcedinline uint8 getRed() const noexcept { return r; } + 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; } ++ forcedinline uint8 getBlue() const noexcept { return b; } + + //============================================================================== + /** Copies another pixel colour over this one. +@@ -646,11 +626,10 @@ public: + + //============================================================================== + forcedinline uint8 getAlpha() const noexcept { return a; } +- forcedinline uint8& getAlpha() noexcept { return a; } + +- forcedinline uint8 getRed() const noexcept { return 0; } ++ forcedinline uint8 getRed() const noexcept { return 0; } + forcedinline uint8 getGreen() const noexcept { return 0; } +- forcedinline uint8 getBlue() const noexcept { return 0; } ++ forcedinline uint8 getBlue() const noexcept { return 0; } + + //============================================================================== + /** 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 e552758b..6dd943fb 100644 +--- a/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h ++++ b/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h +@@ -585,10 +585,6 @@ namespace EdgeTableFillers + { + 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 + { +@@ -644,7 +640,6 @@ namespace EdgeTableFillers + const Image::BitmapData& destData; + PixelType* linePixels; + PixelARGB sourceColour; +- PixelRGB filler [4]; + bool areRGBComponentsEqual; + + forcedinline PixelType* getPixel (const int x) const noexcept +@@ -659,43 +654,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 (filler); +- +- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0) +- { +- dest->set (colour); +- ++dest; +- --width; +- } +- +- while (width > 4) +- { +- int* d = reinterpret_cast (dest); +- *d++ = intFiller[0]; +- *d++ = intFiller[1]; +- *d++ = intFiller[2]; +- dest = reinterpret_cast (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.21.0 + diff --git a/recipes-musicians/helm/helm_git.bb b/recipes-musicians/helm/helm_git.bb index ace05f4..68cb875 100644 --- a/recipes-musicians/helm/helm_git.bb +++ b/recipes-musicians/helm/helm_git.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://tytel.org/helm/" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -inherit qemu-ext distro_features_check gtk-icon-cache pack_audio_plugins +inherit dos2unix qemu-ext distro_features_check gtk-icon-cache pack_audio_plugins REQUIRED_DISTRO_FEATURES = "x11" @@ -25,6 +25,7 @@ SRC_URI += " \ file://0001-do-not-create-ttl-files-it-won-t-work-fo-cross.patch \ file://0002-set-VECTORIZE_LOOP-for-gcc.patch \ file://0003-use-single-precision-floats-it-performs-much-better.patch \ + file://0004-Fix-build-with-gcc9.patch \ " SRCREV = "927d2ed27f71a735c3ff2a1226ce3129d1544e7e" PV = "0.9.0"