|
|
1.1 root 1: /* Definitions of target machine for GNU compiler.
2: DECstation (OSF/1 reference port with OSF/rose) version.
1.1.1.4 ! root 3: Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
1.1 root 4:
5: This file is part of GNU CC.
6:
7: GNU CC 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 2, or (at your option)
10: any later version.
11:
12: GNU CC 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 GNU CC; see the file COPYING. If not, write to
1.1.1.4 ! root 19: the Free Software Foundation, 59 Temple Place - Suite 330,
! 20: Boston, MA 02111-1307, USA. */
1.1 root 21:
22: #define DECSTATION
23: #define OSF_OS
24:
25: #define HALF_PIC_DEBUG TARGET_DEBUG_B_MODE
26: #define HALF_PIC_PREFIX "$Lp."
27:
28: #include "halfpic.h"
29:
30: #define WORD_SWITCH_TAKES_ARG(STR) \
31: (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) || !strcmp (STR, "pic-names"))
32:
1.1.1.2 root 33: #define CPP_PREDEFINES "\
34: -DOSF -DOSF1 -Dbsd4_2 -DMIPSEL -Dhost_mips -Dmips -Dunix -DR3000 -DSYSTYPE_BSD \
35: -Asystem(unix) -Asystem(xpg4) -Acpu(mips) -Amachine(mips)"
1.1 root 36:
1.1.1.3 root 37: #define ASM_SPEC "\
1.1 root 38: %{mmips-as: \
1.1.1.3 root 39: %{!.s:-nocpp} %{.s: %{cpp} %{nocpp}} \
40: %{pipe: %e-pipe is not supported.} \
41: %{K}} \
42: %{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{v} \
43: %{noasmopt:-O0} \
44: %{!noasmopt:%{O:-O2} %{O1:-O2} %{O2:-O2} %{O3:-O3}} \
45: %{g} %{g0} %{g1} %{g2} %{g3} \
46: %{ggdb:-g} %{ggdb0:-g0} %{ggdb1:-g1} %{ggdb2:-g2} %{ggdb3:-g3} \
47: %{gstabs:-g} %{gstabs0:-g0} %{gstabs1:-g1} %{gstabs2:-g2} %{gstabs3:-g3} \
48: %{gstabs+:-g} %{gstabs+0:-g0} %{gstabs+1:-g1} %{gstabs+2:-g2} %{gstabs+3:-g3} \
49: %{gcoff:-g} %{gcoff0:-g0} %{gcoff1:-g1} %{gcoff2:-g2} %{gcoff3:-g3}"
1.1 root 50:
51: #ifndef CROSS_COMPILE
52: #define ASM_FINAL_SPEC "\
53: %{mmips-as: %{!mno-mips-tfile: \
54: \n mips-tfile %{v*: -v} %{d*} \
55: %{K: -I %b.o~} \
56: %{!K: %{save-temps: -I %b.o~}} \
57: %{c:%W{o*}%{!o*:-o %b.o}}%{!c:-o %U.o} \
58: %{.s:%i} %{!.s:%g.s}}}"
59:
60: #else /* CROSS_COMPILE */
61: #define ASM_FINAL_SPEC "\
62: %{mmips-as: %{mmips-tfile: \
63: \n mips-tfile %{v*: -v} %{d*} \
64: %{K: -I %b.o~} \
65: %{!K: %{save-temps: -I %b.o~}} \
66: %{c:%W{o*}%{!o*:-o %b.o}}%{!c:-o %U.o} \
67: %{.s:%i} %{!.s:%g.s}}}"
68: #endif
69:
70: #define CPP_SPEC "\
71: %{.S: %{!ansi:%{!traditional:%{!traditional-cpp:%{!ftraditional: -traditional}}}}} \
72: %{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY} \
73: -ULANGUAGE_C -U__LANGUAGE_C__} \
1.1.1.2 root 74: %{.s: %{!ansi:%{!traditional:%{!traditional-cpp:%{!ftraditional: -traditional}}}}} \
75: %{.s: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY} \
76: -ULANGUAGE_C -U__LANGUAGE_C__} \
1.1 root 77: %{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
78: %{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
79: %{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
80: %{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
1.1.1.3 root 81: %{!.S:%{!.s: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}} \
82: %{mlong64:-D__PTRDIFF_TYPE__=long\\ int} \
83: %{!mlong64:-D__PTRDIFF_TYPE__=int} \
1.1.1.4 ! root 84: %{mips3:-U__mips -D__mips=3 -D__mips64} \
! 85: %{mgp32:-U__mips64} %{mgp64:-D__mips64} \
! 86: %{EB:-UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__ -D_MIPSEB -D__MIPSEB -D__MIPSEB__ %{!ansi:-DMIPSEB}} \
! 87: %{EL:-UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__ -D_MIPSEL -D__MIPSEL -D__MIPSEL__ %{!ansi:-DMIPSEL}}"
1.1 root 88:
1.1.1.3 root 89: /* ??? This assumes that GNU as is always used with GNU ld, and MIPS as is
90: always used with MIPS ld. */
1.1 root 91: #define LINK_SPEC "\
1.1.1.3 root 92: %{G*} %{EL} %{EB} %{mips1} %{mips2} %{mips3} \
93: %{bestGnum} \
1.1 root 94: %{!mmips-as: \
95: %{v*: -v} \
96: %{!noshrlib: %{pic-none: -noshrlib} %{!pic-none: -warn_nopic}} \
97: %{nostdlib} %{noshrlib} %{glue}}"
98:
99: #define LIB_SPEC "-lc"
100:
101: /* Define this macro meaning that `gcc' should find the library
102: `libgcc.a' by hand, rather than passing the argument `-lgcc' to
103: tell the linker to do the search. */
104:
105: #define LINK_LIBGCC_SPECIAL 1
106:
107: #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}"
108:
109: #define MACHINE_TYPE "DECstation with OSF/rose objects"
110:
111: #ifndef MD_EXEC_PREFIX
112: #define MD_EXEC_PREFIX "/usr/ccs/gcc/"
113: #endif
114:
115: #ifndef MD_STARTFILE_PREFIX
116: #define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
117: #endif
118:
119: /* Turn on -mpic-extern by default. */
120: #define CC1_SPEC "\
121: %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
1.1.1.3 root 122: %{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}%{mips3:-mfp64 -mgp64} \
1.1 root 123: %{G*} \
124: %{pic-none: -mno-half-pic} \
125: %{pic-lib: -mhalf-pic} \
126: %{pic-extern: -mhalf-pic} \
127: %{pic-calls: -mhalf-pic} \
128: %{pic-names*: -mhalf-pic} \
129: %{!pic-*: -mhalf-pic}"
130:
1.1.1.3 root 131: /* Specify size_t and wchar_t types. */
1.1 root 132: #define SIZE_TYPE "long unsigned int"
133: #define WCHAR_TYPE "unsigned int"
134: #define WCHAR_TYPE_SIZE BITS_PER_WORD
1.1.1.3 root 135: #define MAX_WCHAR_TYPE_SIZE MAX_LONG_TYPE_SIZE
1.1 root 136:
137: /* OSF/1 uses gas, not the mips assembler. */
138: #define TARGET_DEFAULT MASK_GAS
139:
140: /* OSF/rose uses stabs, not ECOFF. */
141: #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
142:
143: /* enable dwarf debugging for testing */
144: #define DWARF_DEBUGGING_INFO
1.1.1.3 root 145: /* This is needed by dwarfout.c. */
146: #define SET_ASM_OP ".set"
1.1 root 147:
148: /* Tell collect that the object format is OSF/rose. */
149: #define OBJECT_FORMAT_ROSE
150:
151: /* Tell collect where the appropriate binaries are. */
152: #define REAL_LD_FILE_NAME "/usr/ccs/gcc/gld"
153: #define REAL_NM_FILE_NAME "/usr/ccs/bin/nm"
154: #define REAL_STRIP_FILE_NAME "/usr/ccs/bin/strip"
155:
156: /* Default to -G 0 unless doing ecoff work. */
157: #define MIPS_DEFAULT_GVALUE ((TARGET_MIPS_AS) ? 8 : 0)
158:
159: /* Use atexit for static constructors/destructors, instead of defining
160: our own exit function. */
161: #define HAVE_ATEXIT
162:
163: /* Generate calls to memcpy, etc., not bcopy, etc. */
164: #define TARGET_MEM_FUNCTIONS
165:
166: /* A C statement to output assembler commands which will identify
167: the object file as having been compiled with GNU CC (or another
168: GNU compiler).
169:
170: If you don't define this macro, the string `gcc2_compiled.:' is
171: output. This string is calculated to define a symbol which, on
172: BSD systems, will never be defined for any other reason. GDB
173: checks for the presence of this symbol when reading the symbol
174: table of an executable.
175:
176: On non-BSD systems, you must arrange communication with GDB in
177: some other fashion. If GDB is not used on your system, you can
178: define this macro with an empty body.
179:
180: On OSF/1, gcc2_compiled. confuses the kernel debugger, so don't
181: put it out. */
182:
183: #define ASM_IDENTIFY_GCC(STREAM)
184:
185: /* Identify the front-end which produced this file. To keep symbol
186: space down, and not confuse kdb, only do this if the language is
187: not C. */
188:
189: #define ASM_IDENTIFY_LANGUAGE(STREAM) \
190: { \
191: if (strcmp (lang_identify (), "c") != 0) \
192: output_lang_identify (STREAM); \
193: }
194:
195: #include "mips/mips.h"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.