gcc -m68060 option in kernel Makefiles

Izumi Tsutsui <[email protected]> Sat, 17 Jan 2009 16:04:25 +0900
Newsgroups gmane.os.netbsd.ports.atari,gmane.os.netbsd.ports.amiga
Message-ID <[email protected]>
[email protected] wrote:

>  	Those builds use the sysinst and miniroot changes pulled up from
>  	current, so syncinc the kernel configs from current should be
>  	safe as well (the new miniroot doesn't use kernfs, and the BOOT
>  	kernel needs to be as small as possible for low memory machines
>  	while FALCON and BOOTX needs 68060)

I notice src/sys/arch/atari/conf/Makefile.atari has the following lines:

---
##
## (2) compile settings
##
CPPFLAGS+=	-Datari
.if empty(IDENT:M-DM68060)
CMACHFLAGS=	-m68020
.else
CMACHFLAGS=	-m68060 -Wa,-m68030
.endif
CFLAGS+=	${CMACHFLAGS} -msoft-float
---

i.e. if kernel config files have options M68060
-m68060 is implicitly passed to compiler.

I'm afraid that 68030 FALCON (and also other 040 HADES and MILAN?)
might have problems if compiler emits 060 specific instructions.

I guess these CMACHFLAGS should be changed to

CMACHFLAGS?=	-m68020-60 -Wa,-m68030

to just disable 68020 instructions which need to be emulated on 68060,
as well as arch/x68k/conf/Makefile.x68k does.
(-m68020-60 might emit 68881/68882 instructions which require emulation
 on 68040/060, but we already have -msoft-float for kernel)

Thoughts?
---
Izumi Tsutsui