Date: Sun, 04 Jul 2004 11:53:23 +0200 From: Josselin Mouette Subject: Re: sdl 64bit problem [PATCH] Le sam, 03/07/2004 � 18:20 +0200, Hans-Frieder Vogt a �crit : > Hi list, > > I found the problem that lead to the distorted sound in tuxracer on AMD64. It > may have also been the cause for the other reported sound problems with SDL. > The problem is not in SDL, but in SDL-mixer. > There, music files (*.it, and probably others as well) are incorrectly read on > all 64 bit architectures but Alpha, due to an incorrect data type definition. > The attached patch should solve the problem for all 64 bit architectures on > Linux, since at least cpp defines _LP64 and __LP64__ for them. > _LP64 indicates that long ints and pointers are 64 bits, but integers are 32 > bits. > I am not sure whether the usage of _LP64 is also standard for the commercial > compilers, and for other Unixes, but at least Solaris 9 defines _LP64 in the > 64 bit environment as well. > > Josselin, > could you include this patch into your next debian packages? diff -ru libmikmod-3.1.12.orig/include/mikmod.h.in libmikmod-3.1.12/include/mikmod.h.in --- libmikmod-3.1.12.orig/include/mikmod.h.in 2007-12-15 01:24:19.000000000 -0800 +++ libmikmod-3.1.12/include/mikmod.h.in 2009-10-05 00:18:56.000000000 -0700 @@ -85,7 +85,7 @@ @DOES_NOT_HAVE_SIGNED@ -#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) +#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64) /* 64 bit architectures */ typedef signed char SBYTE; /* 1 byte, signed */ diff -ru libmikmod-3.1.12.orig/include/mikmod_internals.h libmikmod-3.1.12/include/mikmod_internals.h --- libmikmod-3.1.12.orig/include/mikmod_internals.h 2007-12-15 04:24:51.000000000 -0800 +++ libmikmod-3.1.12/include/mikmod_internals.h 2009-10-05 00:19:15.000000000 -0700 @@ -50,7 +50,7 @@ /*========== More type definitions */ /* SLONGLONG: 64bit, signed */ -#if defined (__arch64__) || defined(__alpha) +#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64) typedef long SLONGLONG; #define NATIVE_64BIT_INT #elif defined(__WATCOMC__)