home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / GCC / GCC258_5.LHA / gcc-2.5.8-amiga / config / arm / riscix.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-03  |  4.0 KB  |  117 lines

  1. /* Definitions of target machine for GNU compiler.  ARM RISCiX version.
  2.    Copyright (C) 1993 Free Software Foundation, Inc.
  3.    Contributed by Richard Earnshaw (rwe11@cl.cam.ac.uk), based on original
  4.           work by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
  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
  117.