Annotation of gcc/config/mips/osfrose.h, revision 1.1.1.4

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"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.