Bug#875694: libnss3 still uses SSE2 instructions on i386 (cf. #871700)

Fanael Linithien fanael4 at gmail.com
Wed Sep 13 17:26:55 UTC 2017


Package: libnss3
Version: 2:3.32-2
Severity: important

Even after the latest change, libnss3 on i386 still requires SSE2 to
run, because freebl's rijndael.c and gcm.c are still compiled with
-mclmul and -maes, which imply -msse2, and since these files contain
the software fallbacks, the generated code for fallbacks still uses
SSE2, which results in SIGILL on Pentium III and earlier.

The solution would be to use __attribute__((target)) for the functions
that need CLMUL and/or AES intrinsics instead of passing -mclmul and
-maes.

Top of stack after receiving SIGILL trying to run Firefox:

#0  0x9f991270 in gcm_HashMult_sftw32 (ghash=0x9f686e90,
buf=<optimized out>, count=1) at gcm.c:219
#1  0x9f990e0a in gcmHash_Sync (ghash=ghash at entry=0x9f686e90) at gcm.c:463
#2  0x9f991d46 in gcmHash_Reset (ghash=0x9f686e90, AAD=0xaa9057cf "",
AADLen=13) at gcm.c:552



More information about the pkg-mozilla-maintainers mailing list