1117395Skan#define TARGET_OS_CPP_BUILTINS()		\
2117395Skan  do						\
3117395Skan    {						\
4117395Skan      NETBSD_OS_CPP_BUILTINS_AOUT();		\
5117395Skan    }						\
6117395Skan  while (0)
718334Speter
8117395Skan#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 a.out)");
918334Speter
1052284Sobrien/* This goes away when the math-emulator is fixed */
1190075Sobrien#undef TARGET_SUBTARGET_DEFAULT
1290075Sobrien#define TARGET_SUBTARGET_DEFAULT \
1352284Sobrien  (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
1452284Sobrien
15117395Skan#undef SUBTARGET_EXTRA_SPECS
16117395Skan#define SUBTARGET_EXTRA_SPECS			\
17117395Skan  { "netbsd_cpp_spec", NETBSD_CPP_SPEC },
18117395Skan
19117395Skan#undef CPP_SPEC
20117395Skan#define CPP_SPEC "%(netbsd_cpp_spec)"
21117395Skan
2218334Speter
2318334Speter#undef SIZE_TYPE
2418334Speter#define SIZE_TYPE "unsigned int"
2518334Speter
2618334Speter#undef PTRDIFF_TYPE
2718334Speter#define PTRDIFF_TYPE "int"
2818334Speter
2918334Speter#undef ASM_APP_ON
3018334Speter#define ASM_APP_ON "#APP\n"
3118334Speter
3218334Speter#undef ASM_APP_OFF
3318334Speter#define ASM_APP_OFF "#NO_APP\n"
3418334Speter
3518334Speter/* Don't default to pcc-struct-return, because gcc is the only compiler, and
3618334Speter   we want to retain compatibility with older gcc versions.  */
3718334Speter#define DEFAULT_PCC_STRUCT_RETURN 0
3818334Speter
3950397Sobrien/* i386 netbsd still uses old binutils that don't insert nops by default
4050397Sobrien   when the .align directive demands to insert extra space in the text
4150397Sobrien   segment.  */
4250397Sobrien#undef ASM_OUTPUT_ALIGN
4350397Sobrien#define ASM_OUTPUT_ALIGN(FILE,LOG) \
4450397Sobrien  if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
4550397Sobrien
4618334Speter/* Profiling routines, partially copied from i386/osfrose.h.  */
4718334Speter
4818334Speter/* Redefine this to use %eax instead of %edx.  */
4918334Speter#undef FUNCTION_PROFILER
5018334Speter#define FUNCTION_PROFILER(FILE, LABELNO)  \
5118334Speter{									\
5218334Speter  if (flag_pic)								\
5318334Speter    {									\
5418334Speter      fprintf (FILE, "\tcall mcount@PLT\n");				\
5518334Speter    }									\
5618334Speter  else									\
5718334Speter    {									\
5818334Speter      fprintf (FILE, "\tcall mcount\n");				\
5918334Speter    }									\
6018334Speter}
6150397Sobrien
6250397Sobrien/* Until they use ELF or something that handles dwarf2 unwinds
6350397Sobrien   and initialization stuff better.  */
6450397Sobrien#define DWARF2_UNWIND_INFO 0
65117395Skan
66117395Skan/* Redefine this so that it becomes "_GLOBAL_OFFSET_TABLE_" when the label
67117395Skan   prefix is added.  */
68117395Skan#undef GOT_SYMBOL_NAME
69117395Skan#define GOT_SYMBOL_NAME "GLOBAL_OFFSET_TABLE_"
70117395Skan
71117395Skan/* Attempt to enable execute permissions on the stack.  */
72132718Skan#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
73