Hi all, I'm trying to benchmark MPlayer when compiled with different compilers (gcc-2.95, 3.3, 3.4, 4.0.0 20050110 (experimental) and ICC-8.1). MPlayer-pre6 was supposed to support gcc-4.0, but it looks like on my machine, there still are some files that are problematic: - libvo/geometry.c - postproc/swscale.c - libmpcodecs/native/RTjpegN.c - libaf/af.c - liba52/imdct.c Each time one file couldn't get through 4.0, I hand-compiled it with gcc-3.4 and made the assumption that both were binary compatible. This allowed me to get in the end a "mostly" 4.0 compiled MPlayer executable, that seem to work fine (I just tried a couple of MPEG-4 files, which were decoded alright. No benchmark yet). See below for gcc's output. Regards, Guillaume --------------------------------------------------------------------- make[2]: Entering directory `/home/guillaume/main/libvo' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I.. -I../osdep -I/usr/include/freetype2 -I/usr/X11R6/include -DMPG12PLAY -o geometry.o geometry.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I.. -I../osdep -I/usr/include/freetype2 -I/usr/X11R6/include -DMPG12PLAY -o aspect.o aspect.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I.. -I../osdep -I/usr/include/freetype2 -I/usr/X11R6/include -DMPG12PLAY -o aclib.o aclib.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from aclib.c:108: aclib_template.c: In function 'fast_memcpy_SSE': aclib_template.c:202: error: invalid lvalue in assignment aclib_template.c:203: error: invalid lvalue in assignment aclib_template.c:224: error: invalid lvalue in assignment aclib_template.c:225: error: invalid lvalue in assignment aclib_template.c: In function 'mem2agpcpy_SSE': aclib_template.c:427: error: invalid lvalue in assignment aclib_template.c:428: error: invalid lvalue in assignment make[2]: *** [aclib.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/libvo' make[1]: *** [libvo/libvo.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2 --------------------------------------------------------------------- make[2]: Entering directory `/home/guillaume/main/postproc' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I.. -I.. -o swscale.o swscale.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from swscale.c:748: swscale_template.c: In function 'hScale_MMX2': swscale_template.c:2133: error: memory input 4 is not directly addressable swscale_template.c: In function 'hyscale_MMX2': swscale_template.c:2254: warning: pointer targets in passing argument 1 of 'hScale_MMX2' differ in signedness swscale_template.c:2300: error: memory input 3 is not directly addressable swscale_template.c:2300: error: memory input 4 is not directly addressable swscale_template.c: In function 'hcscale_MMX2': swscale_template.c:2422: warning: pointer targets in passing argument 1 of 'hScale_MMX2' differ in signedness swscale_template.c:2423: warning: pointer targets in passing argument 1 of 'hScale_MMX2' differ in signedness swscale_template.c:2481: error: memory input 3 is not directly addressable swscale_template.c:2481: error: memory input 4 is not directly addressable swscale_template.c: In function 'swScale_MMX2': swscale_template.c:2673: warning: pointer targets in passing argument 1 of 'hyscale_MMX2' differ in signedness swscale_template.c:2690: warning: pointer targets in passing argument 1 of 'hcscale_MMX2' differ in signedness swscale_template.c:2715: warning: pointer targets in passing argument 1 of 'hyscale_MMX2' differ in signedness swscale_template.c:2731: warning: pointer targets in passing argument 1 of 'hcscale_MMX2' differ in signedness swscale_template.c:2793: warning: pointer targets in passing argument 2 of 'yuv2packed1_MMX2' differ in signedness swscale_template.c:2793: warning: pointer targets in passing argument 3 of 'yuv2packed1_MMX2' differ in signedness swscale_template.c:2793: warning: pointer targets in passing argument 4 of 'yuv2packed1_MMX2' differ in signedness swscale_template.c:2800: warning: pointer targets in passing argument 2 of 'yuv2packed2_MMX2' differ in signedness swscale_template.c:2800: warning: pointer targets in passing argument 3 of 'yuv2packed2_MMX2' differ in signedness swscale_template.c:2800: warning: pointer targets in passing argument 4 of 'yuv2packed2_MMX2' differ in signedness swscale_template.c:2800: warning: pointer targets in passing argument 5 of 'yuv2packed2_MMX2' differ in signedness swscale.c: In function 'sws_getContext': swscale.c:2053: warning: pointer targets in assignment differ in signedness swscale.c:2055: warning: pointer targets in assignment differ in signedness make[2]: *** [swscale.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/postproc' make[1]: *** [postproc/libswscale.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2 --------------------------------------------------------------------- make[2]: Entering directory `/home/guillaume/main/libmpcodecs' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -Inative -I.. -I../libmpdemux -I../loader -D_GNU_SOURCE -o native/RTjpegN.o native/RTjpegN.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. native/RTjpegN.c: In function 'RTjpeg_compressYUV420': native/RTjpegN.c:2862: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:2863: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:2884: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:2888: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:2892: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:2896: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c: In function 'RTjpeg_compressYUV422': native/RTjpegN.c:2916: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:2937: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:2941: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c: In function 'RTjpeg_decompressYUV422': native/RTjpegN.c:2987: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:3015: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c:3021: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c: In function 'RTjpeg_decompressYUV420': native/RTjpegN.c:3035: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:3036: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:3064: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c:3070: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c:3076: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c:3082: warning: pointer targets in passing argument 1 of 'RTjpeg_idct' differ in signedness native/RTjpegN.c: In function 'RTjpeg_mcompressYUV420': native/RTjpegN.c:3216: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:3217: warning: pointer targets in initialization differ in signedness native/RTjpegN.c:3255: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:3264: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:3273: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:3282: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c: In function 'RTjpeg_mcompressYUV422': native/RTjpegN.c:3322: warning: pointer targets in assignment differ in signedness native/RTjpegN.c:3350: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness native/RTjpegN.c:3359: warning: pointer targets in passing argument 1 of 'RTjpeg_dctY' differ in signedness {standard input}: Assembler messages: {standard input}:1375: Error: suffix or operands invalid for `punpcklwd' {standard input}:1385: Error: suffix or operands invalid for `punpcklwd' {standard input}:1389: Error: suffix or operands invalid for `movq' {standard input}:1393: Error: suffix or operands invalid for `movq' {standard input}:1425: Error: suffix or operands invalid for `punpcklwd' {standard input}:1433: Error: suffix or operands invalid for `punpcklwd' {standard input}:1445: Error: suffix or operands invalid for `punpckhwd' {standard input}:1449: Error: suffix or operands invalid for `punpckhwd' {standard input}:1461: Error: suffix or operands invalid for `punpcklwd' {standard input}:1465: Error: suffix or operands invalid for `punpckhwd' {standard input}:1475: Error: suffix or operands invalid for `punpcklwd' {standard input}:1483: Error: suffix or operands invalid for `punpckhwd' {standard input}:1513: Error: suffix or operands invalid for `punpcklwd' {standard input}:1521: Error: suffix or operands invalid for `punpcklwd' {standard input}:1525: Error: suffix or operands invalid for `movq' {standard input}:1529: Error: suffix or operands invalid for `movq' {standard input}:1541: Error: suffix or operands invalid for `psubw' {standard input}:1545: Error: suffix or operands invalid for `paddw' {standard input}:1553: Error: suffix or operands invalid for `paddw' {standard input}:1557: Error: suffix or operands invalid for `psubw' {standard input}:1575: Error: suffix or operands invalid for `paddw' {standard input}:1583: Error: suffix or operands invalid for `paddw' {standard input}:1587: Error: suffix or operands invalid for `psubw' {standard input}:1599: Error: suffix or operands invalid for `psubw' {standard input}:1703: Error: suffix or operands invalid for `paddw' {standard input}:1709: Error: suffix or operands invalid for `psubw' {standard input}:1717: Error: suffix or operands invalid for `paddw' {standard input}:1723: Error: suffix or operands invalid for `psubw' {standard input}:1729: Error: suffix or operands invalid for `paddw' {standard input}:1739: Error: suffix or operands invalid for `paddw' {standard input}:1745: Error: suffix or operands invalid for `psubw' {standard input}:1751: Error: suffix or operands invalid for `psubw' {standard input}:1883: Error: suffix or operands invalid for `punpcklwd' {standard input}:1891: Error: suffix or operands invalid for `punpcklwd' {standard input}:1903: Error: suffix or operands invalid for `punpckhwd' {standard input}:1907: Error: suffix or operands invalid for `punpckhwd' {standard input}:1919: Error: suffix or operands invalid for `punpcklwd' {standard input}:1923: Error: suffix or operands invalid for `punpckhwd' {standard input}:1933: Error: suffix or operands invalid for `punpcklwd' {standard input}:1941: Error: suffix or operands invalid for `punpckhwd' {standard input}:1971: Error: suffix or operands invalid for `punpcklwd' {standard input}:1979: Error: suffix or operands invalid for `punpcklwd' {standard input}:1983: Error: suffix or operands invalid for `movq' {standard input}:1987: Error: suffix or operands invalid for `movq' {standard input}:1999: Error: suffix or operands invalid for `psubw' {standard input}:2003: Error: suffix or operands invalid for `paddw' {standard input}:2011: Error: suffix or operands invalid for `paddw' {standard input}:2015: Error: suffix or operands invalid for `psubw' {standard input}:2031: Error: suffix or operands invalid for `paddw' {standard input}:2039: Error: suffix or operands invalid for `paddw' {standard input}:2043: Error: suffix or operands invalid for `psubw' {standard input}:2055: Error: suffix or operands invalid for `psubw' {standard input}:2159: Error: suffix or operands invalid for `paddw' {standard input}:2165: Error: suffix or operands invalid for `psubw' {standard input}:2173: Error: suffix or operands invalid for `paddw' {standard input}:2179: Error: suffix or operands invalid for `psubw' {standard input}:2185: Error: suffix or operands invalid for `paddw' {standard input}:2195: Error: suffix or operands invalid for `paddw' {standard input}:2201: Error: suffix or operands invalid for `psubw' {standard input}:2207: Error: suffix or operands invalid for `psubw' {standard input}:2529: Error: suffix or operands invalid for `movq' {standard input}:2547: Error: suffix or operands invalid for `movq' {standard input}:2555: Error: suffix or operands invalid for `movq' {standard input}:2567: Error: suffix or operands invalid for `paddw' {standard input}:2571: Error: suffix or operands invalid for `paddw' {standard input}:2573: Error: suffix or operands invalid for `psubw' {standard input}:2577: Error: suffix or operands invalid for `psubw' {standard input}:2623: Error: suffix or operands invalid for `paddw' {standard input}:2625: Error: suffix or operands invalid for `psubw' {standard input}:2729: Error: suffix or operands invalid for `movq' {standard input}:2747: Error: suffix or operands invalid for `movq' {standard input}:2755: Error: suffix or operands invalid for `movq' {standard input}:2767: Error: suffix or operands invalid for `paddw' {standard input}:2771: Error: suffix or operands invalid for `paddw' {standard input}:2773: Error: suffix or operands invalid for `psubw' {standard input}:2777: Error: suffix or operands invalid for `psubw' {standard input}:2805: Error: suffix or operands invalid for `movq' {standard input}:2821: Error: suffix or operands invalid for `paddw' {standard input}:2823: Error: suffix or operands invalid for `psubw' {standard input}:2847: Error: suffix or operands invalid for `movq' {standard input}:2871: Error: suffix or operands invalid for `movq' {standard input}:2903: Error: suffix or operands invalid for `movq' {standard input}:2989: Error: suffix or operands invalid for `movq' {standard input}:2993: Error: suffix or operands invalid for `movq' {standard input}:3041: Error: suffix or operands invalid for `movq' {standard input}:3145: Error: suffix or operands invalid for `movq' {standard input}:3393: Error: suffix or operands invalid for `movq' {standard input}:3409: Error: suffix or operands invalid for `movq' {standard input}:3543: Error: suffix or operands invalid for `movq' {standard input}:3559: Error: suffix or operands invalid for `movq' make[2]: *** [native/RTjpegN.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/libmpcodecs' make[1]: *** [libmpcodecs/libmpcodecs.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2 --------------------------------------------------------------------- make[2]: Entering directory `/home/guillaume/main/libaf' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -Wall -o af.o af.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. af.c: In function 'af_outputlen': af.c:527: error: address of register variable 'mul' requested af.c: In function 'af_inputlen': af.c:544: error: address of register variable 'mul' requested af.c: In function 'af_calc_insize_constrained': af.c:568: error: address of register variable 'mul' requested make[2]: *** [af.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/libaf' make[1]: *** [libaf/libaf.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2 --------------------------------------------------------------------- /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -o imdct.o imdct.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. imdct.c: In function 'imdct_do_512_sse': imdct.c:937: error: memory input 1 is not directly addressable imdct.c:937: error: memory input 2 is not directly addressable make[2]: *** [imdct.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/liba52' make[1]: *** [liba52/liba52.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2 ---------------------------------------------------------------------
Hi all, Apparently this issue doesn't seem to enthusiasm a whole lot of devs here... :-( ... but that's okay. Bug reports aren't supposed to be sent to this list anyway. Here's a fix that allows aclib.c to get compiled using gcc-4.0, and that is compatible with 2.95.4, 3.3.5, 3.4.4 on i386. I also have on hand a path that allows ./configure to work with gcc-4 but I hold it until every single line of MPlayer is compilable with gcc-4 (unless you tell me that indeed, it's good to enable the use of gcc-4 right now so that other talented devs or users may have a greater chance to send fixes). Comments are welcome, as I only modified the code to make it compile, I think it's correct, but I'm not certain. Therefore, I claim that I have no plan, whatsoever to commit it until someone tells me so. ;-) Regards, Guillaume
On Fri, Jan 21, 2005 at 08:58:46PM +0100, Guillaume POIRIER wrote:
Hi all, Apparently this issue doesn't seem to enthusiasm a whole lot of devs here... :-( ... but that's okay. Bug reports aren't supposed to be sent to this list anyway. Here's a fix that allows aclib.c to get compiled using gcc-4.0, and that is compatible with 2.95.4, 3.3.5, 3.4.4 on i386.
I also have on hand a path that allows ./configure to work with gcc-4 but I hold it until every single line of MPlayer is compilable with gcc-4 (unless you tell me that indeed, it's good to enable the use of gcc-4 right now so that other talented devs or users may have a greater chance to send fixes).
Comments are welcome, as I only modified the code to make it compile, I think it's correct, but I'm not certain. Therefore, I claim that I have no plan, whatsoever to commit it until someone tells me so. ;-)
This should be committed. The old code is invalid C. Rich
Le vendredi 21 janvier 2005 à 16:05 -0500, D Richard Felker III a écrit :
This should be committed. The old code is invalid C.
Committed. Thanks. Guillaume
Hi, On 6/4/05, eviv bulgroz <ebulgroz@yahoo.com> wrote:
Hi, Some of the fixes were missing in the patch Eviv
Applied, thanks. Guillaume -- Should I have invented the tape recorder too, people would have more quotes of me to put at the bottom of their e-mails -- Benjamin Franklin
Hi, Le dimanche 16 janvier 2005 à 16:42 +0100, Guillaume POIRIER a écrit :
MPlayer-pre6 was supposed to support gcc-4.0, but it looks like on my machine, there still are some files that are problematic:
- libaf/af.c [..]
See below for gcc's output. [..]
make[2]: Entering directory `/home/guillaume/main/libaf' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -Wall -o af.o af.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. af.c: In function 'af_outputlen': af.c:527: error: address of register variable 'mul' requested af.c: In function 'af_inputlen': af.c:544: error: address of register variable 'mul' requested af.c: In function 'af_calc_insize_constrained': af.c:568: error: address of register variable 'mul' requested make[2]: *** [af.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/libaf' make[1]: *** [libaf/libaf.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2
Here's a patch that allows the compilation with gcc-4.0.0 of libaf/af.c. Tested also with gcc-2.95.4, 3.3.5, 3.4.4 on i386. They all compile fine. Please comment on that patch. It's very simple, and this is the reason why I'm worried I maybe underestimated the problem. The issue addressed is just that it's obviously syntacticly incorrect to use the "&" operand to take the address of a variable that is declared as "register". Now I guess there must be a good reason that the code was written that way, but I don't see it... No commit without any go-ahead. Regards, Guillaume
On Fri, Jan 21, 2005 at 10:53:21PM +0100, Guillaume POIRIER wrote:
Hi, Le dimanche 16 janvier 2005 à 16:42 +0100, Guillaume POIRIER a écrit :
MPlayer-pre6 was supposed to support gcc-4.0, but it looks like on my machine, there still are some files that are problematic:
- libaf/af.c [..]
See below for gcc's output. [..]
make[2]: Entering directory `/home/guillaume/main/libaf' /usr/lib/gcc-snapshot/bin/gcc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -g -O4 -march=athlon-xp -mcpu=athlon-xp -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -Wall -o af.o af.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. af.c: In function 'af_outputlen': af.c:527: error: address of register variable 'mul' requested af.c: In function 'af_inputlen': af.c:544: error: address of register variable 'mul' requested af.c: In function 'af_calc_insize_constrained': af.c:568: error: address of register variable 'mul' requested make[2]: *** [af.o] Error 1 make[2]: Leaving directory `/home/guillaume/main/libaf' make[1]: *** [libaf/libaf.a] Erreur 2 make[1]: Leaving directory `/home/guillaume/main' make: *** [build-stamp] Erreur 2
Here's a patch that allows the compilation with gcc-4.0.0 of libaf/af.c. Tested also with gcc-2.95.4, 3.3.5, 3.4.4 on i386. They all compile fine.
Please comment on that patch.
It's very simple, and this is the reason why I'm worried I maybe underestimated the problem. The issue addressed is just that it's obviously syntacticly incorrect to use the "&" operand to take the address of a variable that is declared as "register". Now I guess there must be a good reason that the code was written that way, but I don't see it...
No, the reason it was written that way is that Anders is an idiot. Actually the register keyword should almost never be used, certainly not here. We're shipping 100000l of cola his way; in the mean time just..
No commit without any go-ahead.
..commit. :) Rich
Hi, Le vendredi 21 janvier 2005 à 20:56 -0500, D Richard Felker III a écrit :
On Fri, Jan 21, 2005 at 10:53:21PM +0100, Guillaume POIRIER wrote:
Hi, Here's a patch that allows the compilation with gcc-4.0.0 of libaf/af.c. Tested also with gcc-2.95.4, 3.3.5, 3.4.4 on i386. They all compile fine.
Please comment on that patch.
It's very simple, and this is the reason why I'm worried I maybe underestimated the problem. The issue addressed is just that it's obviously syntacticly incorrect to use the "&" operand to take the address of a variable that is declared as "register". Now I guess there must be a good reason that the code was written that way, but I don't see it...
No, the reason it was written that way is that Anders is an idiot. Actually the register keyword should almost never be used, certainly not here. We're shipping 100000l of cola his way; in the mean time just..
No commit without any go-ahead.
..commit. :)
Thanks a lot. Committed. I'd like to call for volunteers who'd have the brainpower and competence (I unfortunately lack ASM knowledge here) to fix the following files: * libmpcodecs/native/RTjpegN.c (lots of assembler error messages: suffix or operands invalid for pretty much all calls of `psubw', `punpcklwd', `movq', and `paddw'. All other gcc version compile with no warning at all) * postproc/swscale_template.c (memory inputs not directly addressable. Fixes for thoses files might look like those for libavcodec that have been flying around ffmpeg's mailing list) * liba52/imdct.c (memory inputs not direcly addressable. Same as above) ... and that's it! You you need gcc's output, either refer to my previous message or I guess I can re-post them if needed. Patches are thus welcome. I'd gladly test them. Regards, Guillaume
participants (4)
-
D Richard Felker III -
eviv bulgroz -
Guillaume POIRIER -
Guillaume POIRIER