-
-for ac_header in crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.h langinfo.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/time.h sys/un.h termios.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h
+for ac_header in crypt.h dld.h fp_class.h getopt.h ieeefp.h langinfo.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/time.h sys/un.h termios.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
##
dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
-AC_CHECK_HEADERS([crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.h langinfo.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/time.h sys/un.h termios.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h])
+AC_CHECK_HEADERS([crypt.h dld.h fp_class.h getopt.h ieeefp.h langinfo.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/time.h sys/un.h termios.h utime.h wchar.h wctype.h kernel/OS.h kernel/image.h SupportDefs.h])
# At least on IRIX, cpp test for netinet/tcp.h will fail unless
# netinet/in.h is included first.
}
static void
-BF_swap(BF_word * x, int count)
+BF_swap(BF_word *x, int count)
{
- static int endianness_check = 1;
- char *is_little_endian = (char *) &endianness_check;
+ /* Swap on little-endian hardware, else do nothing */
+#ifndef WORDS_BIGENDIAN
BF_word tmp;
- if (*is_little_endian)
- do
- {
- tmp = *x;
- tmp = (tmp << 16) | (tmp >> 16);
- *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
- } while (--count);
+ do
+ {
+ tmp = *x;
+ tmp = (tmp << 16) | (tmp >> 16);
+ *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
+ } while (--count);
+#endif
}
#if BF_SCALE
#include "px.h"
#include "md5.h"
-/* sanity check */
-#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
-#endif
-
#define SHIFT(X, s) (((X) << (s)) | ((X) >> (32 - (s))))
#define F(X, Y, Z) (((X) & (Y)) | ((~X) & (Z)))
}
/* 8 byte word */
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
memmove(&ctxt->md5_buf[56], &ctxt->md5_n8[0], 8);
-#endif
-#if BYTE_ORDER == BIG_ENDIAN
+#else
ctxt->md5_buf[56] = ctxt->md5_n8[7];
ctxt->md5_buf[57] = ctxt->md5_n8[6];
ctxt->md5_buf[58] = ctxt->md5_n8[5];
md5_result(uint8 *digest, md5_ctxt * ctxt)
{
/* 4 byte words */
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
memmove(digest, &ctxt->md5_st8[0], 16);
-#endif
-#if BYTE_ORDER == BIG_ENDIAN
+#else
digest[0] = ctxt->md5_st8[3];
digest[1] = ctxt->md5_st8[2];
digest[2] = ctxt->md5_st8[1];
#endif
}
-#if BYTE_ORDER == BIG_ENDIAN
+#ifdef WORDS_BIGENDIAN
static uint32 X[16];
#endif
uint32 C = ctxt->md5_stc;
uint32 D = ctxt->md5_std;
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
uint32 *X = (uint32 *) b64;
-#endif
-#if BYTE_ORDER == BIG_ENDIAN
+#else
/* 4 byte words */
/* what a brute force but fast! */
uint8 *y = (uint8 *) X;
#include <sys/types.h>
#include <sys/param.h>
-#ifdef HAVE_ENDIAN_H
-#include <endian.h>
-#endif
-
-#ifndef BYTE_ORDER
-#error BYTE_ORDER must be defined as LITTLE_ENDIAN or BIG_ENDIAN
-#endif
/* keep debug messages? */
#define PX_DEBUG
#include "px.h"
#include "rijndael.h"
-/* sanity check */
-#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
-#endif
-
-
#define PRE_CALC_TABLES
#define LARGE_TABLES
#define byte(x,n) ((u1byte)((x) >> (8 * (n))))
-#if BYTE_ORDER != LITTLE_ENDIAN
-#define BYTE_SWAP
-#endif
-
-#ifdef BYTE_SWAP
+#ifdef WORDS_BIGENDIAN
#define io_swap(x) bswap(x)
#else
#define io_swap(x) (x)
#include "px.h"
#include "sha1.h"
-/* sanity check */
-#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
-#endif
-
/* constant table */
static uint32 _K[] = {0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6};
s;
uint32 tmp;
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
struct sha1_ctxt tctxt;
memmove(&tctxt.m.b8[0], &ctxt->m.b8[0], 64);
memset(&ctxt->m.b8[padstart], 0, padlen - 8);
COUNT += (padlen - 8);
COUNT %= 64;
-#if BYTE_ORDER == BIG_ENDIAN
+#ifdef WORDS_BIGENDIAN
PUTPAD(ctxt->c.b8[0]);
PUTPAD(ctxt->c.b8[1]);
PUTPAD(ctxt->c.b8[2]);
digest = (uint8 *) digest0;
sha1_pad(ctxt);
-#if BYTE_ORDER == BIG_ENDIAN
+#ifdef WORDS_BIGENDIAN
memmove(digest, &ctxt->h.b8[0], 20);
#else
digest[0] = ctxt->h.b8[3];
*
*/
-
-/*** SHA-256/384/512 Machine Architecture Definitions *****************/
-/*
- * BYTE_ORDER NOTE:
- *
- * Please make sure that your system defines BYTE_ORDER. If your
- * architecture is little-endian, make sure it also defines
- * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
- * equivilent.
- *
- * If your system does not define the above, then you can do so by
- * hand like this:
- *
- * #define LITTLE_ENDIAN 1234
- * #define BIG_ENDIAN 4321
- *
- * And for little-endian machines, add:
- *
- * #define BYTE_ORDER LITTLE_ENDIAN
- *
- * Or for big-endian machines:
- *
- * #define BYTE_ORDER BIG_ENDIAN
- *
- * The FreeBSD machine this was written on defines BYTE_ORDER
- * appropriately by including <sys/types.h> (which in turn includes
- * <machine/endian.h> where the appropriate definitions are actually
- * made).
- */
-#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
-#endif
-
-
/*** SHA-256/384/512 Various Length Definitions ***********************/
/* NOTE: Most of these are in sha2.h */
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
/*** ENDIAN REVERSAL MACROS *******************************************/
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
#define REVERSE32(w,x) { \
uint32 tmp = (w); \
tmp = (tmp >> 16) | (tmp << 16); \
(x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
((tmp & 0x0000ffff0000ffffULL) << 16); \
}
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+#endif /* not bigendian */
/*
* Macro for incrementally adding the unsigned 64-bit integer n to the
unsigned int usedspace;
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
/* Convert FROM host byte order */
REVERSE64(context->bitcount, context->bitcount);
#endif
{
SHA256_Last(context);
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
{
/* Convert TO host byte order */
int j;
unsigned int usedspace;
usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
/* Convert FROM host byte order */
REVERSE64(context->bitcount[0], context->bitcount[0]);
REVERSE64(context->bitcount[1], context->bitcount[1]);
SHA512_Last(context);
/* Save the hash data for output: */
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
{
/* Convert TO host byte order */
int j;
SHA512_Last((SHA512_CTX *) context);
/* Save the hash data for output: */
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
{
/* Convert TO host byte order */
int j;
{
SHA256_Last(context);
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
{
/* Convert TO host byte order */
int j;
#include <sys/param.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#ifdef HAVE_ENDIAN_H
-#include <endian.h>
-#endif
#include "libpq/libpq.h"
#include "libpq/pqformat.h"
swap.h[0] = htonl(swap.h[0]);
swap.h[1] = htonl(swap.h[1]);
- /* Have to figure out endianness by testing... */
- if (((uint32) 1) == htonl((uint32) 1))
- {
- /* machine seems to be big-endian, send h[0] first */
- appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
- appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
- }
- else
- {
- /* machine seems to be little-endian, send h[1] first */
- appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
- appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
- }
+#ifdef WORDS_BIGENDIAN
+ /* machine seems to be big-endian, send h[0] first */
+ appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
+ appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
#else
+ /* machine seems to be little-endian, send h[1] first */
+ appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
+ appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
+#endif
+#else /* INT64 works */
union
{
float8 f;
uint32 h[2];
} swap;
- /* Have to figure out endianness by testing... */
- if (((uint32) 1) == htonl((uint32) 1))
- {
- /* machine seems to be big-endian, receive h[0] first */
- swap.h[0] = pq_getmsgint(msg, 4);
- swap.h[1] = pq_getmsgint(msg, 4);
- }
- else
- {
- /* machine seems to be little-endian, receive h[1] first */
- swap.h[1] = pq_getmsgint(msg, 4);
- swap.h[0] = pq_getmsgint(msg, 4);
- }
- return swap.f;
+#ifdef WORDS_BIGENDIAN
+ /* machine seems to be big-endian, receive h[0] first */
+ swap.h[0] = pq_getmsgint(msg, 4);
+ swap.h[1] = pq_getmsgint(msg, 4);
#else
+ /* machine seems to be little-endian, receive h[1] first */
+ swap.h[1] = pq_getmsgint(msg, 4);
+ swap.h[0] = pq_getmsgint(msg, 4);
+#endif
+ return swap.f;
+#else /* INT64 works */
union
{
float8 f;
/* Define to 1 if you have the <editline/readline.h> header file. */
#undef HAVE_EDITLINE_READLINE_H
-/* Define to 1 if you have the <endian.h> header file. */
-#undef HAVE_ENDIAN_H
-
/* Define to 1 if you have the `fcvt' function. */
#undef HAVE_FCVT
/* Define to 1 if you have the <editline/readline.h> header file. */
/* #undef HAVE_EDITLINE_READLINE_H */
-/* Define to 1 if you have the <endian.h> header file. */
-/* #undef HAVE_ENDIAN_H */
-
/* Define to 1 if you have the `fcvt' function. */
#define HAVE_FCVT 1
#define CLASS_CONFLICT
#define DISABLE_XOPEN_NLS
-
-#include <sys/machine.h> /* ENDIAN definitions for network
- * communication */
/* $PostgreSQL$ */
-#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
-#define BYTE_ORDER BIG_ENDIAN
-
-#endif
+/* nothing needed */
/* $PostgreSQL$ */
-#ifndef BIG_ENDIAN
-#define BIG_ENDIAN 4321
-#endif
-#ifndef LITTLE_ENDIAN
-#define LITTLE_ENDIAN 1234
-#endif
-#ifndef PDP_ENDIAN
-#define PDP_ENDIAN 3412
-#endif
-
-#if defined(__hppa)
-
-#ifndef BYTE_ORDER
-#define BYTE_ORDER BIG_ENDIAN
-#endif
-#elif defined(__ia64)
-
-/* HPUX runs IA64 in big-endian mode */
-#ifndef BYTE_ORDER
-#define BYTE_ORDER BIG_ENDIAN
-#endif
-#else
-#error unrecognized CPU type for HP-UX
-
-#endif
+/* nothing needed */
#define SCO_ACCEPT_BUG
#define USE_UNIVEL_CC
-
-#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
-#define BYTE_ORDER LITTLE_ENDIAN
-
-#endif
#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
-#ifdef __sparc__
-#define BYTE_ORDER BIG_ENDIAN
-#endif
-#ifdef __i386__
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif
-#if defined(__amd64___) || defined(__x86_64__)
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif
-#endif
-
/*
* Many versions of Solaris have broken strtod() --- see bug #4751182.
* This has been fixed in current versions of Solaris:
/* sprintf() returns char *, not int, on SunOS 4.1.x */
#define SPRINTF_CHAR
-
-#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
-#define BYTE_ORDER BIG_ENDIAN
-
-#endif
-#ifndef BYTE_ORDER
-#ifdef MIPSEB
-#define BYTE_ORDER BIG_ENDIAN
-#endif
+/* $PostgreSQL */
-#endif
+/* nothing needed */
#define NOFIXADE
#define NEED_STRDUP
-#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
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif
-
/*
* Except for those system calls and library functions that are either
* - covered by the C standard library and Posix.1
* the native UNIXWARE C compiler.
***************************************/
#define USE_UNIVEL_CC
-
-#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
-#define BYTE_ORDER LITTLE_ENDIAN
-
-#endif
* the native UNIXWARE C compiler.
***************************************/
#define USE_UNIVEL_CC
-
-#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
-#define BYTE_ORDER LITTLE_ENDIAN
-
-#endif
#define isinf(x) ((_fpclass(x) == _FPCLASS_PINF) || (_fpclass(x) == _FPCLASS_NINF))
#define isnan(x) _isnan(x)
-#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
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif
-
/* Pulled from Makefile.port in mingw */
#define DLSUFFIX ".dll"