]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /* |
2 | * This should never be included directly. It is included only from gc.h. | |
3 | * We separate it only to make gc.h more suitable as documentation. | |
4 | * | |
5 | * Some tests for old macros. These violate our namespace rules and will | |
6 | * disappear shortly. Use the GC_ names. | |
7 | */ | |
8 | #if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS) \ | |
9 | || defined(_SOLARIS_PTHREADS) || defined(GC_SOLARIS_PTHREADS) | |
10 | /* We no longer support old style Solaris threads. */ | |
11 | /* GC_SOLARIS_THREADS now means pthreads. */ | |
12 | # ifndef GC_SOLARIS_THREADS | |
13 | # define GC_SOLARIS_THREADS | |
14 | # endif | |
15 | #endif | |
16 | #if defined(IRIX_THREADS) | |
17 | # define GC_IRIX_THREADS | |
18 | #endif | |
19 | #if defined(DGUX_THREADS) | |
20 | # if !defined(GC_DGUX386_THREADS) | |
21 | # define GC_DGUX386_THREADS | |
22 | # endif | |
23 | #endif | |
24 | #if defined(AIX_THREADS) | |
25 | # define GC_AIX_THREADS | |
26 | #endif | |
27 | #if defined(HPUX_THREADS) | |
28 | # define GC_HPUX_THREADS | |
29 | #endif | |
30 | #if defined(OSF1_THREADS) | |
31 | # define GC_OSF1_THREADS | |
32 | #endif | |
33 | #if defined(LINUX_THREADS) | |
34 | # define GC_LINUX_THREADS | |
35 | #endif | |
36 | #if defined(WIN32_THREADS) | |
37 | # define GC_WIN32_THREADS | |
38 | #endif | |
39 | #if defined(USE_LD_WRAP) | |
40 | # define GC_USE_LD_WRAP | |
41 | #endif | |
42 | ||
43 | #if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \ | |
44 | || defined(GC_HPUX_THREADS) \ | |
45 | || defined(GC_AIX_THREADS) \ | |
46 | || defined(GC_LINUX_THREADS) \ | |
47 | || defined(GC_NETBSD_THREADS) \ | |
48 | || defined(GC_GNU_THREADS) \ | |
49 | || defined(GC_HAIKU_THREADS)) | |
50 | # define _REENTRANT | |
51 | /* Better late than never. This fails if system headers that */ | |
52 | /* depend on this were previously included. */ | |
53 | #endif | |
54 | ||
55 | #if !defined(_PTHREADS) && defined(GC_NETBSD_THREADS) | |
56 | # define _PTHREADS | |
57 | #endif | |
58 | ||
59 | #if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE) | |
60 | # define _POSIX4A_DRAFT10_SOURCE 1 | |
61 | #endif | |
62 | ||
63 | # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ | |
64 | defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ | |
65 | defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ | |
66 | defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ | |
67 | defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ | |
68 | (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ | |
69 | defined(GC_GNU_THREADS) || defined(GC_HAIKU_THREADS) | |
70 | # define GC_PTHREADS | |
71 | # endif | |
72 | ||
73 | #if defined(GC_WIN32_PTHREADS) | |
74 | # define GC_WIN32_THREADS | |
75 | # define GC_PTHREADS | |
76 | #endif | |
77 | ||
78 | #if defined(GC_THREADS) && !defined(GC_PTHREADS) | |
79 | # if defined(__linux__) | |
80 | # define GC_LINUX_THREADS | |
81 | # define GC_PTHREADS | |
82 | # endif | |
83 | # if !defined(__linux__) && (defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \ | |
84 | || defined(hppa) || defined(__HPPA)) \ | |
85 | || (defined(__ia64) && defined(_HPUX_SOURCE)) | |
86 | # define GC_HPUX_THREADS | |
87 | # define GC_PTHREADS | |
88 | # endif | |
89 | # if !defined(__linux__) && (defined(__alpha) || defined(__alpha__)) | |
90 | # define GC_OSF1_THREADS | |
91 | # define GC_PTHREADS | |
92 | # endif | |
93 | # if defined(__mips) && !defined(__linux__) | |
94 | # define GC_IRIX_THREADS | |
95 | # define GC_PTHREADS | |
96 | # endif | |
97 | # if defined(__sparc) && !defined(__linux__) \ | |
98 | || defined(sun) && (defined(i386) || defined(__i386__)) | |
99 | # define GC_SOLARIS_THREADS | |
100 | # define GC_PTHREADS | |
101 | # endif | |
102 | # if defined(__APPLE__) && defined(__MACH__) | |
103 | # define GC_DARWIN_THREADS | |
104 | # define GC_PTHREADS | |
105 | # endif | |
106 | # if !defined(GC_PTHREADS) && (defined(__FreeBSD__) || defined(__DragonFly__)) | |
107 | # define GC_FREEBSD_THREADS | |
108 | # define GC_PTHREADS | |
109 | # endif | |
110 | # if !defined(GC_PTHREADS) && defined(__NetBSD__) | |
111 | # define GC_NETBSD_THREADS | |
112 | # define GC_PTHREADS | |
113 | # endif | |
114 | # if defined(DGUX) && (defined(i386) || defined(__i386__)) | |
115 | # define GC_DGUX386_THREADS | |
116 | # define GC_PTHREADS | |
117 | # endif | |
118 | # if defined(_AIX) | |
119 | # define GC_AIX_THREADS | |
120 | # define GC_PTHREADS | |
121 | # endif | |
122 | #endif /* GC_THREADS */ | |
123 | ||
124 | #if defined(GC_THREADS) && !defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS) \ | |
125 | && (defined(_WIN32) || defined(_MSC_VER) || defined(__CYGWIN__) \ | |
126 | || defined(__MINGW32__) || defined(__BORLANDC__) \ | |
127 | || defined(_WIN32_WCE)) | |
128 | # define GC_WIN32_THREADS | |
129 | # if defined(__CYGWIN__) | |
130 | # define GC_PTHREADS | |
131 | # endif | |
132 | #endif | |
133 | ||
134 | # define __GC | |
135 | # ifndef _WIN32_WCE | |
136 | # include <stddef.h> | |
137 | # if defined(__MINGW32__) | |
138 | # include <stdint.h> | |
139 | /* We mention uintptr_t. */ | |
140 | /* Perhaps this should be included in pure msft environments */ | |
141 | /* as well? */ | |
142 | # endif | |
143 | # else /* ! _WIN32_WCE */ | |
144 | /* Yet more kluges for WinCE */ | |
145 | # include <stdlib.h> /* size_t is defined here */ | |
146 | typedef long ptrdiff_t; /* ptrdiff_t is not defined */ | |
147 | # endif | |
148 | ||
149 | #if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL) | |
150 | # define GC_DLL | |
151 | #endif | |
152 | ||
153 | #if defined(__MINGW32__) && defined(GC_DLL) | |
154 | # ifdef GC_BUILD | |
155 | # define GC_API __declspec(dllexport) | |
156 | # else | |
157 | # define GC_API __declspec(dllimport) | |
158 | # endif | |
159 | #endif | |
160 | ||
161 | #if (defined(__DMC__) || defined(_MSC_VER)) && defined(GC_DLL) | |
162 | # ifdef GC_BUILD | |
163 | # define GC_API extern __declspec(dllexport) | |
164 | # else | |
165 | # define GC_API __declspec(dllimport) | |
166 | # endif | |
167 | #endif | |
168 | ||
169 | #if defined(__WATCOMC__) && defined(GC_DLL) | |
170 | # ifdef GC_BUILD | |
171 | # define GC_API extern __declspec(dllexport) | |
172 | # else | |
173 | # define GC_API extern __declspec(dllimport) | |
174 | # endif | |
175 | #endif | |
176 | ||
177 | #ifndef GC_API | |
178 | #define GC_API extern | |
179 | #endif | |
180 |