diff --git a/srcpkgs/helm/patches/gcc9.patch b/srcpkgs/helm/patches/gcc9.patch new file mode 100644 index 0000000000..67a7b7b44b --- /dev/null +++ b/srcpkgs/helm/patches/gcc9.patch @@ -0,0 +1,161 @@ +From 4e0adb2af8b424c43d22bd431011c9a6c57d36b6 Mon Sep 17 00:00:00 2001 +From: Tom Poole +Date: Tue, 30 Apr 2019 17:11:24 +0100 +Subject: [PATCH] GCC 9 compatibility fixes + +--- + .../juce_graphics/colour/juce_PixelFormats.h | 34 +++--------- + .../native/juce_RenderingHelpers.h | 52 ++----------------- + 2 files changed, 9 insertions(+), 77 deletions(-) + +diff --git a/modules/juce_graphics/colour/juce_PixelFormats.h b/modules/juce_graphics/colour/juce_PixelFormats.h +index c57ad53c635..934c61c4781 100644 +--- JUCE/modules/juce_graphics/colour/juce_PixelFormats.h ++++ JUCE/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 +--- JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h ++++ 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,47 +649,10 @@ 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)) +- } ++ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour)); + } + + forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept diff --git a/srcpkgs/helm/patches/kill-simdflags.patch b/srcpkgs/helm/patches/kill-simdflags.patch new file mode 100644 index 0000000000..b13fd95c57 --- /dev/null +++ b/srcpkgs/helm/patches/kill-simdflags.patch @@ -0,0 +1,21 @@ +--- Makefile ++++ Makefile +@@ -18,18 +18,6 @@ ifdef DPKG + PDEBLDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) + endif + +-MACHINE := $(shell sh -c 'uname -m 2> /dev/null || echo not') +-ifneq (,$(findstring aarch,$(MACHINE))) +- SIMDFLAGS := -march=armv8-a -mtune=cortex-a53 +-else +-ifneq (,$(findstring arm,$(MACHINE))) +- SIMDFLAGS := -march=armv8-a -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard +-else +- SIMDFLAGS := -msse2 +-endif +-endif +- +- + PROGRAM = helm + BIN = $(DESTDIR)/usr/bin + BINFILE = $(BIN)/$(PROGRAM) diff --git a/srcpkgs/helm/template b/srcpkgs/helm/template index 0f8a4a250b..e7d7b59c10 100644 --- a/srcpkgs/helm/template +++ b/srcpkgs/helm/template @@ -1,15 +1,15 @@ -# Template file for 'helm'. +# Template file for 'helm' pkgname=helm version=0.9.0 -revision=2 +revision=3 build_style=gnu-makefile hostmakedepends="pkg-config" makedepends="alsa-lib-devel libcurl-devel libX11-devel libXext-devel libXinerama-devel freetype-devel MesaLib-devel jack-devel libXcursor-devel" -maintainer="Olga Ustuzhanina " short_desc="Polyphonic synth with lots of modulation" +maintainer="Olga Ustuzhanina " +license="GPL-3.0-or-later" homepage="http://tytel.org/helm" -license="GPL-3" distfiles="https://github.com/mtytel/helm/archive/v${version}.tar.gz" checksum=4004c11fd1d773cc2a12adb5336873bc86c5ecbd370b8da2820fed6ef5ec58ad -nocross="Uses uname -m to set SIMDFLAGS. Should be based on the target, not the host, architecture" +nocross="./lv2_ttl_generator: ./lv2_ttl_generator: cannot execute binary file"