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

2017-11-18 Thread Fanael Linithien
Just tested it on a ThinkPad T23 (which features a Pentium III), it's
definitely fixed. Thank you!



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

2017-10-31 Thread Fanael Linithien
The bug has been fixed upstream in (not yet released) version 3.34,
feel free to close the report.



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

2017-09-13 Thread Fanael Linithien
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=, count=1) at gcm.c:219
#1  0x9f990e0a in gcmHash_Sync (ghash=ghash@entry=0x9f686e90) at gcm.c:463
#2  0x9f991d46 in gcmHash_Reset (ghash=0x9f686e90, AAD=0xaa9057cf "",
AADLen=13) at gcm.c:552