◐ Shell
clean mode source ↗

Message 286391 - Python tracker

32-bit and 64-bit SPARC ABIs have 64-bit integer data types.

SPARC, like many RISC architectures, also has natural alignment requirements.  Attempting to dereference a pointer to a 4-byte-sized object requires 4-byte alignment, for example.  2-byte-sized objects require 2-byte alignment.  8-byte-sized objects require 8-byte alignment.

siphash24 is encountering this bug on modern SPARC (32-bit ABI currently, haven't tried compiling as 64-bit yet).  The code simply is not portable.

Benjamin's patch gets the failing self-test (test_plistlib) to pass as well as the simple test case in msg275493 above.