Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/djgpp.h @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | f6334be47118 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 /* Configuration for an i386 running MS-DOS with DJGPP. | |
2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, | |
3 2007 Free Software Foundation, Inc. | |
4 | |
5 This file is part of GCC. | |
6 | |
7 GCC is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
9 the Free Software Foundation; either version 3, or (at your option) | |
10 any later version. | |
11 | |
12 GCC is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GCC; see the file COPYING3. If not see | |
19 <http://www.gnu.org/licenses/>. */ | |
20 | |
21 /* Support generation of DWARF2 debugging info. */ | |
22 #define DWARF2_DEBUGGING_INFO 1 | |
23 | |
24 /* Don't assume anything about the header files. */ | |
25 #define NO_IMPLICIT_EXTERN_C | |
26 | |
27 #define HANDLE_SYSV_PRAGMA 1 | |
28 | |
29 /* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ | |
30 #define HANDLE_PRAGMA_PACK_PUSH_POP 1 | |
31 | |
32 /* If defined, a C expression whose value is a string containing the | |
33 assembler operation to identify the following data as | |
34 uninitialized global data. If not defined, and neither | |
35 `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined, | |
36 uninitialized global data will be output in the data section if | |
37 `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be | |
38 used. */ | |
39 #undef BSS_SECTION_ASM_OP | |
40 #define BSS_SECTION_ASM_OP "\t.section\t.bss" | |
41 | |
42 /* Define the name of the .data section. */ | |
43 #undef DATA_SECTION_ASM_OP | |
44 #define DATA_SECTION_ASM_OP "\t.section .data" | |
45 | |
46 /* Define the name of the .ident op. */ | |
47 #undef IDENT_ASM_OP | |
48 #define IDENT_ASM_OP "\t.ident\t" | |
49 | |
50 /* Enable alias attribute support. */ | |
51 #ifndef SET_ASM_OP | |
52 #define SET_ASM_OP "\t.set\t" | |
53 #endif | |
54 | |
55 /* Define the name of the .text section. */ | |
56 #undef TEXT_SECTION_ASM_OP | |
57 #define TEXT_SECTION_ASM_OP "\t.section .text" | |
58 | |
59 /* Define standard DJGPP installation paths. */ | |
60 /* We override default /usr or /usr/local part with /dev/env/DJDIR which */ | |
61 /* points to actual DJGPP installation directory. */ | |
62 | |
63 /* Standard include directory */ | |
64 #undef STANDARD_INCLUDE_DIR | |
65 #define STANDARD_INCLUDE_DIR "/dev/env/DJDIR/include/" | |
66 | |
67 /* Search for as.exe and ld.exe in DJGPP's binary directory. */ | |
68 #undef MD_EXEC_PREFIX | |
69 #define MD_EXEC_PREFIX "/dev/env/DJDIR/bin/" | |
70 | |
71 /* Standard DJGPP library and startup files */ | |
72 #undef MD_STARTFILE_PREFIX | |
73 #define MD_STARTFILE_PREFIX "/dev/env/DJDIR/lib/" | |
74 | |
75 /* Correctly handle absolute filename detection in cp/xref.c */ | |
76 #define FILE_NAME_ABSOLUTE_P(NAME) \ | |
77 (((NAME)[0] == '/') || ((NAME)[0] == '\\') || \ | |
78 (((NAME)[0] >= 'A') && ((NAME)[0] <= 'z') && ((NAME)[1] == ':'))) | |
79 | |
80 #define TARGET_OS_CPP_BUILTINS() \ | |
81 do \ | |
82 { \ | |
83 builtin_define_std ("MSDOS"); \ | |
84 builtin_define_std ("GO32"); \ | |
85 builtin_assert ("system=msdos"); \ | |
86 } \ | |
87 while (0) | |
88 | |
89 /* Include <sys/version.h> so __DJGPP__ and __DJGPP_MINOR__ are defined. */ | |
90 #undef CPP_SPEC | |
91 #define CPP_SPEC "-remap %{posix:-D_POSIX_SOURCE} \ | |
92 -imacros %s../include/sys/version.h" | |
93 | |
94 /* We need to override link_command_spec in gcc.c so support -Tdjgpp.djl. | |
95 This cannot be done in LINK_SPECS as that LINK_SPECS is processed | |
96 before library search directories are known by the linker. | |
97 This avoids problems when specs file is not available. An alternate way, | |
98 suggested by Robert Hoehne, is to use SUBTARGET_EXTRA_SPECS instead. | |
99 */ | |
100 | |
101 #undef LINK_COMMAND_SPEC | |
102 #define LINK_COMMAND_SPEC \ | |
103 "%{!fsyntax-only: \ | |
104 %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \ | |
105 \t%{r} %{s} %{t} %{u*} %{x} %{z} %{Z}\ | |
106 \t%{!A:%{!nostdlib:%{!nostartfiles:%S}}}\ | |
107 \t%{static:} %{L*} %D %o\ | |
108 \t%{!nostdlib:%{!nodefaultlibs:%G %L %G}}\ | |
109 \t%{!A:%{!nostdlib:%{!nostartfiles:%E}}}\ | |
110 \t-Tdjgpp.djl %{T*}}}}}}}\n\ | |
111 %{!c:%{!M:%{!MM:%{!E:%{!S:stubify %{v} %{o*:%*} %{!o*:a.out} }}}}}" | |
112 | |
113 /* Always just link in 'libc.a'. */ | |
114 #undef LIB_SPEC | |
115 #define LIB_SPEC "-lc" | |
116 | |
117 /* Pick the right startup code depending on the -pg flag. */ | |
118 #undef STARTFILE_SPEC | |
119 #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:crt0.o%s}" | |
120 | |
121 /* Make sure that gcc will not look for .h files in /usr/local/include | |
122 unless user explicitly requests it. */ | |
123 #undef LOCAL_INCLUDE_DIR | |
124 | |
125 /* Switch into a generic section. */ | |
126 #define TARGET_ASM_NAMED_SECTION default_coff_asm_named_section | |
127 | |
128 /* This is how to output an assembler line | |
129 that says to advance the location counter | |
130 to a multiple of 2**LOG bytes. */ | |
131 | |
132 #undef ASM_OUTPUT_ALIGN | |
133 #define ASM_OUTPUT_ALIGN(FILE,LOG) \ | |
134 if ((LOG) != 0) fprintf ((FILE), "\t.p2align %d\n", LOG) | |
135 | |
136 /* This is how to output a global symbol in the BSS section. */ | |
137 #undef ASM_OUTPUT_ALIGNED_BSS | |
138 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ | |
139 asm_output_aligned_bss ((FILE), (DECL), (NAME), (SIZE), (ALIGN)) | |
140 | |
141 /* This is how to tell assembler that a symbol is weak */ | |
142 #undef ASM_WEAKEN_LABEL | |
143 #define ASM_WEAKEN_LABEL(FILE,NAME) \ | |
144 do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \ | |
145 fputc ('\n', FILE); } while (0) | |
146 | |
147 /* djgpp automatically calls its own version of __main, so don't define one | |
148 in libgcc, nor call one in main(). */ | |
149 #define HAS_INIT_SECTION | |
150 | |
151 /* Definitions for types and sizes. Wide characters are 16-bits long so | |
152 Win32 compiler add-ons will be wide character compatible. */ | |
153 #undef WCHAR_TYPE_SIZE | |
154 #define WCHAR_TYPE_SIZE 16 | |
155 | |
156 #undef WCHAR_TYPE | |
157 #define WCHAR_TYPE "short unsigned int" | |
158 | |
159 #undef WINT_TYPE | |
160 #define WINT_TYPE "int" | |
161 | |
162 #undef SIZE_TYPE | |
163 #define SIZE_TYPE "long unsigned int" | |
164 | |
165 #undef PTRDIFF_TYPE | |
166 #define PTRDIFF_TYPE "int" | |
167 | |
168 /* Used to be defined in xm-djgpp.h, but moved here for cross-compilers. */ | |
169 #define LIBSTDCXX "-lstdcxx" | |
170 | |
171 #define TARGET_VERSION fprintf (stderr, " (80386, MS-DOS DJGPP)"); | |
172 | |
173 /* Warn that -mbnu210 is now obsolete. */ | |
174 #undef SUBTARGET_OVERRIDE_OPTIONS | |
175 #define SUBTARGET_OVERRIDE_OPTIONS \ | |
176 do \ | |
177 { \ | |
178 if (TARGET_BNU210) \ | |
179 { \ | |
180 warning (0, "-mbnu210 is ignored (option is obsolete)"); \ | |
181 } \ | |
182 } \ | |
183 while (0) | |
184 | |
185 /* Support for C++ templates. */ | |
186 #undef MAKE_DECL_ONE_ONLY | |
187 #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) |