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]