Skip to content

Commit dbc573f

Browse files
committed
re-add brg_endian.h to debug issue in big endian SPARC machine
1 parent 58f1183 commit dbc573f

File tree

5 files changed

+150
-7
lines changed

5 files changed

+150
-7
lines changed

Modules/_sha3/cleanup.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ def cleanup(f):
3232
if line.startswith("typedef unsigned long long int"):
3333
buf.append("/* %s */\n" % line.strip())
3434
continue
35-
# remove #include "brg_endian.h"
36-
if "brg_endian.h" in line:
37-
buf.append("/* %s */\n" % line.strip())
38-
continue
35+
## remove #include "brg_endian.h"
36+
#if "brg_endian.h" in line:
37+
# buf.append("/* %s */\n" % line.strip())
38+
# continue
3939
# transform C++ comments into ANSI C comments
4040
line = CPP1.sub(r"/* \1 */", line)
4141
line = CPP2.sub(r" /* \1 */", line)

Modules/_sha3/keccak/KeccakF-1600-opt32.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ and related or neighboring rights to the source code in this file.
1212
*/
1313

1414
#include <string.h>
15-
/* #include "brg_endian.h" */
15+
#include "brg_endian.h"
1616
#include "KeccakF-1600-opt32-settings.h"
1717
#include "KeccakF-1600-interface.h"
1818

Modules/_sha3/keccak/KeccakF-1600-opt64.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ and related or neighboring rights to the source code in this file.
1212
*/
1313

1414
#include <string.h>
15-
/* #include "brg_endian.h" */
15+
#include "brg_endian.h"
1616
#include "KeccakF-1600-opt64-settings.h"
1717
#include "KeccakF-1600-interface.h"
1818

Modules/_sha3/keccak/brg_endian.h

+142
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
/*
2+
---------------------------------------------------------------------------
3+
Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.
4+
5+
LICENSE TERMS
6+
7+
The redistribution and use of this software (with or without changes)
8+
is allowed without the payment of fees or royalties provided that:
9+
10+
1. source code distributions include the above copyright notice, this
11+
list of conditions and the following disclaimer;
12+
13+
2. binary distributions include the above copyright notice, this list
14+
of conditions and the following disclaimer in their documentation;
15+
16+
3. the name of the copyright holder is not used to endorse products
17+
built using this software without specific written permission.
18+
19+
DISCLAIMER
20+
21+
This software is provided 'as is' with no explicit or implied warranties
22+
in respect of its properties, including, but not limited to, correctness
23+
and/or fitness for purpose.
24+
---------------------------------------------------------------------------
25+
Issue Date: 20/12/2007
26+
Changes for ARM 9/9/2010
27+
*/
28+
29+
#ifndef _BRG_ENDIAN_H
30+
#define _BRG_ENDIAN_H
31+
32+
#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */
33+
#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */
34+
35+
#if 0
36+
/* Include files where endian defines and byteswap functions may reside */
37+
#if defined( __sun )
38+
# include <sys/isa_defs.h>
39+
#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ )
40+
# include <sys/endian.h>
41+
#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \
42+
defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ )
43+
# include <machine/endian.h>
44+
#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
45+
# if !defined( __MINGW32__ ) && !defined( _AIX )
46+
# include <endian.h>
47+
# if !defined( __BEOS__ )
48+
# include <byteswap.h>
49+
# endif
50+
# endif
51+
#endif
52+
#endif
53+
54+
/* Now attempt to set the define for platform byte order using any */
55+
/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */
56+
/* seem to encompass most endian symbol definitions */
57+
58+
#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN )
59+
# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN
60+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
61+
# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN
62+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
63+
# endif
64+
#elif defined( BIG_ENDIAN )
65+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
66+
#elif defined( LITTLE_ENDIAN )
67+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
68+
#endif
69+
70+
#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN )
71+
# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN
72+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
73+
# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN
74+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
75+
# endif
76+
#elif defined( _BIG_ENDIAN )
77+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
78+
#elif defined( _LITTLE_ENDIAN )
79+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
80+
#endif
81+
82+
#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN )
83+
# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN
84+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
85+
# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN
86+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
87+
# endif
88+
#elif defined( __BIG_ENDIAN )
89+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
90+
#elif defined( __LITTLE_ENDIAN )
91+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
92+
#endif
93+
94+
#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ )
95+
# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__
96+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
97+
# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__
98+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
99+
# endif
100+
#elif defined( __BIG_ENDIAN__ )
101+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
102+
#elif defined( __LITTLE_ENDIAN__ )
103+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
104+
#endif
105+
106+
/* if the platform byte order could not be determined, then try to */
107+
/* set this define using common machine defines */
108+
#if !defined(PLATFORM_BYTE_ORDER)
109+
110+
#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \
111+
defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \
112+
defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \
113+
defined( vax ) || defined( vms ) || defined( VMS ) || \
114+
defined( __VMS ) || defined( _M_X64 )
115+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
116+
117+
#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \
118+
defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \
119+
defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \
120+
defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \
121+
defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \
122+
defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \
123+
defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX )
124+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
125+
126+
#elif defined(__arm__)
127+
# ifdef __BIG_ENDIAN
128+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
129+
# else
130+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
131+
# endif
132+
#elif 1 /* **** EDIT HERE IF NECESSARY **** */
133+
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
134+
#elif 0 /* **** EDIT HERE IF NECESSARY **** */
135+
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
136+
#else
137+
# error Please edit lines 132 or 134 in brg_endian.h to set the platform byte order
138+
#endif
139+
140+
#endif
141+
142+
#endif

Modules/_sha3/sha3module.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,11 @@
116116
#define UseInterleaveTables
117117
#endif
118118

119-
/* replacement for brg_endian.h */
119+
/* replacement for brg_endian.h
120120
#define IS_BIG_ENDIAN BIG_ENDIAN
121121
#define IS_LITTLE_ENDIAN LITTLE_ENDIAN
122122
#define PLATFORM_BYTE_ORDER BYTE_ORDER
123+
*/
123124

124125
/* inline all Keccak dependencies */
125126
#include "keccak/KeccakNISTInterface.h"

0 commit comments

Comments
 (0)