Ensure memory accesses in the sha3 module are aligned on ARM as it causes problems when running 32-bit code on a 64-bit kernel. Patch taken from upstream bug report: https://bugs.python.org/issue36515 --- a/Modules/_sha3/sha3module.c +++ b/Modules/_sha3/sha3module.c @@ -64,6 +64,12 @@ #define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN #endif +/* Bus error on 32-bit ARM due to un-aligned memory accesses; 64-bit ARM + * doesn't complain but un-aligned memory accesses are sub-optimal */ +#if defined(__arm__) || defined(__aarch64__) +#define NO_MISALIGNED_ACCESSES +#endif + /* mangle names */ #define KeccakF1600_FastLoop_Absorb _PySHA3_KeccakF1600_FastLoop_Absorb #define Keccak_HashFinal _PySHA3_Keccak_HashFinal it();'>