postgresql/src/include/port/solaris.h

59 lines
1.1 KiB
C
Raw Normal View History

/* $PostgreSQL: pgsql/src/include/port/solaris.h,v 1.10 2003/12/23 03:31:30 momjian Exp $ */
/*
* Sort this out for all operating systems some time. The __xxx
* symbols are defined on both GCC and Solaris CC, although GCC
* doesn't document them. The __xxx__ symbols are only on GCC.
*/
#if defined(__i386) && !defined(__i386__)
2001-03-22 05:01:46 +01:00
#define __i386__
#endif
#if defined(__sparc) && !defined(__sparc__)
2001-03-22 05:01:46 +01:00
#define __sparc__
#endif
#if defined(__i386__)
2001-03-22 05:01:46 +01:00
#include <sys/isa_defs.h>
#endif
#ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321
#endif
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN 1234
#endif
#ifndef PDP_ENDIAN
#define PDP_ENDIAN 3412
#endif
#ifndef BYTE_ORDER
2001-03-22 05:01:46 +01:00
#ifdef __sparc__
#define BYTE_ORDER BIG_ENDIAN
#endif
#ifdef __i386__
#define BYTE_ORDER LITTLE_ENDIAN
#endif
#endif
2001-03-22 05:01:46 +01:00
#ifndef NAN
2001-03-22 05:01:46 +01:00
#if defined(__GNUC__) && defined(__i386__)
2001-03-22 05:01:46 +01:00
#ifndef __nan_bytes
#define __nan_bytes { 0, 0, 0, 0, 0, 0, 0xf8, 0x7f }
#endif
2001-03-22 05:01:46 +01:00
#define NAN \
(__extension__ ((union { unsigned char __c[8]; double __d; }) \
{ __nan_bytes }).__d)
2001-03-22 05:01:46 +01:00
#else
/* not GNUC and i386 */
2001-03-22 05:01:46 +01:00
#define NAN (0.0/0.0)
#endif /* GCC. */
#endif /* not NAN */