X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfig%2Fi386%2Fnetbsd.h;h=dd7eae1a84788cdffd88b0c3daf69cf77738fe69;hb=8cae609cdca397a87c1059b07a44ef9b3b63ee53;hp=5e113fbe7c4a211b813bf512512063a0695b4519;hpb=d4baeab8c110019e02ea57fbe2f96e76f26dd1b4;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/config/i386/netbsd.h b/gcc/config/i386/netbsd.h index 5e113fbe7c4..dd7eae1a847 100644 --- a/gcc/config/i386/netbsd.h +++ b/gcc/config/i386/netbsd.h @@ -1,19 +1,24 @@ -/* This goes away when the math-emulator is fixed */ -#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + NETBSD_OS_CPP_BUILTINS_AOUT(); \ + } \ + while (0) -/* This is tested by i386gas.h. */ -#define YES_UNDERSCORES +#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 a.out)"); -#include +/* This goes away when the math-emulator is fixed */ +#undef TARGET_SUBTARGET_DEFAULT +#define TARGET_SUBTARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) -/* Get perform_* macros to build libgcc.a. */ -#include +#undef SUBTARGET_EXTRA_SPECS +#define SUBTARGET_EXTRA_SPECS \ + { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, -/* Get generic NetBSD definitions. */ -#include +#undef CPP_SPEC +#define CPP_SPEC "%(netbsd_cpp_spec)" -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -Di386 -D__NetBSD__ -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386)" #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" @@ -21,46 +26,23 @@ #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "int" -#undef WCHAR_TYPE -#define WCHAR_TYPE "int" - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* There are conflicting reports about whether this system uses - a different assembler syntax. wilson@cygnus.com says # is right. */ -#undef COMMENT_BEGIN -#define COMMENT_BEGIN "#" - #undef ASM_APP_ON #define ASM_APP_ON "#APP\n" #undef ASM_APP_OFF #define ASM_APP_OFF "#NO_APP\n" - -/* The following macros are stolen from i386v4.h */ -/* These have to be defined to get PIC code correct */ - -/* This is how to output an element of a case-vector that is relative. - This is only used for PIC code. See comments by the `casesi' insn in - i386.md for an explanation of the expression this outputs. */ - -#undef ASM_OUTPUT_ADDR_DIFF_ELT -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \ - fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE) - -/* Indicate that jump tables go in the text section. This is - necessary when compiling PIC code. */ - -#define JUMP_TABLES_IN_TEXT_SECTION /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions. */ #define DEFAULT_PCC_STRUCT_RETURN 0 +/* i386 netbsd still uses old binutils that don't insert nops by default + when the .align directive demands to insert extra space in the text + segment. */ +#undef ASM_OUTPUT_ALIGN +#define ASM_OUTPUT_ALIGN(FILE,LOG) \ + if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG)) + /* Profiling routines, partially copied from i386/osfrose.h. */ /* Redefine this to use %eax instead of %edx. */ @@ -76,3 +58,15 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } + +/* Until they use ELF or something that handles dwarf2 unwinds + and initialization stuff better. */ +#define DWARF2_UNWIND_INFO 0 + +/* Redefine this so that it becomes "_GLOBAL_OFFSET_TABLE_" when the label + prefix is added. */ +#undef GOT_SYMBOL_NAME +#define GOT_SYMBOL_NAME "GLOBAL_OFFSET_TABLE_" + +/* Attempt to enable execute permissions on the stack. */ +#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK