--- /dev/null
+Various fixes to compile libsidplay2 with newer gcc compilers
+
+Downloaded from
+http://tsubasa.googlecode.com/svn/trunk/tsubasa/sidplay2-libs/sidplay2-libs-2.1.1.diff
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+--- sidplay-libs-2.1.1.orig/Makefile.in
++++ sidplay-libs-2.1.1/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.8.4 from Makefile.am.
++# Makefile.in generated by automake 1.8.5 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+@@ -253,7 +253,7 @@
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+- test -f $$subdir/TAGS && \
++ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+@@ -264,7 +264,7 @@
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+- test -z "$$unique" && unique=$$empty_fix; \
++ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+--- sidplay-libs-2.1.1.orig/aclocal.m4
++++ sidplay-libs-2.1.1/aclocal.m4
+@@ -1,4 +1,4 @@
+-# generated automatically by aclocal 1.8.4 -*- Autoconf -*-
++# generated automatically by aclocal 1.8.5 -*- Autoconf -*-
+
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ # Free Software Foundation, Inc.
+@@ -40,7 +40,7 @@
+ # Call AM_AUTOMAKE_VERSION so it can be traced.
+ # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+- [AM_AUTOMAKE_VERSION([1.8.4])])
++ [AM_AUTOMAKE_VERSION([1.8.5])])
+
+ # AM_AUX_DIR_EXPAND
+
+--- sidplay-libs-2.1.1.orig/builders/Makefile.in
++++ sidplay-libs-2.1.1/builders/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.8.4 from Makefile.am.
++# Makefile.in generated by automake 1.8.5 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+@@ -130,9 +130,9 @@
+ exit 1;; \
+ esac; \
+ done; \
+- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu builders/Makefile'; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign builders/Makefile'; \
+ cd $(top_srcdir) && \
+- $(AUTOMAKE) --gnu builders/Makefile
++ $(AUTOMAKE) --foreign builders/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+@@ -234,7 +234,7 @@
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+- test -f $$subdir/TAGS && \
++ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+@@ -245,7 +245,7 @@
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+- test -z "$$unique" && unique=$$empty_fix; \
++ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+--- sidplay-libs-2.1.1.orig/builders/hardsid-builder/src/hardsid-builder.cpp
++++ sidplay-libs-2.1.1/builders/hardsid-builder/src/hardsid-builder.cpp
+@@ -47,6 +47,7 @@
+ ***************************************************************************/
+
+ #include <stdio.h>
++#include <cstring>
+ #include "config.h"
+
+ #ifdef HAVE_EXCEPTIONS
+--- sidplay-libs-2.1.1.orig/builders/resid-builder/src/resid-builder.cpp
++++ sidplay-libs-2.1.1/builders/resid-builder/src/resid-builder.cpp
+@@ -37,6 +37,7 @@
+ ***************************************************************************/
+
+ #include <stdio.h>
++#include <cstring>
+
+ #include "config.h"
+ #ifdef HAVE_EXCEPTIONS
+--- sidplay-libs-2.1.1.orig/builders/resid-builder/src/resid.cpp
++++ sidplay-libs-2.1.1/builders/resid-builder/src/resid.cpp
+@@ -16,6 +16,7 @@
+ * *
+ ***************************************************************************/
+
++#include <cstring>
+ #include "config.h"
+
+ #ifdef HAVE_EXCEPTIONS
+--- sidplay-libs-2.1.1.orig/configure.ac
++++ sidplay-libs-2.1.1/configure.ac
+@@ -2,7 +2,7 @@
+
+ #Variables
+ pwd=`pwd`
+-builders='${libdir}'/sidplay/builders
++builders='${libdir}'/
+ ac_configure_args="$ac_configure_args --disable-library-checks"
+
+ AC_CONFIG_AUX_DIR(unix)
+@@ -11,7 +11,7 @@
+
+ hardsid=false
+ case "$host" in
+- *linux*) hardsid=true
++ *linux*|*-k*bsd*-gnu) hardsid=true
+ ;;
+ esac
+ AM_CONDITIONAL(HARDSID, test x$hardsid = xtrue)
+--- sidplay-libs-2.1.1.orig/libsidplay/include/sidplay/SmartPtr.h
++++ sidplay-libs-2.1.1/libsidplay/include/sidplay/SmartPtr.h
+@@ -17,16 +17,16 @@
+ doFree = bufOwner;
+ if ( bufferLen >= 1 )
+ {
+- pBufCurrent = ( bufBegin = buffer );
+- bufEnd = bufBegin + bufferLen;
+- bufLen = bufferLen;
+- status = true;
++ this->pBufCurrent = ( this->bufBegin = buffer );
++ this->bufEnd = this->bufBegin + bufferLen;
++ this->bufLen = bufferLen;
++ this->status = true;
+ }
+ else
+ {
+- pBufCurrent = ( bufBegin = ( bufEnd = 0 ));
+- bufLen = 0;
+- status = false;
++ this->pBufCurrent = ( this->bufBegin = ( this->bufEnd = 0 ));
++ this->bufLen = 0;
++ this->status = false;
+ }
+ }
+
+@@ -211,16 +211,16 @@
+ {
+ if ( bufferLen >= 1 )
+ {
+- pBufCurrent = ( bufBegin = buffer );
+- bufEnd = bufBegin + bufferLen;
+- bufLen = bufferLen;
+- status = true;
++ this->pBufCurrent = ( this->bufBegin = buffer );
++ this->bufEnd = this->bufBegin + bufferLen;
++ this->bufLen = bufferLen;
++ this->status = true;
+ }
+ else
+ {
+- pBufCurrent = bufBegin = bufEnd = 0;
+- bufLen = 0;
+- status = false;
++ this->pBufCurrent = this->bufBegin = this->bufEnd = 0;
++ this->bufLen = 0;
++ this->status = false;
+ }
+ }
+ };
+--- sidplay-libs-2.1.1.orig/libsidplay/include/sidplay/sidendian.h
++++ sidplay-libs-2.1.1/libsidplay/include/sidplay/sidendian.h
+@@ -16,6 +16,10 @@
+ ***************************************************************************/
+ /***************************************************************************
+ * $Log: sidendian.h,v $
++ * Revision 1.6 2005/11/20 11:02:06 s_a_white
++ * Work around for bug in gcc 4 (optimiser breaks if variable never has a
++ * direct assignment).
++ *
+ * Revision 1.5 2001/07/03 22:44:13 s_a_white
+ * Added endian_16 to convert a 16 bit value to an array of 8s.
+ *
+@@ -141,7 +145,7 @@
+ // Convert high-byte and low-byte to 16-bit word.
+ inline uint_least16_t endian_16 (uint8_t hi, uint8_t lo)
+ {
+- uint_least16_t word;
++ uint_least16_t word = 0;
+ endian_16lo8 (word, lo);
+ endian_16hi8 (word, hi);
+ return word;
+@@ -165,7 +169,7 @@
+
+ inline void endian_16 (char ptr[2], uint_least16_t word)
+ {
+- endian_16 ((uint8_t *) ptr, word);
++ endian_16 ((uint8_t *) ptr, word);
+ }
+
+ // Convert high-byte and low-byte to 16-bit little endian word.
+@@ -334,7 +338,7 @@
+ // Swap word endian.
+ inline void endian_32swap8 (uint_least32_t &dword)
+ {
+- uint_least16_t lo, hi;
++ uint_least16_t lo = 0, hi = 0;
+ lo = endian_32lo16 (dword);
+ hi = endian_32hi16 (dword);
+ endian_16swap8 (lo);
+@@ -346,8 +350,8 @@
+ // Convert high-byte and low-byte to 32-bit word.
+ inline uint_least32_t endian_32 (uint8_t hihi, uint8_t hilo, uint8_t hi, uint8_t lo)
+ {
+- uint_least32_t dword;
+- uint_least16_t word;
++ uint_least32_t dword = 0;
++ uint_least16_t word = 0;
+ endian_32lo8 (dword, lo);
+ endian_32hi8 (dword, hi);
+ endian_16lo8 (word, hilo);
+@@ -374,7 +378,7 @@
+ defined(SID_WORDS_LITTLEENDIAN)
+ *((uint_least32_t *) ptr) = dword;
+ #else
+- uint_least16_t word;
++ uint_least16_t word = 0;
+ ptr[0] = endian_32lo8 (dword);
+ ptr[1] = endian_32hi8 (dword);
+ word = endian_32hi16 (dword);
+@@ -401,7 +405,7 @@
+ defined(SID_WORDS_BIGENDIAN)
+ *((uint_least32_t *) ptr) = dword;
+ #else
+- uint_least16_t word;
++ uint_least16_t word = 0;
+ word = endian_32hi16 (dword);
+ ptr[1] = endian_16lo8 (word);
+ ptr[0] = endian_16hi8 (word);
+--- sidplay-libs-2.1.1.orig/libsidplay/unix/config.h.in
++++ sidplay-libs-2.1.1/libsidplay/unix/config.h.in
+@@ -72,22 +72,22 @@
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
+
+-/* The size of a `char', as computed by sizeof. */
++/* The size of `char', as computed by sizeof. */
+ #undef SIZEOF_CHAR
+
+-/* The size of a `int', as computed by sizeof. */
++/* The size of `int', as computed by sizeof. */
+ #undef SIZEOF_INT
+
+ /* The number of bytes in type long */
+ #undef SIZEOF_LONG
+
+-/* The size of a `long int', as computed by sizeof. */
++/* The size of `long int', as computed by sizeof. */
+ #undef SIZEOF_LONG_INT
+
+ /* The number of bytes in type short */
+ #undef SIZEOF_SHORT
+
+-/* The size of a `short int', as computed by sizeof. */
++/* The size of `short int', as computed by sizeof. */
+ #undef SIZEOF_SHORT_INT
+
+ /* The number of bytes in type void* */
+--- sidplay-libs-2.1.1.orig/libsidplay/unix/my_macros.m4
++++ sidplay-libs-2.1.1/libsidplay/unix/my_macros.m4
+@@ -105,8 +105,9 @@
+ AC_CACHE_VAL(test_cv_have_ios_openmode,
+ [
+ AC_TRY_COMPILE(
+- [#include <fstream.h>
+- #include <iomanip.h>],
++ [#include <fstream>
++ #include <iomanip>
++ using namespace std;],
+ [ios::openmode myTest = ios::in;],
+ [test_cv_have_ios_openmode=yes],
+ [test_cv_have_ios_openmode=no]
+--- sidplay-libs-2.1.1.orig/libsidplay/unix/sidint.h
++++ sidplay-libs-2.1.1/libsidplay/unix/sidint.h
+@@ -0,0 +1,17 @@
++#ifndef _UNIX_SIDINT_H
++#define _UNIX_SIDINT_H 1
++#ifndef _GENERATED_STDINT_H
++#define _GENERATED_STDINT_H "libsidplay 2.1.1"
++/* generated using a gnu compiler version gcc (Debian 4.3-20080219-1) 4.3.0 20080219 (prerelease) [gcc-4_3-branch revision 132456] Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */
++
++#include <stdint.h>
++
++
++/* system headers have good uint64_t */
++#ifndef _HAVE_UINT64_T
++#define _HAVE_UINT64_T
++#endif
++
++ /* once */
++#endif
++#endif
+--- sidplay-libs-2.1.1.orig/libsidutils/include/sidplay/utils/SidUsage.h
++++ sidplay-libs-2.1.1/libsidutils/include/sidplay/utils/SidUsage.h
+@@ -33,7 +33,7 @@
+ uint_least16_t length; // usage scan length
+
+ // Copy common parts of basic usage to extended usage.
+- sid2_usage_t &sid2_usage_t::operator= (const sid_usage_t &usage)
++ sid2_usage_t &operator= (const sid_usage_t &usage)
+ {
+ *((sid_usage_t *) this) = usage;
+ return *this;