source: trunk/third/gcc/config/mips/osfrose.h @ 8834

Revision 8834, 6.6 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r8833, which included commits to RCS files with non-trunk default branches.
Line 
1/* Definitions of target machine for GNU compiler.
2   DECstation (OSF/1 reference port with OSF/rose) version.
3   Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
4
5This file is part of GNU CC.
6
7GNU CC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2, or (at your option)
10any later version.
11
12GNU CC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU CC; see the file COPYING.  If not, write to
19the Free Software Foundation, 59 Temple Place - Suite 330,
20Boston, MA 02111-1307, USA.  */
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
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)"
36
37#define ASM_SPEC "\
38%{mmips-as: \
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}"
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__} \
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__} \
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} \
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} \
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}}"
88
89/* ??? This assumes that GNU as is always used with GNU ld, and MIPS as is
90   always used with MIPS ld.  */
91#define LINK_SPEC "\
92%{G*} %{EL} %{EB} %{mips1} %{mips2} %{mips3} \
93%{bestGnum} \
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}}}}} \
122%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}%{mips3:-mfp64 -mgp64} \
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
131/* Specify size_t and wchar_t types.  */
132#define SIZE_TYPE       "long unsigned int"
133#define WCHAR_TYPE      "unsigned int"
134#define WCHAR_TYPE_SIZE BITS_PER_WORD
135#define MAX_WCHAR_TYPE_SIZE MAX_LONG_TYPE_SIZE
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
145/* This is needed by dwarfout.c.  */
146#define SET_ASM_OP      ".set"
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"
Note: See TracBrowser for help on using the repository browser.