aboutsummaryrefslogtreecommitdiffstats
path: root/community/audiofile/gcc8-build-fixes.patch
diff options
context:
space:
mode:
authorBart Ribbers <bribbers@disroot.org>2019-12-27 18:09:04 +0100
committerLeo <thinkabit.ukim@gmail.com>2019-12-27 18:18:58 +0100
commit6669804e79248fc65f8d16650f62bb9b2b500332 (patch)
treeb25b63b80cc91da68a5346f3af139a255dcca79d /community/audiofile/gcc8-build-fixes.patch
parentdfaedffccc5529ee823295fe81ba9d6dca97dce7 (diff)
downloadaports-6669804e79248fc65f8d16650f62bb9b2b500332.tar.bz2
aports-6669804e79248fc65f8d16650f62bb9b2b500332.tar.xz
community/audiofile: move from testing
Diffstat (limited to 'community/audiofile/gcc8-build-fixes.patch')
-rw-r--r--community/audiofile/gcc8-build-fixes.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/community/audiofile/gcc8-build-fixes.patch b/community/audiofile/gcc8-build-fixes.patch
new file mode 100644
index 0000000000..02d96f1985
--- /dev/null
+++ b/community/audiofile/gcc8-build-fixes.patch
@@ -0,0 +1,127 @@
+From 308571e254ad30101be8c1247d2b0b64cf488386 Mon Sep 17 00:00:00 2001
+From: Michael Schwendt <mschwendt@fedoraproject.org>
+Date: Wed, 3 Feb 2016 21:56:11 +0100
+Subject: [PATCH] left shifting a negative int is undefined behaviour /
+ narrowing conversion issues / for GCC 6
+
+fix left shifts for 32-bit to avoid int overflow
+
+avoid int overflow too
+
+char on ARM is unsigned by default
+---
+ libaudiofile/modules/SimpleModule.h | 2 +-
+ test/FloatToInt.cpp | 2 +-
+ test/IntToFloat.cpp | 2 +-
+ test/NeXT.cpp | 14 +++++++-------
+ test/Sign.cpp | 2 +-
+ 5 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h
+index 03c6c69..e4cc138 100644
+--- a/libaudiofile/modules/SimpleModule.h
++++ b/libaudiofile/modules/SimpleModule.h
+@@ -123,7 +123,7 @@ struct signConverter
+ typedef typename IntTypes<Format>::UnsignedType UnsignedType;
+
+ static const int kScaleBits = (Format + 1) * CHAR_BIT - 1;
+- static const int kMinSignedValue = -1 << kScaleBits;
++ static const int kMinSignedValue = 0-(1U<<kScaleBits);
+
+ struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType>
+ {
+diff --git a/test/FloatToInt.cpp b/test/FloatToInt.cpp
+index 0d179a8..bf491b2 100644
+--- a/test/FloatToInt.cpp
++++ b/test/FloatToInt.cpp
+@@ -115,7 +115,7 @@ TEST_F(FloatToIntTest, Int16)
+ EXPECT_EQ(readData[i], expectedData[i]);
+ }
+
+-static const int32_t kMinInt24 = -1<<23;
++static const int32_t kMinInt24 = 0-(1U<<23);
+ static const int32_t kMaxInt24 = (1<<23) - 1;
+
+ TEST_F(FloatToIntTest, Int24)
+diff --git a/test/IntToFloat.cpp b/test/IntToFloat.cpp
+index b716635..1d91b58 100644
+--- a/test/IntToFloat.cpp
++++ b/test/IntToFloat.cpp
+@@ -117,7 +117,7 @@ TEST_F(IntToFloatTest, Int16)
+ EXPECT_EQ(readData[i], expectedData[i]);
+ }
+
+-static const int32_t kMinInt24 = -1<<23;
++static const int32_t kMinInt24 = 0-(1U<<23);
+ static const int32_t kMaxInt24 = (1<<23) - 1;
+
+ TEST_F(IntToFloatTest, Int24)
+diff --git a/test/NeXT.cpp b/test/NeXT.cpp
+index 7e39850..a37cea1 100644
+--- a/test/NeXT.cpp
++++ b/test/NeXT.cpp
+@@ -37,13 +37,13 @@
+
+ #include "TestUtilities.h"
+
+-const char kDataUnspecifiedLength[] =
++const signed char kDataUnspecifiedLength[] =
+ {
+ '.', 's', 'n', 'd',
+ 0, 0, 0, 24, // offset of 24 bytes
+- 0xff, 0xff, 0xff, 0xff, // unspecified length
++ -1, -1, -1, -1, // unspecified length
+ 0, 0, 0, 3, // 16-bit linear
+- 0, 0, 172, 68, // 44100 Hz
++ 0, 0, -84, 68, // 44100 Hz (0xAC44)
+ 0, 0, 0, 1, // 1 channel
+ 0, 1,
+ 0, 1,
+@@ -57,13 +57,13 @@ const char kDataUnspecifiedLength[] =
+ 0, 55
+ };
+
+-const char kDataTruncated[] =
++const signed char kDataTruncated[] =
+ {
+ '.', 's', 'n', 'd',
+ 0, 0, 0, 24, // offset of 24 bytes
+ 0, 0, 0, 20, // length of 20 bytes
+ 0, 0, 0, 3, // 16-bit linear
+- 0, 0, 172, 68, // 44100 Hz
++ 0, 0, -84, 68, // 44100 Hz (0xAC44)
+ 0, 0, 0, 1, // 1 channel
+ 0, 1,
+ 0, 1,
+@@ -152,13 +152,13 @@ TEST(NeXT, Truncated)
+ ASSERT_EQ(::unlink(testFileName.c_str()), 0);
+ }
+
+-const char kDataZeroChannels[] =
++const signed char kDataZeroChannels[] =
+ {
+ '.', 's', 'n', 'd',
+ 0, 0, 0, 24, // offset of 24 bytes
+ 0, 0, 0, 2, // 2 bytes
+ 0, 0, 0, 3, // 16-bit linear
+- 0, 0, 172, 68, // 44100 Hz
++ 0, 0, -84, 68, // 44100 Hz (0xAC44)
+ 0, 0, 0, 0, // 0 channels
+ 0, 1
+ };
+diff --git a/test/Sign.cpp b/test/Sign.cpp
+index 7275399..c339514 100644
+--- a/test/Sign.cpp
++++ b/test/Sign.cpp
+@@ -116,7 +116,7 @@ TEST_F(SignConversionTest, Int16)
+ EXPECT_EQ(readData[i], expectedData[i]);
+ }
+
+-static const int32_t kMinInt24 = -1<<23;
++static const int32_t kMinInt24 = 0-(1U<<23);
+ static const int32_t kMaxInt24 = (1<<23) - 1;
+ static const uint32_t kMaxUInt24 = (1<<24) - 1;
+
+--
+2.10.1
+