OSDN Git Service

Update banner, reformat comments.
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / linux.h
1 /* Definitions for Intel 386 running Linux
2    Copyright (C) 1992, 1994 Free Software Foundation, Inc.
3    Contributed by H.J. Lu (hjl@nynexst.com)
4
5 This file is part of GNU CC.
6
7 GNU CC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GNU CC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU CC; see the file COPYING.  If not, write to
19 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
20
21 #if 0   /* The FSF has fixed the known bugs. But ....... */
22
23 /* Linux has a hacked gas 1.38.1, which can handle repz, repnz
24  and fildll.  */
25
26 #define GOOD_GAS
27 #endif
28
29 /* This is tested by i386/gas.h.  */
30 #define YES_UNDERSCORES
31
32 #ifndef LINUX_ELF
33 #include "i386/gstabs.h"
34 #endif
35
36 /* Specify predefined symbols in preprocessor.  */
37
38 #undef CPP_PREDEFINES
39 #define CPP_PREDEFINES "-Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)"
40
41 #undef CPP_SPEC
42 #if TARGET_CPU_DEFAULT == 2
43 #define CPP_SPEC "%{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE}"
44 #else
45 #define CPP_SPEC "%{m486:-D__i486__} %{posix:-D_POSIX_SOURCE}"
46 #endif
47
48 #undef SIZE_TYPE
49 #define SIZE_TYPE "unsigned int"
50
51 #undef PTRDIFF_TYPE
52 #define PTRDIFF_TYPE "int"
53
54 #undef WCHAR_TYPE
55 #define WCHAR_TYPE "long int"
56
57 #undef WCHAR_TYPE_SIZE
58 #define WCHAR_TYPE_SIZE BITS_PER_WORD
59
60 #undef HAVE_ATEXIT
61 #define HAVE_ATEXIT
62
63 /* Linux uses ctype from glibc.a. I am not sure how complete it is.
64    For now, we play safe. It may change later. */
65
66 #if 0
67 #undef MULTIBYTE_CHARS
68 #define MULTIBYTE_CHARS 1
69 #endif
70
71 #undef LIB_SPEC
72 #define LIB_SPEC "%{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}"
73
74
75 #undef STARTFILE_SPEC
76 #undef GPLUSPLUS_INCLUDE_DIR
77
78 #define STARTFILE_SPEC  \
79   "%{pg:gcrt0.o%s -static} %{!pg:%{p:gcrt0.o%s -static} %{!p:crt0.o%s %{g*:-static}%{!static:%{nojump:-nojump}} %{static:-static}}}"
80
81 /*  The native Linux system uses this. */
82 #define GPLUSPLUS_INCLUDE_DIR "/usr/g++-include"
83 \f
84 /* There are conflicting reports about whether this system uses
85    a different assembler syntax.  wilson@cygnus.com says # is right.  */
86 #undef COMMENT_BEGIN
87 #define COMMENT_BEGIN "#"
88
89 #undef ASM_APP_ON
90 #define ASM_APP_ON "#APP\n"
91
92 #undef ASM_APP_OFF
93 #define ASM_APP_OFF "#NO_APP\n"
94 \f
95 /* Don't default to pcc-struct-return, because gcc is the only compiler, and
96    we want to retain compatibility with older gcc versions.  */
97 #define DEFAULT_PCC_STRUCT_RETURN 0
98
99 /* We need that too. */
100 #define HANDLE_SYSV_PRAGMA
101
102 #undef LINK_SPEC
103
104 /* We want to pass -v to linker */
105 #if TARGET_CPU_DEFAULT == 2
106 #define LINK_SPEC       "%{v:-dll-verbose} %{!m386:-m486}"
107 #else
108 #define LINK_SPEC       "%{v:-dll-verbose} %{m486:-m486}"
109 #endif