home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / gcc-2.5.8-src.lha / src / amiga / gcc-2.5.8 / config / i386 / linux.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-30  |  2.8 KB  |  121 lines

  1. /* Definitions for Intel 386 running Linux
  2.  * Copyright (C) 1992 Free Software Foundation, Inc.
  3.  *
  4.  * Written by H.J. Lu (hlu@eecs.wsu.edu)
  5.  *
  6.  * Linux is a POSIX.1 compatible UNIX clone for i386, which uses GNU
  7.  * stuffs as the native stuffs.
  8.  */
  9.  
  10. #if 0    /* The FSF has fixed the known bugs. But ....... */
  11.  
  12. /* Linux has a hacked gas 1.38.1, which can handle repz, repnz
  13.  * and fildll.
  14.  */
  15.  
  16. #define GOOD_GAS
  17.  
  18. #endif
  19.  
  20. /* This is tested by i386/gas.h.  */
  21. #define YES_UNDERSCORES
  22.  
  23. #ifndef LINUX_ELF
  24. #include "i386/gstabs.h"
  25. #endif
  26.  
  27. /* Specify predefined symbols in preprocessor.  */
  28.  
  29. #undef CPP_PREDEFINES
  30. #define CPP_PREDEFINES "-Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)"
  31.  
  32. #undef CPP_SPEC
  33. #if TARGET_CPU_DEFAULT == 2
  34. #define CPP_SPEC "%{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE}"
  35. #else
  36. #define CPP_SPEC "%{m486:-D__i486__} %{posix:-D_POSIX_SOURCE}"
  37. #endif
  38.  
  39. #undef SIZE_TYPE
  40. #define SIZE_TYPE "unsigned int"
  41.  
  42. #undef PTRDIFF_TYPE
  43. #define PTRDIFF_TYPE "int"
  44.  
  45. #undef WCHAR_TYPE
  46. #define WCHAR_TYPE "long int"
  47.  
  48. #undef WCHAR_TYPE_SIZE
  49. #define WCHAR_TYPE_SIZE BITS_PER_WORD
  50.  
  51. #undef HAVE_ATEXIT
  52. #define HAVE_ATEXIT
  53.  
  54. /* Linux uses ctype from glibc.a. I am not sure how complete it is.
  55.  * For now, we play safe. It may change later.
  56.  */
  57. #if 0
  58. #undef MULTIBYTE_CHARS
  59. #define MULTIBYTE_CHARS    1
  60. #endif
  61.  
  62. #undef LIB_SPEC
  63. #define LIB_SPEC "%{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}"
  64.  
  65.  
  66. #undef STARTFILE_SPEC
  67. #undef GPLUSPLUS_INCLUDE_DIR
  68.  
  69. #ifdef CROSS_COMPILE
  70.  
  71. /*
  72.  * For cross-compile, we just need to search `$(tooldir)/lib'
  73.  */
  74.  
  75. #define STARTFILE_SPEC  \
  76.   "%{pg:gcrt0.o%s -static} %{!pg:%{p:gcrt0.o%s -static} %{!p:crt0.o%s %{g*:-static} %{!static:%{nojump:-nojump}} %{static:-static}}} -L"TOOLDIR"/lib"
  77.  
  78. /*
  79.  *The cross-compile uses this.
  80.  */
  81. #define GPLUSPLUS_INCLUDE_DIR TOOLDIR"/g++-include"
  82.  
  83. #else
  84.  
  85. #define STARTFILE_SPEC  \
  86.   "%{pg:gcrt0.o%s -static} %{!pg:%{p:gcrt0.o%s -static} %{!p:crt0.o%s %{g*:-static}%{!static:%{nojump:-nojump}} %{static:-static}}}"
  87.  
  88. /*
  89.  *The native Linux system uses this.
  90.  */
  91. #define GPLUSPLUS_INCLUDE_DIR "/usr/g++-include"
  92.  
  93. #endif
  94.  
  95. /* There are conflicting reports about whether this system uses
  96.    a different assembler syntax.  wilson@cygnus.com says # is right.  */
  97. #undef COMMENT_BEGIN
  98. #define COMMENT_BEGIN "#"
  99.  
  100. #undef ASM_APP_ON
  101. #define ASM_APP_ON "#APP\n"
  102.  
  103. #undef ASM_APP_OFF
  104. #define ASM_APP_OFF "#NO_APP\n"
  105.  
  106. /* Don't default to pcc-struct-return, because gcc is the only compiler, and
  107.    we want to retain compatibility with older gcc versions.  */
  108. #define DEFAULT_PCC_STRUCT_RETURN 0
  109.  
  110. /* We need that too. */
  111. #define HANDLE_SYSV_PRAGMA
  112.  
  113. #undef LINK_SPEC
  114.  
  115. /* We want to pass -v to linker */
  116. #if TARGET_CPU_DEFAULT == 2
  117. #define LINK_SPEC    "%{v:-dll-verbose} %{!m386:-m486}"
  118. #else
  119. #define LINK_SPEC    "%{v:-dll-verbose} %{m486:-m486}"
  120. #endif
  121.