Bug #68036 innodb: please support crc32 on all platforms
Submitted: 5 Jan 2013 19:12
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S4 (Feature request)
Version:5.6.9 OS:Windows (windows 7 x64)
Assigned to: CPU Architecture:Any

[5 Jan 2013 19:12] Shane Bester
Description:
ut_crc32_sse2_enabled is false initially.
The detection code in ut_crc32_init has this around it:

#if defined(__GNUC__) && defined(__x86_64__)
  get cpuid
  ut_crc32_sse2_enabled = (features_ecx >> 20) & 1;
#endif
if (ut_crc32_sse2_enabled) {
	ut_crc32 = ut_crc32_sse42;
} else {
	ut_crc32_slice8_table_init();
	ut_crc32 = ut_crc32_slice8;
}

How to repeat:
check code

Suggested fix:
the detection code should work properly on all builds/platforms.
[6 Nov 2015 3:21] MySQL Verification Team
related: http://bugs.mysql.com/bug.php?id=79144
[6 Nov 2015 14:05] Daniƫl van Eeden
Related:
Bug #74776 	InnoDB checksums (new or crc32) use too much CPU on POWER8
[22 Dec 2015 5:42] Daniel Black
Shane, was looking at this bug when I was combining the crc32 fixes in various place producing https://github.com/mysql/mysql-server/pull/41.

Are you after the removal of define checks of __GNUC__? and/or x86_64 around the ut_cpuid function? Looking at the cpuid instruction this might(?) be applicable to x86_32. Is this what you are after supporting multiple platforms?