Errors compiling Squeak with new gcc 3.3... (Mpeg3Plugin)
Ivo Rössling
iroess at cs.uni-magdeburg.de
Mon May 19 00:13:43 UTC 2003
Hi, there!
I ran into trouble to try to compile Squeak (3.5-1devel) with the latest
gcc 3.3 -
or to be exactly: by trying to compile the "Mpeg3Plugin":
--------------- snip ---------------
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:264:5:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:296:9:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:306:5:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:339:9:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:342:1:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:355:5:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:387:9:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:397:5:
missing terminating " character
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:430:9:
missing terminating " character
make[1]: *** [output.o] Error 1
make: *** [Mpeg3Plugin/Mpeg3Plugin.a] Error 2
--------------- snap ---------------
the problem is the method asm being called like that:
--------------- snip ---------------
asm("
/* Output will be 0x00rrggbb with the 00 trailing so this can also be
used */
/* for bgr24. */
movd (%0), %%mm0; /* Load y 0x00000000000000yy */
movd (%1), %%mm1; /* Load u 0x00000000000000cr */
[....]
"
:
: "r" (&y), "r" (&u), "r" (&v), "r" (output));
--------------- snap ---------------
those kind of multi-line string literals seem to be not allowed anymore
with gcc 3.3
--------------- snip ---------------
gcc 3.2 just gave a warning about multi-line string literals:
/scratch/Squeak-3.5-1devel/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c:264:5:
warning: multi-line string literals are deprecated
--------------- snap ---------------
i didn't find the compiler-option responsible for this in order to turn
it off.
so i had to patch the file by exchanging those multi-line string
literals by concatenations of single newline-delimited strings...
--------------- snip ---------------
asm("\n".
"/* Output will be 0x00rrggbb with the 00 trailing so this can also be
used */\n".
"/* for bgr24. */\n".
" movd (%0), %%mm0; /* Load y 0x00000000000000yy */\n".
" movd (%1), %%mm1; /* Load u 0x00000000000000cr */\n".
"[....]\n".
"\n"
:
: "r" (&y), "r" (&u), "r" (&v), "r" (output));
--------------- snap ---------------
don't know, if there was a better way to handle that - didn't find one...
cheers,
ivo
More information about the Squeak-dev
mailing list
|