src/share/vm/utilities/globalDefinitions_gcc.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/utilities/globalDefinitions_gcc.hpp Tue Sep 13 12:21:19 2011
--- new/src/share/vm/utilities/globalDefinitions_gcc.hpp Tue Sep 13 12:21:18 2011
*** 74,92 ****
--- 74,105 ----
# ifdef SOLARIS_MUTATOR_LIBTHREAD
# include <sys/procfs.h>
# endif
! #ifdef LINUX
! #if defined(LINUX) || defined(_ALLBSD_SOURCE)
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS
#endif // __STDC_LIMIT_MACROS
#include <inttypes.h>
#include <signal.h>
+ #ifndef __OpenBSD__
#include <ucontext.h>
+ #endif
+ #ifdef __APPLE__
+ #include <AvailabilityMacros.h>
+ #if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4)
+ // Mac OS X 10.4 defines EFL_AC and EFL_ID,
+ // which conflict with hotspot variable names.
+ //
+ // This has been fixed in Mac OS X 10.5.
+ #undef EFL_AC
+ #undef EFL_ID
+ #endif
+ #endif
#include <sys/time.h>
! #endif // LINUX || _ALLBSD_SOURCE
// 4810578: varargs unsafe on 32-bit integer/64-bit pointer architectures
// When __cplusplus is defined, NULL is defined as 0 (32-bit constant) in
// system header files. On 32-bit architectures, there is no problem.
// On 64-bit architectures, defining NULL as a 32-bit constant can cause
*** 118,128 ****
--- 131,141 ----
// On Linux NULL is defined as a special type '__null'. Assigning __null to
// integer variable will cause gcc warning. Use NULL_WORD in places where a
// pointer is stored as integer value. On some platforms, sizeof(intptr_t) >
// sizeof(void*), so here we want something which is integer type, but has the
// same size as a pointer.
! #ifdef LINUX
! #ifdef __GNUC__
#ifdef _LP64
#define NULL_WORD 0L
#else
// Cast 0 to intptr_t rather than int32_t since they are not the same type
// on platforms such as Mac OS X.
*** 130,140 ****
--- 143,153 ----
#endif
#else
#define NULL_WORD NULL
#endif
! #ifndef LINUX
! #if !defined(LINUX) && !defined(_ALLBSD_SOURCE)
// Compiler-specific primitive types
typedef unsigned short uint16_t;
#ifndef _UINT32_T
#define _UINT32_T
typedef unsigned int uint32_t;
*** 150,160 ****
--- 163,173 ----
typedef unsigned int uintptr_t;
// If this gets an error, figure out a symbol XXX that implies the
// prior definition of intptr_t, and add "&& !defined(XXX)" above.
#endif // _SYS_INT_TYPES_H
! #endif // !LINUX && !_ALLBSD_SOURCE
// Additional Java basic types
typedef uint8_t jubyte;
typedef uint16_t jushort;
*** 242,252 ****
--- 255,267 ----
#else
// isnanf() broken on Intel Solaris use isnand()
inline int g_isnan(float f) { return isnand(f); }
#endif
inline int g_isnan(double f) { return isnand(f); }
! #elif LINUX
! #elif defined(__APPLE__)
+ inline int g_isnan(double f) { return isnan(f); }
+ #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
inline int g_isnan(float f) { return isnanf(f); }
inline int g_isnan(double f) { return isnan(f); }
#else
#error "missing platform-specific definition here"
#endif
src/share/vm/utilities/globalDefinitions_gcc.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File