home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.3.3-src.lha / GNU / src / amiga / gcc-2.3.3 / config / m88kdgux.h < prev    next >
C/C++ Source or Header  |  1994-02-06  |  7KB  |  182 lines

  1. /* Definitions of target machine for GNU compiler.
  2.    Motorola m88100 running DG/UX.
  3.    Copyright (C) 1988, 1989, 1990, 1991 Free Software Foundation, Inc.
  4.    Contributed by Michael Tiemann (tiemann@mcc.com)
  5.    Enhanced by Michael Meissner (meissner@osf.org)
  6.    Currently supported by Tom Wood (wood@dg-rtp.dg.com)
  7.  
  8. This file is part of GNU CC.
  9.  
  10. GNU CC is free software; you can redistribute it and/or modify
  11. it under the terms of the GNU General Public License as published by
  12. the Free Software Foundation; either version 2, or (at your option)
  13. any later version.
  14.  
  15. GNU CC is distributed in the hope that it will be useful,
  16. but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. GNU General Public License for more details.
  19.  
  20. You should have received a copy of the GNU General Public License
  21. along with GNU CC; see the file COPYING.  If not, write to
  22. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  23.  
  24. /* You're not seeing double!  To transition to dwarf debugging, both are
  25.    supported.  The option -msvr4 and -mversion-03.00 specify (for DG/UX)
  26.    `real' elf.  With these combinations, -g means dwarf.  */
  27. /* DWARF_DEBUGGING_INFO defined in svr4.h.  */
  28. #define SDB_DEBUGGING_INFO
  29. #define PREFERRED_DEBUGGING_TYPE \
  30.   (GET_VERSION_0300_SYNTAX ? DWARF_DEBUG : SDB_DEBUG)
  31.  
  32. #ifndef NO_BUGS
  33. #define AS_BUG_IMMEDIATE_LABEL
  34. /* The DG/UX 4.30 assembler doesn't accept the symbol `fcr63'.  */
  35. #define AS_BUG_FLDCR
  36. #endif
  37.  
  38. #include "svr4.h"
  39. #include "m88k.h"
  40.  
  41. /* Augment TARGET_SWITCHES with the MXDB options.  */
  42. #define MASK_STANDARD        0x40000000 /* Retain standard information */
  43. #define MASK_LEGEND        0x20000000 /* Retain legend information */
  44. #define MASK_EXTERNAL_LEGEND    0x10000000 /* Make external legends */
  45.  
  46. #define TARGET_STANDARD          (target_flags & MASK_STANDARD)
  47. #define TARGET_LEGEND          (target_flags & MASK_LEGEND)
  48. #define TARGET_EXTERNAL_LEGEND      (target_flags & MASK_EXTERNAL_LEGEND)
  49.  
  50. #undef  SUBTARGET_SWITCHES
  51. #define SUBTARGET_SWITCHES \
  52.     { "standard",             MASK_STANDARD }, \
  53.     { "legend",                 MASK_LEGEND }, \
  54.     { "external-legend",         MASK_EXTERNAL_LEGEND }, \
  55.     /* the following is used only in the *_SPEC's */ \
  56.     { "keep-coff",             0 },
  57.  
  58. /* Default switches */
  59. #undef    TARGET_DEFAULT
  60. #define TARGET_DEFAULT    (MASK_CHECK_ZERO_DIV     | \
  61.              MASK_OCS_DEBUG_INFO     | \
  62.              MASK_OCS_FRAME_POSITION)
  63. #undef    CPU_DEFAULT
  64. #define CPU_DEFAULT MASK_88000
  65.  
  66. /* Macros to be automatically defined.  __svr4__ is our extension.
  67.    __CLASSIFY_TYPE__ is used in the <varargs.h> and <stdarg.h> header
  68.    files with DG/UX revision 5.40 and later.  This allows GNU CC to
  69.    operate without installing the header files.  */
  70.  
  71. #undef    CPP_PREDEFINES
  72. #define CPP_PREDEFINES "-Dm88000 -Dm88k -Dunix -DDGUX -D__CLASSIFY_TYPE__=2\
  73.    -D__svr4__ -Asystem(unix) -Acpu(m88k) -Amachine(m88k)"
  74.  
  75. /* If -m88100 is in effect, add -Dm88100; similarly for -m88110.
  76.    Here, the CPU_DEFAULT is assumed to be -m88000.  If not -ansi,
  77.    -traditional, or restricting include files to one specific source
  78.    target, specify full DG/UX features.  */
  79. #undef    CPP_SPEC
  80. #define    CPP_SPEC "%{!m88000:%{!m88100:%{m88110:-D__m88110__}}} \
  81.           %{!m88000:%{!m88110:%{m88100:-D__m88100__}}} \
  82.           %{!ansi:%{!traditional:-D__OPEN_NAMESPACE__}}"
  83.  
  84. /* Assembler support (-V, silicon filter, legends for mxdb).  */
  85. #undef    ASM_SPEC
  86. #define ASM_SPEC "\
  87. %{V} %{v:%{!V:-V}} %{pipe: - %{msvr4:%{mversion-03.00:-KV3}}}\
  88. %{!mlegend:%{mstandard:-Wc,off}}\
  89. %{mlegend:-Wc,-fix-bb,-h\"gcc-2.2.14\",-s\"%i\"\
  90. %{traditional:,-lc}%{!traditional:,-lansi-c}\
  91. %{mstandard:,-keep-std}\
  92. %{mkeep-coff:,-keep-coff}\
  93. %{mexternal-legend:,-external}\
  94. %{mocs-frame-position:,-ocs}}"
  95.  
  96. /* Override svr4.h.  */
  97. #undef    ASM_FINAL_SPEC
  98. #undef    STARTFILE_SPEC
  99.  
  100. /* Linker and library spec's.
  101.    -static, -shared, -symbolic, -h* and -z* access AT&T V.4 link options.
  102.    -svr4 instructs gcc to place /usr/lib/values-X[cat].o on link the line.
  103.    When the -G link option is used (-shared and -symbolic) a final link is
  104.    not being done.  */
  105. #undef    LIB_SPEC
  106. #define LIB_SPEC "%{!shared:%{!symbolic:-lc}}"
  107. #undef    LINK_SPEC
  108. #define LINK_SPEC "%{z*} %{h*} %{V} %{v:%{!V:-V}} \
  109.            %{static:-dn -Bstatic} \
  110.            %{shared:-G -dy} \
  111.            %{symbolic:-Bsymbolic -G -dy} \
  112.            %{pg:-L/usr/lib/libp}%{p:-L/usr/lib/libp}"
  113. #undef    STARTFILE_SPEC
  114. #define STARTFILE_SPEC "%{!shared:%{!symbolic:%{pg:gcrt0.o%s} \
  115.              %{!pg:%{p:/lib/mcrt0.o}%{!p:/lib/crt0.o}} \
  116.              %{svr4:%{ansi:/lib/values-Xc.o} \
  117.               %{!ansi:%{traditional:/lib/values-Xt.o} \
  118.                %{!traditional:/usr/lib/values-Xa.o}}}}}"
  119.  
  120. #undef    GPLUSPLUS_INCLUDE_DIR
  121. #define GPLUSPLUS_INCLUDE_DIR "/usr/opt/g++/lib/g++-include"
  122.  
  123. /* Fast DG/UX version of profiler that does not require lots of
  124.    registers to be stored.  */
  125. #undef    FUNCTION_PROFILER
  126. #define FUNCTION_PROFILER(FILE, LABELNO) \
  127.   output_function_profiler (FILE, LABELNO, "gcc.mcount", 0)
  128.  
  129. /* DGUX V.4 isn't quite ELF--yet.  */
  130. #undef  VERSION_0300_SYNTAX
  131. #define VERSION_0300_SYNTAX (TARGET_SVR4 && m88k_version_0300)
  132.  
  133. /* Same, but used before OVERRIDE_OPTIONS has been processed.  */
  134. #define GET_VERSION_0300_SYNTAX \
  135.   (TARGET_SVR4 && m88k_version != 0 && strcmp (m88k_version, "03.00") >= 0)
  136.  
  137. /* Output the legend info for mxdb when debugging except if standard
  138.    debugging information only is explicitly requested.  */
  139. #undef  ASM_FIRST_LINE
  140. #define ASM_FIRST_LINE(FILE)                        \
  141.   do {                                    \
  142.     if (VERSION_0300_SYNTAX)                        \
  143.       fprintf (FILE, "\t%s\t \"03.00\"\n", VERSION_ASM_OP);        \
  144.     if (write_symbols != NO_DEBUG                    \
  145.     && ! (TARGET_STANDARD && ! TARGET_LEGEND))            \
  146.       {                                    \
  147.     fprintf (FILE, ";legend_info -fix-bb -h\"gcc-%s\" -s\"%s\"",    \
  148.          VERSION_STRING, main_input_filename);            \
  149.     fputs (flag_traditional ? " -lc" : " -lansi-c", FILE);        \
  150.     if (TARGET_STANDARD)                        \
  151.       fputs (" -keep-std", FILE);                    \
  152.     if (TARGET_EXTERNAL_LEGEND)                    \
  153.       fputs (" -external", FILE);                    \
  154.     if (TARGET_OCS_FRAME_POSITION)                    \
  155.       fputs (" -ocs", FILE);                    \
  156.     fputc ('\n', FILE);                        \
  157.       }                                    \
  158.   } while (0)
  159.  
  160. /* Override svr4.h.  */
  161. #undef PTRDIFF_TYPE
  162. #undef WCHAR_TYPE
  163. #undef WCHAR_TYPE_SIZE
  164.  
  165. /* Override svr4.h and m88k.h except when compiling crtstuff.c.  */
  166. #if !defined (CRT_BEGIN) && !defined (CRT_END)
  167. #if 0 /* The SVR4 init method doesn't yet work.  */
  168. #undef    INIT_SECTION_ASM_OP
  169. #define INIT_SECTION_ASM_OP (VERSION_0300_SYNTAX        \
  170.                  ? "section\t .init,\"xa\""    \
  171.                  : "section\t .init,\"x\"")
  172. #endif
  173. #undef    CTORS_SECTION_ASM_OP
  174. #define CTORS_SECTION_ASM_OP (VERSION_0300_SYNTAX        \
  175.                   ? "section\t .ctors,\"aw\""    \
  176.                   : "section\t .ctors,\"d\"")
  177. #undef    DTORS_SECTION_ASM_OP
  178. #define DTORS_SECTION_ASM_OP (VERSION_0300_SYNTAX        \
  179.                   ? "section\t .dtors,\"aw\""    \
  180.                   : "section\t .dtors,\"d\"")
  181. #endif /* crtstuff.c */
  182.