Subject: kernel with 'options COMPAT_LINUX'
To: None <port-mac68k@netbsd.org>
From: Heliodoro Tammaro <helio@tacheles.de>
List: port-mac68k
Date: 05/26/1999 18:18:57
when i try to compile my kernel (1.4) with 'options COMPAT_LINUX' i get the
following message:


cpp -traditional -D_LOCORE -I. -I../../../../arch -I../../../.. -nostdinc
-DHZ="0x3c" -DM68030 -DLKM -DDIAGNOSTIC -DMAXUSERS=16 -D_KERNEL -Dmac68k
../../../../compat/linux/arch/m68k/linux_sig_machdep.S | sed -e 's/^#.*//'
| as -o linux_sig_machdep.o
{standard input}: Assembler messages:
{standard input}:316: Error: "instruction/operands mismatch" -- Statement
'moveq #LINUX_SYS_exit,d0' ignored
*** Error code 1

Stop.


the 'guilty' code in compat/linux/arch/m68k/linux_sig_machdep.S is:


/*
 * Signal "trampoline" code for Linux emulation.
 * The sigtramp for Linux/m68k is on the stack frame, and this is a dummy.
 */
        .align  2
GLOBAL(linux_sigcode)
        moveq   #LINUX_SYS_exit,d0      | _exit(?)
        trap    #0
        .align  2
GLOBAL(linux_esigcode)


in my compat/linux/arch/m68k/linux_syscall.h   LINUX_SYS_exit is defined as:

/* syscall: "exit" ret: "int" args: "int" */
#define LINUX_SYS_exit  1

does anybody get the same error? can somebody explain me what's going on there?

tia


-- helio