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 --- 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 +#include #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 +#include #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 #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 - #include ], + [#include + #include + 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 + + +/* 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;