46 lines
1.8 KiB
Diff
46 lines
1.8 KiB
Diff
|
Date: Sun, 04 Jul 2004 11:53:23 +0200
|
|||
|
From: Josselin Mouette
|
|||
|
Subject: Re: sdl 64bit problem [PATCH]
|
|||
|
|
|||
|
Le sam, 03/07/2004 <20> 18:20 +0200, Hans-Frieder Vogt a <20>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?
|
|||
|
|
|||
|
--- include/mikmod.h.in 2007-12-15 01:24:19.000000000 -0800
|
|||
|
+++ 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 */
|
|||
|
--- include/mikmod_internals.h 2007-12-15 04:24:51.000000000 -0800
|
|||
|
+++ 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__)
|