Skip to content

Commit 37a609b

Browse files
committed
Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be
right, there seems precious little reason to have a pile of hand-maintained endianness definitions in src/include/port/*.h. Get rid of those, and make the couple of places that used them depend on WORDS_BIGENDIAN instead.
1 parent 3e23b68 commit 37a609b

File tree

22 files changed

+66
-295
lines changed

22 files changed

+66
-295
lines changed

configure

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7788,8 +7788,7 @@ done
77887788

77897789

77907790

7791-
7792-
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
7791+
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
77937792
do
77947793
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
77957794
if eval "test \"\${$as_ac_Header+set}\" = set"; then

configure.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dnl Process this file with autoconf to produce a configure script.
2-
dnl $PostgreSQL: pgsql/configure.in,v 1.508 2007/04/06 04:21:41 tgl Exp $
2+
dnl $PostgreSQL: pgsql/configure.in,v 1.509 2007/04/06 05:36:50 tgl Exp $
33
dnl
44
dnl Developers, please strive to achieve this order:
55
dnl
@@ -773,7 +773,7 @@ fi
773773
##
774774

775775
dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
776-
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])
776+
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])
777777

778778
# At least on IRIX, cpp test for netinet/tcp.h will fail unless
779779
# netinet/in.h is included first.

contrib/pgcrypto/crypt-blowfish.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.11 2006/03/11 04:38:30 momjian Exp $
2+
* $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.12 2007/04/06 05:36:50 tgl Exp $
33
*
44
* This code comes from John the Ripper password cracker, with reentrant
55
* and crypt(3) interfaces added, but optimizations specific to password
@@ -436,19 +436,19 @@ BF_encode(char *dst, const BF_word * src, int size)
436436
}
437437

438438
static void
439-
BF_swap(BF_word * x, int count)
439+
BF_swap(BF_word *x, int count)
440440
{
441-
static int endianness_check = 1;
442-
char *is_little_endian = (char *) &endianness_check;
441+
/* Swap on little-endian hardware, else do nothing */
442+
#ifndef WORDS_BIGENDIAN
443443
BF_word tmp;
444444

445-
if (*is_little_endian)
446-
do
447-
{
448-
tmp = *x;
449-
tmp = (tmp << 16) | (tmp >> 16);
450-
*x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
451-
} while (--count);
445+
do
446+
{
447+
tmp = *x;
448+
tmp = (tmp << 16) | (tmp >> 16);
449+
*x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
450+
} while (--count);
451+
#endif
452452
}
453453

454454
#if BF_SCALE

contrib/pgcrypto/md5.c

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2929
* SUCH DAMAGE.
3030
*
31-
* $PostgreSQL: pgsql/contrib/pgcrypto/md5.c,v 1.13 2005/07/11 15:07:59 tgl Exp $
31+
* $PostgreSQL: pgsql/contrib/pgcrypto/md5.c,v 1.14 2007/04/06 05:36:50 tgl Exp $
3232
*/
3333

3434
#include "postgres.h"
@@ -38,11 +38,6 @@
3838
#include "px.h"
3939
#include "md5.h"
4040

41-
/* sanity check */
42-
#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
43-
#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
44-
#endif
45-
4641
#define SHIFT(X, s) (((X) << (s)) | ((X) >> (32 - (s))))
4742

4843
#define F(X, Y, Z) (((X) & (Y)) | ((~X) & (Z)))
@@ -201,10 +196,9 @@ md5_pad(md5_ctxt * ctxt)
201196
}
202197

203198
/* 8 byte word */
204-
#if BYTE_ORDER == LITTLE_ENDIAN
199+
#ifndef WORDS_BIGENDIAN
205200
memmove(&ctxt->md5_buf[56], &ctxt->md5_n8[0], 8);
206-
#endif
207-
#if BYTE_ORDER == BIG_ENDIAN
201+
#else
208202
ctxt->md5_buf[56] = ctxt->md5_n8[7];
209203
ctxt->md5_buf[57] = ctxt->md5_n8[6];
210204
ctxt->md5_buf[58] = ctxt->md5_n8[5];
@@ -222,10 +216,9 @@ void
222216
md5_result(uint8 *digest, md5_ctxt * ctxt)
223217
{
224218
/* 4 byte words */
225-
#if BYTE_ORDER == LITTLE_ENDIAN
219+
#ifndef WORDS_BIGENDIAN
226220
memmove(digest, &ctxt->md5_st8[0], 16);
227-
#endif
228-
#if BYTE_ORDER == BIG_ENDIAN
221+
#else
229222
digest[0] = ctxt->md5_st8[3];
230223
digest[1] = ctxt->md5_st8[2];
231224
digest[2] = ctxt->md5_st8[1];
@@ -245,7 +238,7 @@ md5_result(uint8 *digest, md5_ctxt * ctxt)
245238
#endif
246239
}
247240

248-
#if BYTE_ORDER == BIG_ENDIAN
241+
#ifdef WORDS_BIGENDIAN
249242
static uint32 X[16];
250243
#endif
251244

