|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler. ARM RISCiX version. ! 2: Copyright (C) 1993 Free Software Foundation, Inc. ! 3: Contributed by Richard Earnshaw ([email protected]), based on original ! 4: work by Pieter `Tiggr' Schoenmakers ([email protected]) ! 5: and Martin Simmons (@harleqn.co.uk). ! 6: ! 7: This file is part of GNU CC. ! 8: ! 9: GNU CC is free software; you can redistribute it and/or modify ! 10: it under the terms of the GNU General Public License as published by ! 11: the Free Software Foundation; either version 2, or (at your option) ! 12: any later version. ! 13: ! 14: GNU CC is distributed in the hope that it will be useful, ! 15: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 16: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 17: GNU General Public License for more details. ! 18: ! 19: You should have received a copy of the GNU General Public License ! 20: along with GNU CC; see the file COPYING. If not, write to ! 21: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 22: ! 23: /* Translation to find startup files. On RISCiX boxes, gcrt0.o is in ! 24: /usr/lib. */ ! 25: #define STARTFILE_SPEC \ ! 26: "%{pg:/usr/lib/gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}" ! 27: ! 28: #ifndef CPP_PREDEFINES ! 29: #define CPP_PREDEFINES \ ! 30: "-Darm -Driscix -Dunix -Asystem(unix) -Acpu(arm) -Amachine(arm)" ! 31: #endif ! 32: #if 0 ! 33: #define CPP_PREDEFINES "-Darm -Driscos -Acpu(arm) -Amachine(arm)" ! 34: #endif ! 35: ! 36: #ifndef CPP_SPEC ! 37: #define CPP_SPEC "%{m6:-D__arm6__} \ ! 38: %{mbsd:%{pedantic:%e-mbsd and -pedantic incompatible} -D_BSD_C} \ ! 39: %{mxopen:%{mbsd:%e-mbsd and -mxopen incompatible} \ ! 40: %{pedantic:%e-mxopen and -pedantic incompatible} -D_XOPEN_C} \ ! 41: %{!mbsd:%{!mxopen:%{!ansi: -D_BSD_C}}}" ! 42: #endif ! 43: ! 44: /* RISCiX has some wierd symbol name munging, that is done to the object module ! 45: after assembly, which enables multiple libraries to be supported within ! 46: one (possibly shared) library. It basically changes the symbol name of ! 47: certain symbols (for example _bcopy is converted to _$bcopy if using BSD) ! 48: Symrename's parameters are determined as follows: ! 49: -mno-symrename Don't run symrename ! 50: -mbsd symrename -BSD <file> ! 51: -mxopen symrename -XOPEN <file> ! 52: -ansi symrename - <file> ! 53: <none> symrename -BSD <file> ! 54: */ ! 55: ! 56: #ifndef ASM_FINAL_SPEC ! 57: #if !defined (CROSS_COMPILER) ! 58: #define ASM_FINAL_SPEC "\ ! 59: %{!mno-symrename: \ ! 60: \n /usr/bin/symrename \ ! 61: -%{mbsd:%{ansi:%e-mbsd and -ansi incompatible}BSD}\ ! 62: %{mxopen:%{mbsd:%e-mbsd and -mxopen incompatible}\ ! 63: %{ansi:%e-mxopen and -ansi incompatible}XOPEN}\ ! 64: %{!mbsd:%{!mxopen:%{!ansi:BSD}}} %{c:%{o*:%*}%{!o*:%b.o}}%{!c:%U.o}}" ! 65: #endif ! 66: #endif ! 67: ! 68: /* None of these is actually used in cc1, so they modify bit 31 */ ! 69: #define ARM_EXTRA_TARGET_SWITCHES \ ! 70: {"bsd", 0x80000000}, {"xopen", 0x80000000}, {"no-symrename", 0x80000000}, ! 71: ! 72: ! 73: ! 74: /* Run-time Target Specification. */ ! 75: #define TARGET_VERSION \ ! 76: fputs (" (ARM/RISCiX)", stderr); ! 77: ! 78: /* This is used in ASM_FILE_START */ ! 79: #define ARM_OS_NAME "RISCiX" ! 80: ! 81: #ifdef riscos ! 82: #define TARGET_WHEN_DEBUGGING 3 ! 83: #else ! 84: #define TARGET_WHEN_DEBUGGING 1 ! 85: #endif ! 86: ! 87: /* 'char' is signed by default on RISCiX, unsigned on RISCOS. */ ! 88: #ifdef riscos ! 89: #define DEFAULT_SIGNED_CHAR 0 ! 90: #else ! 91: #define DEFAULT_SIGNED_CHAR 1 ! 92: #endif ! 93: ! 94: /* Define this if the target system supports the function atexit form the ! 95: ANSI C standard. If this is not defined, and INIT_SECTION_ASM_OP is not ! 96: defined, a default exit function will be provided to support C++. ! 97: The man page only describes on_exit, but atexit is also there. */ ! 98: #define HAVE_ATEXIT 1 ! 99: /* Some systems use __main in a way incompatible with its use in gcc, in these ! 100: cases use the macros NAME__MAIN to give a quoted symbol and SYMBOL__MAIN to ! 101: give the same symbol without quotes for an alternative entry point. You ! 102: must define both, or niether. */ ! 103: #ifndef NAME__MAIN ! 104: #define NAME__MAIN "__gccmain" ! 105: #define SYMBOL__MAIN __gccmain ! 106: #endif ! 107: ! 108: #include "arm/arm.h" ! 109: ! 110: /* The native RISCiX assembler does not support stabs of any kind; because ! 111: the native assembler is not used by the compiler, Acorn didn't feel it was ! 112: necessary to put them in! */ ! 113: ! 114: #ifdef DBX_DEBUGGING_INFO ! 115: #undef DBX_DEBUGGING_INFO ! 116: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.