home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / GNUSRC.Z / isc.h < prev    next >
Text File  |  1995-05-29  |  3KB  |  90 lines

  1. /* Assembler-independent definitions for an Intel 386 running
  2.    Interactive Unix System V. Specifically, this is for recent versions
  3.    that support POSIX.  */
  4.  
  5. /* Use crt1.o, not crt0.o, as a startup file, and crtn.o as a closing file. */
  6. #undef STARTFILE_SPEC
  7. #define STARTFILE_SPEC \
  8.   "%{!shlib:%{posix:%{pg:mcrtp1.o%s}%{!pg:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}}\
  9.    %{Xp:%{pg:mcrtp1.o%s}%{!pg:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}}\
  10.    %{!posix:%{!Xp:%{pg:mcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}\
  11.    %{p:-L/lib/libp} %{pg:-L/lib/libp}}}}\
  12.    %{shlib:%{Xp:crtp1.o%s}%{posix:crtp1.o%s}%{!posix:%{!Xp:crt1.o%s}}}\
  13.    crtbegin.o%s"
  14.   
  15. #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
  16.  
  17. /* Library spec */
  18. #undef LIB_SPEC
  19. #define LIB_SPEC "%{shlib:-lc_s} %{posix:-lcposix} %{Xp:-lcposix} -lc -lg"
  20.  
  21. #undef CPP_SPEC
  22. #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{Xp:-D_POSIX_SOURCE}"
  23.  
  24. /* ISC 2.2 uses `char' for `wchar_t'.  */
  25. #undef WCHAR_TYPE
  26. #define WCHAR_TYPE "char"
  27.  
  28. #undef WCHAR_TYPE_SIZE
  29. #define WCHAR_TYPE_SIZE BITS_PER_UNIT
  30.  
  31. #if 0
  32. /* This is apparently not true: ISC versions up to 3.0, at least, use
  33.    the standard calling sequence in which the called function pops the
  34.    extra arg.  */
  35. /* caller has to pop the extra argument passed to functions that return
  36.    structures. */
  37.  
  38. #undef RETURN_POPS_ARGS
  39. #define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE)   \
  40.   (TREE_CODE (FUNTYPE) == IDENTIFIER_NODE ? 0            \
  41.    : (TARGET_RTD                        \
  42.       && (TYPE_ARG_TYPES (FUNTYPE) == 0                \
  43.       || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE)))    \
  44.           == void_type_node))) ? (SIZE)            \
  45.    : 0)
  46. /* On other 386 systems, the last line looks like this:
  47.    : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0)  */
  48. #endif
  49.  
  50. /* Handle #pragma pack and #pragma weak.  */
  51. #define HANDLE_SYSV_PRAGMA
  52.  
  53. /* By default, target has a 80387, uses IEEE compatible arithmetic,
  54.    and returns float values in the 387, ie,
  55.    (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
  56.  
  57.    ISC's software emulation of a 387 fails to handle the `fucomp'
  58.    opcode.  fucomp is only used when generating IEEE compliant code.
  59.    So don't make TARGET_IEEE_FP default for ISC. */
  60.  
  61. #undef TARGET_DEFAULT
  62. #define TARGET_DEFAULT 0201
  63.  
  64. /* The ISC 2.0.2 software FPU emulator apparently can't handle
  65.    80-bit XFmode insns, so don't generate them.  */
  66. #undef LONG_DOUBLE_TYPE_SIZE
  67. #define LONG_DOUBLE_TYPE_SIZE 64
  68.  
  69. /* The ISC assembler does not like a .file directive with a name
  70.    longer than 14 characters.  Truncating it will not permit
  71.    debugging to work properly, but at least we won't get an error
  72.    message.  */
  73.  
  74. #undef ASM_FILE_START
  75. #define ASM_FILE_START(FILE)                     \
  76.   do {                                           \
  77.    char c;                                       \
  78.    int max = 0;                                  \
  79.    char *string = dump_base_name;                \
  80.                                                  \
  81.     fputs ("\t.file\t\"", FILE);                 \
  82.                                                  \
  83.     while ((c = *string++) != 0 && max++ < 14) { \
  84.        if (c == '\"' || c == '\\')               \
  85.          putc ('\\', FILE);                      \
  86.        putc (c, FILE);                           \
  87.     }                                            \
  88.     fputs ("\"\n", FILE);                        \
  89.   } while (0)
  90.