Bug #37679 Falcon does not compile on OpenSolaris/Nevada using the Sun Studio compiler
Submitted: 26 Jun 2008 21:12 Modified: 8 Jan 2009 10:29
Reporter: Olav Sandstå Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.0.6 OS:Solaris (OpenSolaris/Nevada)
Assigned to: Olav Sandstå CPU Architecture:Any
Tags: Nevada, OpenSolaris, Sun Studio

[26 Jun 2008 21:12] Olav Sandstå
Description:
When compiling MySQL with Falcon on Solaris 11/Nevada/OpenSolaris using the Sun Studio 12 compiler, the compilation fails with the following error:

"Interlock.h", line 149: Error: #error cas not defined. We need>= Solaris 10.

This is the case for Solaris 11/Nevada/OpenSolaris both on x86 and on SPARC.

The cause for this is that when compiling with the Sun Studio compiler on Solaris we are currently checking that the Solaris version is Solaris 10 (due to not having support for atomic_cas-* operations on earlier versions of Solaris).

How to repeat:
Compile MySQL with Falcon using the Sun Studio compiler on Solaris 11, Solaris Nevada or OpenSolaris.

Suggested fix:
Extend the #if test for Solaris version in Interlock.h to also include Solaris 11 as well as Solaris 10.
[26 Jun 2008 22:05] 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/48592

2720 Olav Sandstaa	2008-06-27
      Fix to Bug#37679 Falcon does not compile on OpenSolaris/Nevada using the Sun Studio compiler
      
      Extend the check for which Solaris version that is used to include Solaris 11 (SunOS 5.11) in addition 
      to Solaris 10. Both of these Solaris versions has support for atomic_cas_ operations.
[22 Aug 2008 21:18] Kevin Lewis
This fix is in version 6.0.6
[8 Jan 2009 10:29] MC Brown
A note has been added to the 6.0.6 changelog: 

When building FALCON using the Sun Studio 12 compiler on OpenSolaris the build would fail due to a missing header file, Interlock.h.