@@ -257,10 +250,9 @@ md5_calc(uint8 *b64, md5_ctxt * ctxt)
257250
uint32 C = ctxt->md5_stc;
258251
uint32 D = ctxt->md5_std;
259252

260-
#if BYTE_ORDER == LITTLE_ENDIAN
253+
#ifndef WORDS_BIGENDIAN
261254
uint32 *X = (uint32 *) b64;
262-
#endif
263-
#if BYTE_ORDER == BIG_ENDIAN
255+
#else
264256
/* 4 byte words */
265257
/* what a brute force but fast! */
266258
uint8 *y = (uint8 *) X;

contrib/pgcrypto/px.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,14 @@
2626
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2727
* SUCH DAMAGE.
2828
*
29-
* $PostgreSQL: pgsql/contrib/pgcrypto/px.h,v 1.16 2005/10/15 02:49:06 momjian Exp $
29+
* $PostgreSQL: pgsql/contrib/pgcrypto/px.h,v 1.17 2007/04/06 05:36:50 tgl Exp $
3030
*/
3131

3232
#ifndef __PX_H
3333
#define __PX_H
3434

3535
#include <sys/types.h>
3636
#include <sys/param.h>
37-
#ifdef HAVE_ENDIAN_H
38-
#include <endian.h>
39-
#endif
40-
41-
#ifndef BYTE_ORDER
42-
#error BYTE_ORDER must be defined as LITTLE_ENDIAN or BIG_ENDIAN
43-
#endif
4437

4538
/* keep debug messages? */
4639
#define PX_DEBUG

contrib/pgcrypto/rijndael.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* $OpenBSD: rijndael.c,v 1.6 2000/12/09 18:51:34 markus Exp $ */
22

3-
/* $PostgreSQL: pgsql/contrib/pgcrypto/rijndael.c,v 1.12 2005/10/15 02:49:06 momjian Exp $ */
3+
/* $PostgreSQL: pgsql/contrib/pgcrypto/rijndael.c,v 1.13 2007/04/06 05:36:50 tgl Exp $ */
44

55
/* This is an independent implementation of the encryption algorithm: */
66
/* */
@@ -47,12 +47,6 @@ Mean: 500 cycles = 51.2 mbits/sec
4747
#include "px.h"
4848
#include "rijndael.h"
4949

50-
/* sanity check */
51-
#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
52-
#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
53-
#endif
54-
55-
5650
#define PRE_CALC_TABLES
5751
#define LARGE_TABLES
5852

@@ -73,11 +67,7 @@ static void gen_tabs(void);
7367

7468
#define byte(x,n) ((u1byte)((x) >> (8 * (n))))
7569

76-
#if BYTE_ORDER != LITTLE_ENDIAN
77-
#define BYTE_SWAP
78-
#endif
79-
80-
#ifdef BYTE_SWAP
70+
#ifdef WORDS_BIGENDIAN
8171
#define io_swap(x) bswap(x)
8272
#else
8373
#define io_swap(x) (x)

contrib/pgcrypto/sha1.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2929
* SUCH DAMAGE.
3030
*
31-
* $PostgreSQL: pgsql/contrib/pgcrypto/sha1.c,v 1.16 2005/07/11 15:07:59 tgl Exp $
31+
* $PostgreSQL: pgsql/contrib/pgcrypto/sha1.c,v 1.17 2007/04/06 05:36:50 tgl Exp $
3232
*/
3333
/*
3434
* FIPS pub 180-1: Secure Hash Algorithm (SHA-1)
@@ -43,11 +43,6 @@
4343
#include "px.h"
4444
#include "sha1.h"
4545

46-
/* sanity check */
47-
#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
48-
#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
49-
#endif
50-
5146
/* constant table */
5247
static uint32 _K[] = {0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6};
5348

@@ -98,7 +93,7 @@ sha1_step(struct sha1_ctxt * ctxt)
9893
s;
9994
uint32 tmp;
10095

101-
#if BYTE_ORDER == LITTLE_ENDIAN
96+
#ifndef WORDS_BIGENDIAN
10297
struct sha1_ctxt tctxt;
10398

10499
memmove(&tctxt.m.b8[0], &ctxt->m.b8[0], 64);
@@ -264,7 +259,7 @@ sha1_pad(struct sha1_ctxt * ctxt)
264259
memset(&ctxt->m.b8[padstart], 0, padlen - 8);
265260
COUNT += (padlen - 8);
266261
COUNT %= 64;
267-
#if BYTE_ORDER == BIG_ENDIAN
262+
#ifdef WORDS_BIGENDIAN
268263
PUTPAD(ctxt->c.b8[0]);
269264
PUTPAD(ctxt->c.b8[1]);
270265
PUTPAD(ctxt->c.b8[2]);
@@ -320,7 +315,7 @@ sha1_result(struct sha1_ctxt * ctxt, uint8 *digest0)
320315

