Bug #51579 make_binary_distribution fails on Mac OS X 10.5.8
Submitted: 27 Feb 2010 18:19 Modified: 18 Aug 2011 20:22
Reporter: Colin Charles Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:trunk/5.5.3-m2, 5.1-bzr OS:MacOS (10.5.8)
Assigned to: CPU Architecture:Any

[27 Feb 2010 18:19] Colin Charles
Description:
When trying to run make_binary_distribution on OS X, it fails

How to repeat:
1. bzr branch lp:mysql-server
2. BUILD/autorun.sh ; ./configure ; make 
3. scripts/make_binary_distribution
On system 'osx10.5' only specific '-arch' values are expected.
It is taken from the 'CFLAGS' whose value is:
 -g -O2 -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT  -DDONT_DECLARE_CXA_PURE_VIRTUAL
'-arch ' is unexpected, and no '--platform' was given: ABORT

Suggested fix:
Fix scripts/make_binary_distribution.sh
[27 Feb 2010 18:52] Colin Charles
5.5.3-m2 in case it matters
[27 Feb 2010 19:20] Valeriy Kravchuk
Verified just as described also with mysql-5.1 from bzr:

77-52-24-143:mysql-5.1-work openxs$ scripts/make_binary_distribution
On system 'osx10.5' only specific '-arch' values are expected.
It is taken from the 'CFLAGS' whose value is:
-g -DSAFE_MUTEX -DSAFEMALLOC -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wunused-parameter -mtune=native -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS  -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX   -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT  -DDONT_DECLARE_CXA_PURE_VIRTUAL
'-arch ' is unexpected, and no '--platform' was given: ABORT
[18 Aug 2011 20:22] Joerg Bruehe
This is intentional.

While on other platforms it is possible to tell sufficient details (especially the CPU) from the output of system commands (or from autotools settings?), this does not work on OSX: We could not tell whether building for a 32 bit or a 64 bit platform.
So we rely on the explicit setting of a "-arch" argument as part of the CFLAGS.

If you roll your own binary package, you should be able to provide that.

Note that in 5.5 and up, this script is not needed any more, as cmake does the packaging. So the only series affected is MySQL 5.1.

There is no sufficient need to change the script to avoid the need of "-arch",
so we will not change this.