diff options
author | JP Cimalando | 2019-11-24 06:15:40 +0100 |
---|---|---|
committer | JP Cimalando | 2019-11-24 06:15:40 +0100 |
commit | 14a9080c55ceb57428903b1608f2c8d91ab9650f (patch) | |
tree | dc5c74a1adeb9b6f40c9c8ff258ce24b23e4d048 | |
parent | c32a6879d41cc5917325c0270b231e56352af174 (diff) | |
download | aur-14a9080c55ceb57428903b1608f2c8d91ab9650f.tar.gz |
Add the JUCE patch for gcc9
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 9 | ||||
-rw-r--r-- | juce-gcc9.patch | 151 |
3 files changed, 160 insertions, 4 deletions
@@ -1,7 +1,7 @@ pkgbase = hybridreverb2-git pkgdesc = Hybrid impulse convolution reverb, available as LV2 and VST pkgver = r92.6beac8e - pkgrel = 1 + pkgrel = 2 url = https://github.com/jpcima/HybridReverb2 arch = i686 arch = x86_64 @@ -23,9 +23,11 @@ pkgbase = hybridreverb2-git source = git+https://github.com/jpcima/HybridReverb2.git source = git+https://github.com/jpcima/JUCE.git source = RIR-1.0.0.zip::https://github.com/jpcima/HybridReverb2-impulse-response-database/archive/v1.0.0.zip + source = juce-gcc9.patch sha256sums = SKIP sha256sums = SKIP sha256sums = 8ada57a590e6b04c272312874c67656ccf7e3de71b2cc7dbaadf53880fb77fd7 + sha256sums = 52b9e65cd0f2bf55b9f32b66bcec292d8d537d157c26e6cf8fb5b1d9c5b39640 pkgname = hybridreverb2-git @@ -3,7 +3,7 @@ pkgname=hybridreverb2-git _pkgname=HybridReverb2 pkgver=r92.6beac8e _rirver=1.0.0 -pkgrel=1 +pkgrel=2 epoch= pkgdesc="Hybrid impulse convolution reverb, available as LV2 and VST" arch=('i686' 'x86_64') @@ -23,11 +23,13 @@ install= changelog= source=("git+https://github.com/jpcima/$_pkgname.git" "git+https://github.com/jpcima/JUCE.git" - "RIR-$_rirver.zip::https://github.com/jpcima/HybridReverb2-impulse-response-database/archive/v$_rirver.zip") + "RIR-$_rirver.zip::https://github.com/jpcima/HybridReverb2-impulse-response-database/archive/v$_rirver.zip" + 'juce-gcc9.patch') noextract=("RIR-$_rirver.zip") sha256sums=('SKIP' 'SKIP' - '8ada57a590e6b04c272312874c67656ccf7e3de71b2cc7dbaadf53880fb77fd7') + '8ada57a590e6b04c272312874c67656ccf7e3de71b2cc7dbaadf53880fb77fd7' + '52b9e65cd0f2bf55b9f32b66bcec292d8d537d157c26e6cf8fb5b1d9c5b39640') validpgpkeys=() pkgver() { @@ -40,6 +42,7 @@ prepare() { git submodule init git config submodule.Thirdparty/JUCE.url "$srcdir"/JUCE git submodule update + patch -Np1 -i "$srcdir"/juce-gcc9.patch -d Thirdparty/JUCE } build() { diff --git a/juce-gcc9.patch b/juce-gcc9.patch new file mode 100644 index 000000000000..864ca289ef09 --- /dev/null +++ b/juce-gcc9.patch @@ -0,0 +1,151 @@ +diff --git a/modules/juce_graphics/colour/juce_PixelFormats.h b/modules/juce_graphics/colour/juce_PixelFormats.h +index c57ad53c635..934c61c4781 100644 +--- a/modules/juce_graphics/colour/juce_PixelFormats.h ++++ b/modules/juce_graphics/colour/juce_PixelFormats.h +@@ -107,22 +107,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. +@@ -341,9 +328,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 +@@ -428,13 +412,9 @@ class JUCE_API PixelRGB + + //============================================================================== + 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. +@@ -651,11 +631,9 @@ class JUCE_API PixelAlpha + + //============================================================================== + 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/modules/juce_graphics/native/juce_RenderingHelpers.h b/modules/juce_graphics/native/juce_RenderingHelpers.h +index b8137ac4d04..10bd64e1459 100644 +--- a/modules/juce_graphics/native/juce_RenderingHelpers.h ++++ b/modules/juce_graphics/native/juce_RenderingHelpers.h +@@ -577,18 +577,10 @@ namespace EdgeTableFillers + : destData (image), sourceColour (colour) + { + if (sizeof (PixelType) == 3 && (size_t) 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 (int y) noexcept +@@ -670,7 +662,6 @@ namespace EdgeTableFillers + const Image::BitmapData& destData; + PixelType* linePixels; + PixelARGB sourceColour; +- PixelRGB filler[4]; + bool areRGBComponentsEqual; + + forcedinline PixelType* getPixel (int x) const noexcept +@@ -685,47 +676,10 @@ namespace EdgeTableFillers + + forcedinline void replaceLine (PixelRGB* dest, PixelARGB colour, int width) const noexcept + { +- if ((size_t) destData.pixelStride == sizeof (*dest)) +- { +- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat.. +- { +- memset ((void*) dest, colour.getRed(), (size_t) width * 3); +- } +- else +- { +- if (width >> 5) +- { +- auto intFiller = reinterpret_cast<const int*> (filler); +- +- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0) +- { +- dest->set (colour); +- ++dest; +- --width; +- } +- +- while (width > 4) +- { +- auto 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)) +- } ++ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour)); + } + + forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept |