[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Serious bug in C compiler on 2.6




 Affected platform: Amiga, possibly all m68k based platforms
 Gcc version: GNU C version 2.95.1 19990816 (release) (m68k-unknown-openbsd2.6)

 The compiler front end, both cc and gcc, doesn't pass target specific options
 to the assembler. This leads to gobs of "instruction/operands mismatch"
 errors.

 [ I presume that as produces 68020 objects by default. If that's the case,
   only -m680x0, x>2 options are affected. I further think that the
   instructions causing problems are the fpu commands which need to be
   emulated on 68040/68060. ]

$ gcc -m68040 -Wall -O -fomit-frame-pointer -v -c pngset.c
[...]
 as -o pngset.o /var/tmp/ccH32537.s
/var/tmp/ccH32537.s: Assembler messages:
/var/tmp/ccH32537.s:33: Error: "instruction/operands mismatch" -- Statement 'fsmoved sp@(12),fp0' ignored
/var/tmp/ccH32537.s:35: Error: "instruction/operands mismatch" -- Statement 'fsmoved sp@(20),fp0' ignored
[...]

 Workaround: use -Wa,-m68040 (or -Wa,-m68060).