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	Wed Sep 21 11:40:36 2011
--- new/src/share/vm/utilities/globalDefinitions_gcc.hpp	Wed Sep 21 11:40:36 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