xref: /OK3568_Linux_fs/buildroot/package/libsidplay2/0001-sidplay2-libs-2.1.1.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1From 38493fceb39ac33e12c9c69d78f5584413b479f4 Mon Sep 17 00:00:00 2001
2From: Bernd Kuhls <bernd.kuhls@t-online.de>
3Date: Wed, 1 Mar 2017 10:03:40 +0100
4Subject: [PATCH] Various fixes to compile libsidplay2 with newer gcc compilers
5
6Downloaded from
7http://tsubasa.googlecode.com/svn/trunk/tsubasa/sidplay2-libs/sidplay2-libs-2.1.1.diff
8
9Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
10[Thomas: adjusted to avoid the need to autoreconf, which doesn't work
11properly on this package.]
12Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
13---
14 builders/hardsid-builder/src/hardsid-builder.cpp |  1 +
15 builders/resid-builder/src/resid-builder.cpp     |  1 +
16 builders/resid-builder/src/resid.cpp             |  1 +
17 configure                                        |  2 +-
18 libsidplay/configure                             |  5 +++--
19 libsidplay/include/sidplay/SmartPtr.h            | 28 ++++++++++++------------
20 libsidplay/include/sidplay/sidendian.h           | 18 +++++++++------
21 libsidutils/include/sidplay/utils/SidUsage.h     |  2 +-
22 8 files changed, 33 insertions(+), 25 deletions(-)
23
24diff --git a/builders/hardsid-builder/src/hardsid-builder.cpp b/builders/hardsid-builder/src/hardsid-builder.cpp
25index f54d0a9..9375e40 100644
26--- a/builders/hardsid-builder/src/hardsid-builder.cpp
27+++ b/builders/hardsid-builder/src/hardsid-builder.cpp
28@@ -47,6 +47,7 @@
29  ***************************************************************************/
30
31 #include <stdio.h>
32+#include <cstring>
33 #include "config.h"
34
35 #ifdef HAVE_EXCEPTIONS
36diff --git a/builders/resid-builder/src/resid-builder.cpp b/builders/resid-builder/src/resid-builder.cpp
37index e6e4eaa..4c7650f 100644
38--- a/builders/resid-builder/src/resid-builder.cpp
39+++ b/builders/resid-builder/src/resid-builder.cpp
40@@ -37,6 +37,7 @@
41  ***************************************************************************/
42
43 #include <stdio.h>
44+#include <cstring>
45
46 #include "config.h"
47 #ifdef HAVE_EXCEPTIONS
48diff --git a/builders/resid-builder/src/resid.cpp b/builders/resid-builder/src/resid.cpp
49index 8c27850..d3123c5 100644
50--- a/builders/resid-builder/src/resid.cpp
51+++ b/builders/resid-builder/src/resid.cpp
52@@ -16,6 +16,7 @@
53  *                                                                         *
54  ***************************************************************************/
55
56+#include <cstring>
57 #include "config.h"
58
59 #ifdef HAVE_EXCEPTIONS
60diff --git a/configure b/configure
61index 1200eaf..77948b4 100755
62--- a/configure
63+++ b/configure
64@@ -1227,7 +1227,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
65
66 #Variables
67 pwd=`pwd`
68-builders='${libdir}'/sidplay/builders
69+builders='${libdir}'/
70 ac_configure_args="$ac_configure_args --disable-library-checks"
71
72 ac_aux_dir=
73diff --git a/libsidplay/configure b/libsidplay/configure
74index 05a8ea6..3d93956 100755
75--- a/libsidplay/configure
76+++ b/libsidplay/configure
77@@ -23466,8 +23466,9 @@ _ACEOF
78 cat confdefs.h >>conftest.$ac_ext
79 cat >>conftest.$ac_ext <<_ACEOF
80 /* end confdefs.h.  */
81-#include <fstream.h>
82-             #include <iomanip.h>
83+#include <fstream>
84+             #include <iomanip>
85+             using namespace std;
86 int
87 main ()
88 {
89diff --git a/libsidplay/include/sidplay/SmartPtr.h b/libsidplay/include/sidplay/SmartPtr.h
90index c0cbb1a..15efd10 100644
91--- a/libsidplay/include/sidplay/SmartPtr.h
92+++ b/libsidplay/include/sidplay/SmartPtr.h
93@@ -17,16 +17,16 @@ class SmartPtrBase_sidtt
94 		doFree = bufOwner;
95 		if ( bufferLen >= 1 )
96 		{
97-			pBufCurrent = ( bufBegin = buffer );
98-			bufEnd = bufBegin + bufferLen;
99-			bufLen = bufferLen;
100-			status = true;
101+			this->pBufCurrent = ( this->bufBegin = buffer );
102+			this->bufEnd = this->bufBegin + bufferLen;
103+			this->bufLen = bufferLen;
104+			this->status = true;
105 		}
106 		else
107 		{
108-			pBufCurrent = ( bufBegin = ( bufEnd = 0 ));
109-			bufLen = 0;
110-			status = false;
111+			this->pBufCurrent = ( this->bufBegin = ( this->bufEnd = 0 ));
112+			this->bufLen = 0;
113+			this->status = false;
114 		}
115 	}
116
117@@ -211,16 +211,16 @@ class SmartPtr_sidtt : public SmartPtrBase_sidtt<T>
118 	{
119 		if ( bufferLen >= 1 )
120 		{
121-			pBufCurrent = ( bufBegin = buffer );
122-			bufEnd = bufBegin + bufferLen;
123-			bufLen = bufferLen;
124-			status = true;
125+			this->pBufCurrent = ( this->bufBegin = buffer );
126+			this->bufEnd = this->bufBegin + bufferLen;
127+			this->bufLen = bufferLen;
128+			this->status = true;
129 		}
130 		else
131 		{
132-			pBufCurrent = bufBegin = bufEnd = 0;
133-			bufLen = 0;
134-			status = false;
135+			this->pBufCurrent = this->bufBegin = this->bufEnd = 0;
136+			this->bufLen = 0;
137+			this->status = false;
138 		}
139 	}
140 };
141diff --git a/libsidplay/include/sidplay/sidendian.h b/libsidplay/include/sidplay/sidendian.h
142index 9fa8582..6115282 100644
143--- a/libsidplay/include/sidplay/sidendian.h
144+++ b/libsidplay/include/sidplay/sidendian.h
145@@ -16,6 +16,10 @@
146  ***************************************************************************/
147 /***************************************************************************
148  *  $Log: sidendian.h,v $
149+ *  Revision 1.6  2005/11/20 11:02:06  s_a_white
150+ *  Work around for bug in gcc 4 (optimiser breaks if variable never has a
151+ *  direct assignment).
152+ *
153  *  Revision 1.5  2001/07/03 22:44:13  s_a_white
154  *  Added endian_16 to convert a 16 bit value to an array of 8s.
155  *
156@@ -141,7 +145,7 @@ inline void endian_16swap8 (uint_least16_t &word)
157 // Convert high-byte and low-byte to 16-bit word.
158 inline uint_least16_t endian_16 (uint8_t hi, uint8_t lo)
159 {
160-    uint_least16_t word;
161+    uint_least16_t word = 0;
162     endian_16lo8 (word, lo);
163     endian_16hi8 (word, hi);
164     return word;
165@@ -165,7 +169,7 @@ inline void endian_16 (uint8_t ptr[2], uint_least16_t word)
166
167 inline void endian_16 (char ptr[2], uint_least16_t word)
168 {
169-	endian_16 ((uint8_t *) ptr, word);
170+    endian_16 ((uint8_t *) ptr, word);
171 }
172
173 // Convert high-byte and low-byte to 16-bit little endian word.
174@@ -334,7 +338,7 @@ inline void endian_32swap16 (uint_least32_t &dword)
175 // Swap word endian.
176 inline void endian_32swap8 (uint_least32_t &dword)
177 {
178-    uint_least16_t lo, hi;
179+    uint_least16_t lo = 0, hi = 0;
180     lo = endian_32lo16 (dword);
181     hi = endian_32hi16 (dword);
182     endian_16swap8 (lo);
183@@ -346,8 +350,8 @@ inline void endian_32swap8 (uint_least32_t &dword)
184 // Convert high-byte and low-byte to 32-bit word.
185 inline uint_least32_t endian_32 (uint8_t hihi, uint8_t hilo, uint8_t hi, uint8_t lo)
186 {
187-    uint_least32_t dword;
188-    uint_least16_t word;
189+    uint_least32_t dword = 0;
190+    uint_least16_t word  = 0;
191     endian_32lo8  (dword, lo);
192     endian_32hi8  (dword, hi);
193     endian_16lo8  (word,  hilo);
194@@ -374,7 +378,7 @@ inline void endian_little32 (uint8_t ptr[4], uint_least32_t dword)
195     defined(SID_WORDS_LITTLEENDIAN)
196     *((uint_least32_t *) ptr) = dword;
197 #else
198-    uint_least16_t word;
199+    uint_least16_t word = 0;
200     ptr[0] = endian_32lo8  (dword);
201     ptr[1] = endian_32hi8  (dword);
202     word   = endian_32hi16 (dword);
203@@ -401,7 +405,7 @@ inline void endian_big32 (uint8_t ptr[4], uint_least32_t dword)
204     defined(SID_WORDS_BIGENDIAN)
205     *((uint_least32_t *) ptr) = dword;
206 #else
207-    uint_least16_t word;
208+    uint_least16_t word = 0;
209     word   = endian_32hi16 (dword);
210     ptr[1] = endian_16lo8  (word);
211     ptr[0] = endian_16hi8  (word);
212diff --git a/libsidutils/include/sidplay/utils/SidUsage.h b/libsidutils/include/sidplay/utils/SidUsage.h
213index 2afb0f3..0496eea 100755
214--- a/libsidutils/include/sidplay/utils/SidUsage.h
215+++ b/libsidutils/include/sidplay/utils/SidUsage.h
216@@ -33,7 +33,7 @@ struct sid2_usage_t: public sid_usage_t
217     uint_least16_t length;  // usage scan length
218
219     // Copy common parts of basic usage to extended usage.
220-    sid2_usage_t &sid2_usage_t::operator= (const sid_usage_t &usage)
221+    sid2_usage_t &operator= (const sid_usage_t &usage)
222     {
223         *((sid_usage_t *) this) = usage;
224         return *this;
225--
2262.7.4
227
228