Bug #40390 Falcon does not get compiled on Solaris 10 on SPARC
Submitted: 29 Oct 2008 10:26 Modified: 9 Jan 2009 14:07
Reporter: Olav Sandstå Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S2 (Serious)
Version:6.0.8-alpha OS:Solaris (Solaris 10 on SPARC)
Assigned to: Olav Sandstå CPU Architecture:Any
Tags: F_PLATFORM, pushbuild

[29 Oct 2008 10:26] Olav Sandstå
Description:
When compiling Mysql based on the lastest version from mysql-6.0 using the Sun Studio compiler on Solaris 10 on SPARC, Falcon no longer gets compiled. 

The following is written when running configure:

checking if Falcon Storage Engine is supported on sparc... no

See for instance the following log file from the lasted build in pushbuild2:

http://clustra.norway.sun.com/~bteam/pb2/web.py?action=archive_download&archive_id=104146&...

How to repeat:
1. Check out the source code from mysql-6.0

2. Configure --with-plugin-falcon

3. Compile

4. Check either if the source files are compiled or if mysql has Falcon storage engine (show engines).

Suggested fix:
Falcon should be compiled when compiling for Solaris 10 on SPARC.
[29 Oct 2008 12:34] Olav Sandstå
The cause for Falcon not getting built on SPARC is that the following two
lines now suddenly are "missing" in configure.in:

# Check if we have the atomic_* functions on Solaris
AC_CHECK_FUNC(atomic_cas_32, AC_DEFINE([HAVE_SOLARIS_ATOMIC], [1], [Define to 1 if Solaris support atomic functions.]))
[29 Oct 2008 18:20] Sergei Golubchik
Note that this line - being falcon-specific - should've never been added to configure.in in the first place, it belongs to falcon/plug.in

(and if it was there, it wouldn't be deleted in the bad merge)
[30 Oct 2008 10:33] Olav Sandstå
There is nothing Falcon specific about this line, although it is
currently only used by Falcon. It checks for the existence of a
particular feature/set of include files on one of our supported
platforms (Solaris atomic instructions).

This line was added to configure.in instead of falcon/plug.in because
it was expected that Solaris atomics was functionality that would be
considered used in other parts of the MySQL code and thus it was useful
to have the check for it in configure.in. It was also placed together
with the exiting code in configure.in that checks for similar
functionality (like support for GCC's atomic instructions).

If the conclusion is that use of Solaris' atomic instruction is not
anything that will be used by any other parts of the MySQL code then I
will move this into falcon/plug.in.

(but I think that this is better done by filing a new bug report than
by an accidental deletion of the code in a merge operation and
introducing a regression ;-) ).
[30 Oct 2008 15:24] Olav Sandstå
The two lines that had been lost during a merge has been restored by the following commit:

http://lists.mysql.com/commits/57476
[3 Nov 2008 8:56] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/57668

2899 Olav Sandstaa	2008-11-03
      Move check of support for Solaris atomic operations from configure.in to falcon/plug.in (as suggested in
      comment to bug#40390).
[6 Nov 2008 10:04] Olav Sandstå
The fix for this bug is included in 6.0.8.
[20 Nov 2008 12:55] Bugs System
Pushed into 6.0.8-alpha  (revid:olav@sun.com-20081103085628-muxn9y6s3g9kzv33) (version source revid:olav@sun.com-20081103085628-muxn9y6s3g9kzv33) (pib:5)
[9 Jan 2009 14:07] MC Brown
A note has been added to the 6.0.8 changelog: 

When building Falcon support on Solaris 10 on the SPARC platform, falcon would not be compiled even when explicitly enabled.