Commit | Line | Data |
---|---|---|
9bf86ebb PR |
1 | /* Configuration for an i386 running 386BSD as the target machine. */ |
2 | ||
3 | /* This is tested by i386gas.h. */ | |
4 | #define YES_UNDERSCORES | |
5 | ||
6 | #include "i386/gstabs.h" | |
7 | ||
8 | /* Get perform_* macros to build libgcc.a. */ | |
9 | #include "i386/perform.h" | |
10 | ||
11 | #undef CPP_PREDEFINES | |
12 | #define CPP_PREDEFINES "-Dunix -Di386 -D____386BSD____ -D__386BSD__ -DBSD_NET2" | |
13 | ||
14 | /* Like the default, except no -lg. */ | |
15 | #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" | |
16 | ||
17 | #undef SIZE_TYPE | |
18 | #define SIZE_TYPE "unsigned int" | |
19 | ||
20 | #undef PTRDIFF_TYPE | |
21 | #define PTRDIFF_TYPE "int" | |
22 | ||
23 | #undef WCHAR_TYPE | |
24 | #define WCHAR_TYPE "short unsigned int" | |
25 | ||
26 | #define WCHAR_UNSIGNED 1 | |
27 | ||
28 | #undef WCHAR_TYPE_SIZE | |
29 | #define WCHAR_TYPE_SIZE 16 | |
30 | ||
31 | /* 386BSD does have atexit. */ | |
32 | ||
33 | #define HAVE_ATEXIT | |
34 | ||
35 | /* Redefine this to use %eax instead of %edx. */ | |
36 | #undef FUNCTION_PROFILER | |
37 | #define FUNCTION_PROFILER(FILE, LABELNO) \ | |
38 | { \ | |
39 | if (flag_pic) \ | |
40 | { \ | |
41 | fprintf (FILE, "\tleal %sP%d@GOTOFF(%%ebx),%%eax\n", \ | |
42 | LPREFIX, (LABELNO)); \ | |
43 | fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \ | |
44 | } \ | |
45 | else \ | |
46 | { \ | |
47 | fprintf (FILE, "\tmovl $%sP%d,%%eax\n", LPREFIX, (LABELNO)); \ | |
48 | fprintf (FILE, "\tcall mcount\n"); \ | |
49 | } \ | |
50 | } | |
51 | ||
52 | /* There are conflicting reports about whether this system uses | |
53 | a different assembler syntax. wilson@cygnus.com says # is right. */ | |
54 | #undef COMMENT_BEGIN | |
55 | #define COMMENT_BEGIN "#" | |
56 | ||
57 | #undef ASM_APP_ON | |
58 | #define ASM_APP_ON "#APP\n" | |
59 | ||
60 | #undef ASM_APP_OFF | |
61 | #define ASM_APP_OFF "#NO_APP\n" | |
62 | \f | |
63 | /* The following macros are stolen from i386v4.h */ | |
64 | /* These have to be defined to get PIC code correct */ | |
65 | ||
66 | /* This is how to output an element of a case-vector that is relative. | |
67 | This is only used for PIC code. See comments by the `casesi' insn in | |
68 | i386.md for an explanation of the expression this outputs. */ | |
69 | ||
70 | #undef ASM_OUTPUT_ADDR_DIFF_ELT | |
71 | #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \ | |
72 | fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE) | |
73 | ||
74 | /* Indicate that jump tables go in the text section. This is | |
75 | necessary when compiling PIC code. */ | |
76 | ||
77 | #define JUMP_TABLES_IN_TEXT_SECTION | |
78 | ||
79 | /* Don't default to pcc-struct-return, because gcc is the only compiler, and | |
80 | we want to retain compatibility with older gcc versions. */ | |
81 | #define DEFAULT_PCC_STRUCT_RETURN 0 |