Bug #40390 Falcon does not get compiled on Solaris 10 on SPARC
Submitted: 29 Oct 2008 11:26 Modified: 9 Jan 15:07
Reporter: Olav Sandstaa
Status: Closed
Category:Server: Falcon Severity:S2 (Serious)
Version:6.0.8-alpha OS:Sun Solaris (Solaris 10 on SPARC)
Assigned to: Olav Sandstaa Target Version:6.0.8
Tags: F_PLATFORM, pushbuild
Triage: Triaged: D2 (Serious)

[29 Oct 2008 11:26] Olav Sandstaa
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 13:34] Olav Sandstaa
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 19: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 11:33] Olav Sandstaa
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 16:24] Olav Sandstaa
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 9: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 11:04] Olav Sandstaa
The fix for this bug is included in 6.0.8.
[20 Nov 2008 13: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 15: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.