321316
digest = (uint8 *) digest0;
322317
sha1_pad(ctxt);
323-
#if BYTE_ORDER == BIG_ENDIAN
318+
#ifdef WORDS_BIGENDIAN
324319
memmove(digest, &ctxt->h.b8[0], 20);
325320
#else
326321
digest[0] = ctxt->h.b8[3];

contrib/pgcrypto/sha2.c

Lines changed: 9 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*
3434
* $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
3535
*
36-
* $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.8 2006/10/04 00:29:46 momjian Exp $
36+
* $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.9 2007/04/06 05:36:50 tgl Exp $
3737
*/
3838

3939
#include "postgres.h"
@@ -56,40 +56,6 @@
5656
*
5757
*/
5858

59-
60-
/*** SHA-256/384/512 Machine Architecture Definitions *****************/
61-
/*
62-
* BYTE_ORDER NOTE:
63-
*
64-
* Please make sure that your system defines BYTE_ORDER. If your
65-
* architecture is little-endian, make sure it also defines
66-
* LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
67-
* equivilent.
68-
*
69-
* If your system does not define the above, then you can do so by
70-
* hand like this:
71-
*
72-
* #define LITTLE_ENDIAN 1234
73-
* #define BIG_ENDIAN 4321
74-
*
75-
* And for little-endian machines, add:
76-
*
77-
* #define BYTE_ORDER LITTLE_ENDIAN
78-
*
79-
* Or for big-endian machines:
80-
*
81-
* #define BYTE_ORDER BIG_ENDIAN
82-
*
83-
* The FreeBSD machine this was written on defines BYTE_ORDER
84-
* appropriately by including <sys/types.h> (which in turn includes
85-
* <machine/endian.h> where the appropriate definitions are actually
86-
* made).
87-
*/
88-
#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
89-
#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
90-
#endif
91-
92-
9359
/*** SHA-256/384/512 Various Length Definitions ***********************/
9460
/* NOTE: Most of these are in sha2.h */
9561
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
@@ -98,7 +64,7 @@
9864

9965

10066
/*** ENDIAN REVERSAL MACROS *******************************************/
101-
#if BYTE_ORDER == LITTLE_ENDIAN
67+
#ifndef WORDS_BIGENDIAN
10268
#define REVERSE32(w,x) { \
10369
uint32 tmp = (w); \
10470
tmp = (tmp >> 16) | (tmp << 16); \
@@ -112,7 +78,7 @@
11278
(x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
11379
((tmp & 0x0000ffff0000ffffULL) << 16); \
11480
}
115-
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
81+
#endif /* not bigendian */
11682

11783
/*
11884
* Macro for incrementally adding the unsigned 64-bit integer n to the
@@ -539,7 +505,7 @@ SHA256_Last(SHA256_CTX * context)
539505
unsigned int usedspace;
540506

541507
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
542-
#if BYTE_ORDER == LITTLE_ENDIAN
508+
#ifndef WORDS_BIGENDIAN
543509
/* Convert FROM host byte order */
544510
REVERSE64(context->bitcount, context->bitcount);
545511
#endif
@@ -589,7 +555,7 @@ SHA256_Final(uint8 digest[], SHA256_CTX * context)
589555
{
590556
SHA256_Last(context);
591557

592-
#if BYTE_ORDER == LITTLE_ENDIAN
558+
#ifndef WORDS_BIGENDIAN
593559
{
594560
/* Convert TO host byte order */
595561
int j;
@@ -865,7 +831,7 @@ SHA512_Last(SHA512_CTX * context)
865831
unsigned int usedspace;
866832

867833
usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
868-
#if BYTE_ORDER == LITTLE_ENDIAN
834+
#ifndef WORDS_BIGENDIAN
869835
/* Convert FROM host byte order */
870836
REVERSE64(context->bitcount[0], context->bitcount[0]);
871837
REVERSE64(context->bitcount[1], context->bitcount[1]);
@@ -918,7 +884,7 @@ SHA512_Final(uint8 digest[], SHA512_CTX * context)
918884
SHA512_Last(context);
919885

920886
/* Save the hash data for output: */
921-
#if BYTE_ORDER == LITTLE_ENDIAN
887+
#ifndef WORDS_BIGENDIAN
922888
{
923889
/* Convert TO host byte order */
924890
int j;
@@ -963,7 +929,7 @@ SHA384_Final(uint8 digest[], SHA384_CTX * context)
963929
SHA512_Last((SHA512_CTX *) context);
964930

965931
/* Save the hash data for output: */
966-
#if BYTE_ORDER == LITTLE_ENDIAN
932+
#ifndef WORDS_BIGENDIAN
967933
{
968934
/* Convert TO host byte order */
969935
int j;
@@ -1006,7 +972,7 @@ SHA224_Final(uint8 digest[], SHA224_CTX * context)
1006972
{
1007973
SHA256_Last(context);
1008974

1009-
#if BYTE_ORDER == LITTLE_ENDIAN
975+
#ifndef WORDS_BIGENDIAN
1010976
{
1011977
/* Convert TO host byte order */
1012978
int j;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy