According to Intel manuals, checking for AVX has to be done by checking AVX and OS XSAVE support in CPUID + XFEATURE_ENABLED_MASK via xgetbv. However, for strcasecmp, AVX is checked by testing the AVX bit in the cpuid.
This makes systems using glibc-2.15 unbootable under current versions of Xen when the CPU supports AVX because Xen does not have XSAVE support. On these systems, strcasecmp fails with a SIGILL when executing vmovdqa.
Bad check is here:
Example of a good check:
I checked in a patch.
Actually, strcmp cannot have problems since the code only uses the AVX instruction encoding, not the YMM registers. Therefore any problem in that area must have a completely different reason. There is code which potentially uses the YMM registers and I added protection there.
*** Bug 260998 has been marked as a duplicate of this bug. ***
Seen from the domain http://volichat.com
Page where seen: http://volichat.com/adult-chat-rooms
Marked for reference. Resolved as fixed @bugzilla.