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

Re: [MiNT] Kernel compiling error



Roberto Ferniani wrote:
I've checked the cvs releases with the -D switch from  may 30 to  june
04 and the make error appear only after that release. So something is
changed in the sources. I'm just curious to know why the 020-60 switch
was working before and not now.

I think this is a side effect of my ColdFire patch on 2011/06/03:
http://www.atariforge.net/cgi-bin/cvsweb/freemint/sys/arch/Makefile.objs.diff?r1=text&tr1=1.12&r2=text&tr2=1.13&f=h

Previously, mmu030.S was always compiled with -m68030, regardless to what general CPU option was used. After my patch, the general CPU option is also used to compile mmu030.S. No more exception.

Note that passing some CPU option to the *assembler* does not affect the optimization level, it simply allows or forbids the of use some instructions. For example, this is very handy for ColdFire: when an assembler source file compiles, there is no more unsupported instruction.

If I remember correclty, the GCC -m68020-60 option is actually -m68020 *without* the instructions unsupported on 68060. I guess that the pmove instruction causing trouble here is supported on 68020 but not on 68060. Theoretically, -m68020-60 is worse than -m68020 because it uses only a subset of the 68020 instruction set, to be 68060 friendly. So really, in order to build any software optimally for a specific CPU, use the specific CPU option such as -m68030, and avoid a range option such as -m68020-60. Anyway, in that case, I suppose there are very few differences. Also, if I'm not wrong, with GCC 4.x -m68030 implies the usage of the FPU, so really mint030.prg is the best for you. Same for XaAES.

--
Vincent Rivière