Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/interix.h @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | f6334be47118 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 /* Operating system specific defines to be used when targeting GCC for | |
2 Interix | |
3 Copyright (C) 1994, 1995, 1999, 2002, 2004, 2007 | |
4 Free Software Foundation, Inc. | |
5 Donn Terry, Softway Systems, Inc. (donn@softway.com) | |
6 Modified from code | |
7 Contributed by Douglas B. Rupp (drupp@cs.washington.edu). | |
8 | |
9 This file is part of GCC. | |
10 | |
11 GCC is free software; you can redistribute it and/or modify | |
12 it under the terms of the GNU General Public License as published by | |
13 the Free Software Foundation; either version 3, or (at your option) | |
14 any later version. | |
15 | |
16 GCC is distributed in the hope that it will be useful, | |
17 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 GNU General Public License for more details. | |
20 | |
21 You should have received a copy of the GNU General Public License | |
22 along with GCC; see the file COPYING3. If not see | |
23 <http://www.gnu.org/licenses/>. */ | |
24 | |
25 /* POSIX/Uni-thread only for now. Look at the winnt version | |
26 for windows/multi thread */ | |
27 | |
28 /* We need multiple -lc -lcpsx because they mutually refer; | |
29 that should go away someday */ | |
30 | |
31 #undef LIB_SPEC | |
32 #define LIB_SPEC "\ | |
33 %{!shared:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \ | |
34 %$INTERIX_ROOT/usr/lib/psxdll2.a \ | |
35 }} \ | |
36 %{!G:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \ | |
37 %$INTERIX_ROOT/usr/lib/psxdll2.a \ | |
38 }} \ | |
39 %{dynamic:-lc %$INTERIX_ROOT/usr/lib/psxdll.a \ | |
40 %$INTERIX_ROOT/usr/lib/psxdll2.a \ | |
41 } \ | |
42 %{v}" | |
43 | |
44 #undef LINK_SPEC | |
45 #define LINK_SPEC "%{!shared:-stack 0x400000,0x10000} \ | |
46 -subsystem posix \ | |
47 %{g} \ | |
48 %{dynamic:-Bdynamic} \ | |
49 %{static:-Bstatic} \ | |
50 %{shared:--shared -Bdynamic} \ | |
51 %{G:--shared -Bdynamic} \ | |
52 %{symbolic:--shared -Bsymbolic -Bdynamic} \ | |
53 %{soname*:--soname %*} \ | |
54 %{rpath*:--rpath %*} \ | |
55 " | |
56 | |
57 #undef STARTFILE_SPEC | |
58 #define STARTFILE_SPEC \ | |
59 "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}} %{shared:crti%O%s}" | |
60 | |
61 #undef WORD_SWITCH_TAKES_ARG | |
62 #define WORD_SWITCH_TAKES_ARG(STR) \ | |
63 ((DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \ | |
64 || !strcmp(STR, "rpath")) \ | |
65 && strcmp (STR, "Tdata") && strcmp (STR, "Ttext") \ | |
66 && strcmp (STR, "Tbss")) | |
67 | |
68 | |
69 #define STDC_0_IN_SYSTEM_HEADERS 1 | |
70 | |
71 #define HANDLE_SYSV_PRAGMA 1 | |
72 #undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */ | |
73 | |
74 /* Names to predefine in the preprocessor for this target machine. */ | |
75 | |
76 #define DBX_DEBUGGING_INFO 1 | |
77 #define SDB_DEBUGGING_INFO 1 | |
78 #undef PREFERRED_DEBUGGING_TYPE | |
79 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG | |
80 | |
81 | |
82 /* TARGET_DEFAULT from configure */ | |
83 | |
84 #undef WCHAR_TYPE | |
85 #undef WCHAR_TYPE_SIZE | |
86 #define WCHAR_TYPE "short unsigned int" | |
87 #define WCHAR_TYPE_SIZE 16 | |
88 | |
89 /* Our strategy for finding global constructors is a bit different, although | |
90 not a lot. */ | |
91 #define DO_GLOBAL_CTORS_BODY \ | |
92 do { \ | |
93 int i; \ | |
94 unsigned long nptrs; \ | |
95 func_ptr *p; \ | |
96 asm( \ | |
97 " .section .ctor_head, \"rw\"\n" \ | |
98 "1:\n" \ | |
99 " .text \n" \ | |
100 ASM_LOAD_ADDR(1b,%0) \ | |
101 : "=r" (p) : : "cc"); \ | |
102 for (nptrs = 0; p[nptrs] != 0; nptrs++); \ | |
103 for (i = nptrs-1; i >= 0; i--) \ | |
104 p[i] (); \ | |
105 } while (0) | |
106 | |
107 #define DO_GLOBAL_DTORS_BODY \ | |
108 do { \ | |
109 func_ptr *p; \ | |
110 asm( \ | |
111 " .section .dtor_head, \"rw\"\n" \ | |
112 "1:\n" \ | |
113 " .text \n" \ | |
114 ASM_LOAD_ADDR(1b,%0) \ | |
115 : "=r" (p) : : "cc"); \ | |
116 while (*p) \ | |
117 { \ | |
118 p++; \ | |
119 (*(p-1)) (); \ | |
120 } \ | |
121 } while (0) |