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