Skip to content

Commit d96605b

Browse files
committed
Fix build on x32
* `CONSTPTR()` must be 32bit. * `CRYPT_HASH_OVERFLOW` test operates on `unsigned long`, which is only 32bit wide on x32. Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
1 parent e487f84 commit d96605b

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/headers/tomcrypt_cfg.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ LTC_EXPORT int LTC_CALL XSTRCMP(const char *s1, const char *s2);
9191
#define ENDIAN_LITTLE
9292
#define ENDIAN_64BITWORD
9393
#define LTC_FAST
94+
#if defined(_ILP32) || defined(__ILP32__)
95+
#define ENDIAN_64BITWORD_X32
96+
#endif
9497
#endif
9598

9699
/* detect PPC32 */

src/headers/tomcrypt_private.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
#define LTC_PAD_MASK (0xF000U)
1313

14-
#if defined(ENDIAN_64BITWORD)
14+
/* only real 64bit, not x32 */
15+
#if defined(ENDIAN_64BITWORD) && !defined(ENDIAN_64BITWORD_X32)
1516
#define CONSTPTR(n) CONST64(n)
1617
#else
1718
#define CONSTPTR(n) n ## uL

tests/multi_test.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ int multi_test(void)
1515

1616
/* HASH testing */
1717
len = sizeof(buf[0]);
18-
#if defined(ENDIAN_32BITWORD) || defined(_WIN32)
18+
#if defined(ENDIAN_32BITWORD) || defined(_WIN32) || defined(ENDIAN_64BITWORD_X32)
1919
len2 = 0x80000000UL;
2020
#else
2121
/* Check against the max. input limit of SHA-1 as of RFC8017 */

0 commit comments

Comments
 (0)