Bug #80362 time breaks universal support
Submitted: 14 Feb 2016 12:44 Modified: 18 Feb 2016 15:53
Reporter: Marcus Calhoun-Lopez Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.6 OS:Mac OS X
Assigned to: CPU Architecture:Any

[14 Feb 2016 12:44] Marcus Calhoun-Lopez
Description:
configure.cmake has a few "IF(NOT APPLE)" and "IF(APPLE)" to support universal binaries.
Similarly, config.h.cmake has several "#ifdef __APPLE__" to support universal binaries.

In configure.cmake,
MY_CHECK_TYPE_SIZE(time_t TIME_T)
MY_CHECK_TYPE_SIZE("struct timespec" STRUCT_TIMESPEC)
are not among them.
CMake's function CHECK_TYPE_SIZE  returns 0 for each since they have "arch-dependent size."
This causes configure.cmake's function MY_CHECK_TYPE_SIZE to incorrectly deduce that they are not installed.

Of course, this causes the resulting config.h to be incorrect.

How to repeat:
Compile MySQL on OS X as a universal binary
(run cmake with -DCMAKE_OSX_ARCHITECTURES="x86_64;i386")
[18 Feb 2016 15:53] MySQL Verification Team
Mysql now fully supports only OS X 10.9 and higher versions.

The last OS X version that supported 32-bit binaries was OS X 10.6. Hence a decision was made to follow Apple's policy. Hence, MySQL no longer supports universal binary support nor does it support 32-bit binaries.

Hence, this is not a bug. This is a policy in line with Apple's.