Package: quake2
Severity: normal
Tags: patch

When building 'quake2' on amd64 with gcc-4.0,
I get the following error:

 gcc -DHAVE_CONFIG_H -I. -I. -I.. -pipe -Wall -Werror -ffast-math 
-funroll-loops -fomit-frame-pointer -fexpensive-optimizations -fPIC -O2 -MT 
snd_oss_la-snd_oss.lo -MD -MP -MF .deps/snd_oss_la-snd_oss.Tpo -c snd_oss.c  
-fPIC -DPIC -o .libs/snd_oss_la-snd_oss.o
/bin/sh ../libtool --mode=link gcc  -O2   -o snd_oss.la  -module -avoid-version 
-rpath /usr/lib/games/quake2 snd_oss_la-snd_oss.lo  
gcc -shared  .libs/snd_oss_la-snd_oss.o   -Wl,-soname -Wl,snd_oss.so -o 
.libs/snd_oss.so
creating snd_oss.la
(cd .libs && rm -f snd_oss.la && ln -s ../snd_oss.la snd_oss.la)
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..    -pipe  
-Wall -Werror  -ffast-math -funroll-loops -fomit-frame-pointer 
-fexpensive-optimizations -fPIC  -O2 -MT snd_ao_la-snd_ao.lo -MD -MP -MF 
".deps/snd_ao_la-snd_ao.Tpo" -c -o snd_ao_la-snd_ao.lo `test -f 'snd_ao.c' || 
echo './'`snd_ao.c; \
then mv -f ".deps/snd_ao_la-snd_ao.Tpo" ".deps/snd_ao_la-snd_ao.Plo"; else rm 
-f ".deps/snd_ao_la-snd_ao.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -pipe -Wall -Werror -ffast-math 
-funroll-loops -fomit-frame-pointer -fexpensive-optimizations -fPIC -O2 -MT 
snd_ao_la-snd_ao.lo -MD -MP -MF .deps/snd_ao_la-snd_ao.Tpo -c snd_ao.c  -fPIC 
-DPIC -o .libs/snd_ao_la-snd_ao.o
cc1: warnings being treated as errors
snd_ao.c: In function 'SNDDMA_Submit':
snd_ao.c:160: warning: pointer targets in passing argument 2 of 'ao_play' 
differ in signedness
make[4]: *** [snd_ao_la-snd_ao.lo] Error 1
make[4]: Leaving directory `/quake2-0.3/src'

With the attached patch 'quake2' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/quake2-0.3/src/snd_alsa.c ./src/snd_alsa.c
--- ../tmp-orig/quake2-0.3/src/snd_alsa.c       2004-03-15 02:25:43.000000000 
+0000
+++ ./src/snd_alsa.c    2005-02-28 10:11:02.466968729 +0000
@@ -104,7 +104,7 @@
            int test = tryrates[i];
 
            if ((err = snd_pcm_hw_params_set_rate_near(pcm_handle, hw_params,
-                                                      &test, &dir)) < 0) {
+                                                      (unsigned *)&test, 
&dir)) < 0) {
                si->Com_Printf("ALSA snd error, cannot set sample rate %d 
(%s)\n",
                               tryrates[i], snd_strerror(err));
            } else {
diff -urN ../tmp-orig/quake2-0.3/src/snd_ao.c ./src/snd_ao.c
--- ../tmp-orig/quake2-0.3/src/snd_ao.c 2004-03-15 02:25:43.000000000 +0000
+++ ./src/snd_ao.c      2005-02-28 10:10:18.500455077 +0000
@@ -157,7 +157,7 @@
     /* ao_play returns success, not number of samples successfully output
      * unlike alsa or arts, so we can only assume that the whole buffer
      * made it out... though this makes updating si->dma->samplepos easy */
-    if (ao_play(device, si->dma->buffer, si->dma->samples * samplesize) == 0) {
+    if (ao_play(device, (char*)si->dma->buffer, si->dma->samples * samplesize) 
== 0) {
        Com_Printf("W: error occurred while playing buffer\n");
        ao_close(device);
        ao_shutdown();
diff -urN ../tmp-orig/quake2-0.3/src/snd_mix.c ./src/snd_mix.c
--- ../tmp-orig/quake2-0.3/src/snd_mix.c        2002-07-13 02:02:00.000000000 
+0000
+++ ./src/snd_mix.c     2005-02-28 10:13:58.739944793 +0000
@@ -449,7 +449,7 @@
        //as it would always be zero.
        lscale = snd_scaletable[ ch->leftvol >> 3];
        rscale = snd_scaletable[ ch->rightvol >> 3];
-       sfx = (signed char *)sc->data + ch->pos;
+       sfx = (unsigned char *)sc->data + ch->pos;
 
        samp = &paintbuffer[offset];
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to