Mercurial > hg > graal-compiler
comparison src/share/vm/utilities/globalDefinitions_gcc.hpp @ 3960:f08d439fab8c
7089790: integrate bsd-port changes
Reviewed-by: kvn, twisti, jrose
Contributed-by: Kurt Miller <kurt@intricatesoftware.com>, Greg Lewis <glewis@eyesbeyond.com>, Jung-uk Kim <jkim@freebsd.org>, Christos Zoulas <christos@zoulas.com>, Landon Fuller <landonf@plausible.coop>, The FreeBSD Foundation <board@freebsdfoundation.org>, Michael Franz <mvfranz@gmail.com>, Roger Hoover <rhoover@apple.com>, Alexander Strange <astrange@apple.com>
author | never |
---|---|
date | Sun, 25 Sep 2011 16:03:29 -0700 |
parents | 6c97c830fb6f |
children | 0368109684cb |
comparison
equal
deleted
inserted
replaced
3959:eda6988c0d81 | 3960:f08d439fab8c |
---|---|
74 | 74 |
75 # ifdef SOLARIS_MUTATOR_LIBTHREAD | 75 # ifdef SOLARIS_MUTATOR_LIBTHREAD |
76 # include <sys/procfs.h> | 76 # include <sys/procfs.h> |
77 # endif | 77 # endif |
78 | 78 |
79 #ifdef LINUX | 79 #if defined(LINUX) || defined(_ALLBSD_SOURCE) |
80 #ifndef __STDC_LIMIT_MACROS | 80 #ifndef __STDC_LIMIT_MACROS |
81 #define __STDC_LIMIT_MACROS | 81 #define __STDC_LIMIT_MACROS |
82 #endif // __STDC_LIMIT_MACROS | 82 #endif // __STDC_LIMIT_MACROS |
83 #include <inttypes.h> | 83 #include <inttypes.h> |
84 #include <signal.h> | 84 #include <signal.h> |
85 #ifndef __OpenBSD__ | |
85 #include <ucontext.h> | 86 #include <ucontext.h> |
87 #endif | |
88 #ifdef __APPLE__ | |
89 #include <AvailabilityMacros.h> | |
90 #if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4) | |
91 // Mac OS X 10.4 defines EFL_AC and EFL_ID, | |
92 // which conflict with hotspot variable names. | |
93 // | |
94 // This has been fixed in Mac OS X 10.5. | |
95 #undef EFL_AC | |
96 #undef EFL_ID | |
97 #endif | |
98 #endif | |
86 #include <sys/time.h> | 99 #include <sys/time.h> |
87 #endif // LINUX | 100 #endif // LINUX || _ALLBSD_SOURCE |
88 | 101 |
89 // 4810578: varargs unsafe on 32-bit integer/64-bit pointer architectures | 102 // 4810578: varargs unsafe on 32-bit integer/64-bit pointer architectures |
90 // When __cplusplus is defined, NULL is defined as 0 (32-bit constant) in | 103 // When __cplusplus is defined, NULL is defined as 0 (32-bit constant) in |
91 // system header files. On 32-bit architectures, there is no problem. | 104 // system header files. On 32-bit architectures, there is no problem. |
92 // On 64-bit architectures, defining NULL as a 32-bit constant can cause | 105 // On 64-bit architectures, defining NULL as a 32-bit constant can cause |
118 // On Linux NULL is defined as a special type '__null'. Assigning __null to | 131 // On Linux NULL is defined as a special type '__null'. Assigning __null to |
119 // integer variable will cause gcc warning. Use NULL_WORD in places where a | 132 // integer variable will cause gcc warning. Use NULL_WORD in places where a |
120 // pointer is stored as integer value. On some platforms, sizeof(intptr_t) > | 133 // pointer is stored as integer value. On some platforms, sizeof(intptr_t) > |
121 // sizeof(void*), so here we want something which is integer type, but has the | 134 // sizeof(void*), so here we want something which is integer type, but has the |
122 // same size as a pointer. | 135 // same size as a pointer. |
123 #ifdef LINUX | 136 #ifdef __GNUC__ |
124 #ifdef _LP64 | 137 #ifdef _LP64 |
125 #define NULL_WORD 0L | 138 #define NULL_WORD 0L |
126 #else | 139 #else |
127 // Cast 0 to intptr_t rather than int32_t since they are not the same type | 140 // Cast 0 to intptr_t rather than int32_t since they are not the same type |
128 // on platforms such as Mac OS X. | 141 // on platforms such as Mac OS X. |
130 #endif | 143 #endif |
131 #else | 144 #else |
132 #define NULL_WORD NULL | 145 #define NULL_WORD NULL |
133 #endif | 146 #endif |
134 | 147 |
135 #ifndef LINUX | 148 #if !defined(LINUX) && !defined(_ALLBSD_SOURCE) |
136 // Compiler-specific primitive types | 149 // Compiler-specific primitive types |
137 typedef unsigned short uint16_t; | 150 typedef unsigned short uint16_t; |
138 #ifndef _UINT32_T | 151 #ifndef _UINT32_T |
139 #define _UINT32_T | 152 #define _UINT32_T |
140 typedef unsigned int uint32_t; | 153 typedef unsigned int uint32_t; |
150 typedef unsigned int uintptr_t; | 163 typedef unsigned int uintptr_t; |
151 // If this gets an error, figure out a symbol XXX that implies the | 164 // If this gets an error, figure out a symbol XXX that implies the |
152 // prior definition of intptr_t, and add "&& !defined(XXX)" above. | 165 // prior definition of intptr_t, and add "&& !defined(XXX)" above. |
153 #endif // _SYS_INT_TYPES_H | 166 #endif // _SYS_INT_TYPES_H |
154 | 167 |
155 #endif // !LINUX | 168 #endif // !LINUX && !_ALLBSD_SOURCE |
156 | 169 |
157 // Additional Java basic types | 170 // Additional Java basic types |
158 | 171 |
159 typedef uint8_t jubyte; | 172 typedef uint8_t jubyte; |
160 typedef uint16_t jushort; | 173 typedef uint16_t jushort; |
242 #else | 255 #else |
243 // isnanf() broken on Intel Solaris use isnand() | 256 // isnanf() broken on Intel Solaris use isnand() |
244 inline int g_isnan(float f) { return isnand(f); } | 257 inline int g_isnan(float f) { return isnand(f); } |
245 #endif | 258 #endif |
246 inline int g_isnan(double f) { return isnand(f); } | 259 inline int g_isnan(double f) { return isnand(f); } |
247 #elif LINUX | 260 #elif defined(__APPLE__) |
261 inline int g_isnan(double f) { return isnan(f); } | |
262 #elif defined(LINUX) || defined(_ALLBSD_SOURCE) | |
248 inline int g_isnan(float f) { return isnanf(f); } | 263 inline int g_isnan(float f) { return isnanf(f); } |
249 inline int g_isnan(double f) { return isnan(f); } | 264 inline int g_isnan(double f) { return isnan(f); } |
250 #else | 265 #else |
251 #error "missing platform-specific definition here" | 266 #error "missing platform-specific definition here" |
252 #endif | 267 #endif |