On Thu, 8 Apr 2021, RVP wrote: > As a workaround, until the offending opcode is found, try > `#undef GHASH_ASM_SPARC' on line 692 in > src/crypto/external/bsd/openssl/dist/crypto/modes/gcm128.c to force > use of the C functions.
A diff of "gcm128c" between -current and netbsd-9 before the pullup shows: [...] -# if defined(__arch64__) -# define GHASH_ASM_SPARC -# define GCM_FUNCREF_4BIT +# define GHASH_ASM_SPARC +# define GCM_FUNCREF_4BIT extern unsigned int OPENSSL_sparcv9cap_P[]; void gcm_init_vis3(u128 Htable[16], const u64 Xi[2]); void gcm_gmult_vis3(u64 Xi[2], const u128 Htable[16]); void gcm_ghash_vis3(u64 Xi[2], const u128 Htable[16], const u8 *inp, size_t len); -# endif [...] That is, before the pull-up of OpenSSL 1.1.1k, the "GHASH_ASM_SPARC" macro was conditionally defined iff "__arch64__" was also defined-- likely an internal compiler definition. With -current and netbsd-9 after the pull up, that conditionalization has been removed. The supplied assembly code (wrapped in a perl script) implies by filename that it is for sparcv9 and up CPUs. Alas I don't know sparc assembly, so I will have to defer to others whether it can be rendered harmless for sparcv8 and prior CPUs. Or just reinstate the above conditionalization. -- |/"\ John D. Baker, KN5UKS NetBSD Darwin/MacOS X |\ / jdbaker[snail]consolidated[flyspeck]net OpenBSD FreeBSD | X No HTML/proprietary data in email. BSD just sits there and works! |/ \ GPGkeyID: D703 4A7E 479F 63F8 D3F4 BD99 9572 8F23 E4AD 1645