Subject: GENERIC compile failed
To: None <port-playstation2@netbsd.org>
From: KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
List: port-playstation2
Date: 01/27/2005 01:51:39
hi all!


GENERIC compile failed. I try to compile by NetBSD-current 20050118.

------

#   compile  GENERIC/mips_machdep.o
/usr/pkg/cross-ps2/bin/mipsEEel-netbsd-gcc -mcpu=r5900 -mips1 -fno-pic -D__NetBSD__ -Ulinux -U__linux__ -U__linux -G 0 -mno-abicalls -msoft-float -ffreestanding -Os -mmemcpy -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Wno-uninitialized -Dplaystation2 -I. -I../../../../arch -I../../../.. -nostdinc -DMIPS3 -DMIPS3_5900 -DIPL_ICU_MASK -DSOFTFLOAT -D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ -DMAXUSERS=16 -D_KERNEL -D_KERNEL_OPT -I../../../../dist/ipf -c ../../../../arch/mips/mips/mips_machdep.c
In file included from ../../../../arch/mips/mips/mips_machdep.c:153:
mips/frame.h:51: field `sf_sc' has incomplete type

*** Failed target:  mips_machdep.o
*** Failed command: echo '# ' "compile GENERIC/mips_machdep.o"; echo /usr/pkg/cross-ps2/bin/mipsEEel-netbsd-gcc -mcpu=r5900 -mips1 -fno-pic -D__NetBSD__ -Ulinux -U__linux__ -U__linux -G 0 -mno-abicalls -msoft-float -ffreestanding -Os -mmemcpy -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Wno-uninitialized -Dplaystation2 -I. -I../../../../arch -I../../../.. -nostdinc -DMIPS3 -DMIPS3_5900 -DIPL_ICU_MASK -DSOFTFLOAT -D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ -DMAXUSERS=16 -D_KERNEL -D_KERNEL_OPT -I../../../../dist/ipf -c ../../../../arch/mips/mips/mips_machdep.c; /usr/pkg/cross-ps2/bin/mipsEEel-netbsd-gcc -mcpu=r5900 -mips1 -fno-pic -D__NetBSD__ -Ulinux -U__linux__ -U__linux -G 0 -mno-abicalls -msoft-float -ffreestanding -Os -mmemcpy -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Wno-uninitialized -Dplaystation2 -I. -I../.!
 ./../../arch -I../../../.. -nostdinc -DMIPS3 -DMIPS3_5900 -DIPL_ICU_MASK -DSOFTFLOAT -D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ -DMAXUSERS=16 -D_KERNEL -D_KERNEL_OPT -I../../../../dist/ipf -c ../../../../arch/mips/mips/mips_machdep.c
*** Error code 1

Stop.
nbmake: stopped in /usr/src/sys/arch/playstation2/compile/GENERIC

------

The cause is as follows. 

  In file included from ../../../../arch/mips/mips/mips_machdep.c:153:
  mips/frame.h:51: field `sf_sc' has incomplete type

variable `sf_sc` is type `struct  sigcontext`. However, Its defined by
mips/signal.h. And, COMPAT_16 is not defined in GENERIC.  


mips/signal.h ---

#if defined(_LIBC) || (defined(_KERNEL) && (defined(COMPAT_16)))
struct sigcontext {
        int     sc_onstack;     /* sigstack state to restore */
        int     __sc_mask13;    /* signal mask to restore (old style) */
        mips_reg_t sc_pc;       /* pc at time of signal */
        mips_reg_t sc_regs[32]; /* processor regs 0 to 31 */
        mips_reg_t mullo, mulhi;/* mullo and mulhi registers... */
        int     sc_fpused;      /* fp has been used */
        int     sc_fpregs[33];  /* fp regs 0 to 31 and csr */
        int     sc_fpc_eir;     /* floating point exception instruction reg */
        int     sc_xxx[8];      /* XXX reserved */
        sigset_t sc_mask;       /* signal mask to restore (new style) */
};
#endif /* _LIBC || _KERNEL */

--- mips/signal.h


Please define COMPAT_16 in GENERIC.
I defined COMPAT_16 (and COMPAT_20). I was able to build it.  :)


GENERIC ---

# Compatibility options
options         COMPAT_16       # NetBSD 1.6
options         COMPAT_20       # NetBSD 2.0

--- GENERIC

--
kiyohara