Bug #37622 Falcon does not compile on Solaris 9 on SPARC using Sun Studio compiler
Submitted: 25 Jun 2008 12:05 Modified: 13 Dec 2008 11:01
Reporter: Olav Sandstaa
Status: Closed
Category:Server: Falcon Severity:S3 (Non-critical)
Version:6.0.6 OS:Sun Solaris (SPARC)
Assigned to: Olav Sandstaa Target Version:6.0.9
Tags: F_PLATFORM, Sun Studio
Triage: D3 (Medium)

[25 Jun 2008 12:05] Olav Sandstaa
Description:
When compiling MySQL with Falcon on Solaris on SPARC 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.

The cause for this is that when compiling with the Sun Studio compiler on Solaris we are
currently using Solaris' atomic_cas-* operations for inplementing the Interlock functions.
The atomic_cas* operations are not available on Solaris 9.

How to repeat:
On a Solaris 9 on machine with the SPARC pro, do:

./configure CC=/opt/studio12/SUNWspro/bin/cc CXX=/opt/studio12/SUNWspro/bin/CC CFLAGS="-Xa
-m32 -mt" CXXFLAGS="-m32 -mt" --prefix=/home/os136802/install/mysql6
--with-named-curses=-lcurses --with-mysql-ldflags=-static --with-client-ldflags=-static
--with-plugins=myisam,innobase,falcon

gmake
[25 Jun 2008 17:29] Ann Harrison
Can we access an underlying instruction with in line assembler?
[25 Jun 2008 21:43] Olav Sandstaa
Yes, we should be able to use inline SPARC assembly to implement this for the Sun Studio
compiler on Solaris. I have started working on this to both understand the requirements,
particularly related to the SPARC memory model(s) and how to best implement this for the
Sun Studio compiler.
[25 Jun 2008 22:35] Neel Nadgir
This error is also triggered on Solaris 5.11 (opensolaris or solaris nevada). The #ifdef
only checks for Solaris 10.
[26 Jun 2008 23:05] Olav Sandstaa
Neel, thanks for the report. I had noticed this too when looking at the code that this
would only allow for compilation of Falcon on Solaris 10. This is just a minor addition to
the preprocessor test for which Solaris version that is being used. I will fix this in a
separate patch.
[8 Jul 2008 23:36] 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/49252

2735 Olav Sandstaa	2008-07-08
      Partial fix to Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler
      
      Changes to Falcon's configure and build system in order to support Sun Studio's
inline templates
      for assembly code.
[10 Jul 2008 11:28] 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/49408

2743 Olav Sandstaa	2008-07-10
      Partial fix to Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler
      
      Changes to Falcon's configure and build system in order to support Sun Studio's
inline templates
      for assembly code.
[10 Jul 2008 11:30] 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/49409

2743 Olav Sandstaa	2008-07-10
      Partial fix to Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler
      
      Changes to Falcon's configure and build system in order to support Sun Studio's
inline templates
      for assembly code.
[10 Jul 2008 23:27] 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/49502

2732 Olav Sandstaa	2008-07-10
      Part of fix of Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler.
      
      Changes the INCLUDES macro to avoid that the final continuation line will not be
empty in case
      FALCON_SPARC_ASSEMBLY is not set.
[23 Jul 2008 14:20] 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/50305

2754 Olav Sandstaa	2008-07-23
      Part of fix of Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler.
      
      Changes the INCLUDES macro to avoid that the final continuation line will not be
empty in case
      FALCON_SPARC_ASSEMBLY is not set.
[23 Jul 2008 15:21] 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/50319

2754 Olav Sandstaa	2008-07-23
      Part of fix of Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun
Studio compiler.
      
      Changes the INCLUDES macro to avoid that the final continuation line will not be
empty in case
      FALCON_SPARC_ASSEMBLY is not set.
[25 Jul 2008 23:48] 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/50538

2758 Olav Sandstaa	2008-07-25
      Fix for Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun Studio
compiler.
      
      Implements Interlock operations using Sun Studio's inline assembly for Solaris 9 on
SPARC.
[29 Aug 2008 3:22] Kevin Lewis
This fix is in version 6.0.7
[14 Sep 2008 0:58] Bugs System
Pushed into 6.0.7-alpha  (revid:olav@sun.com-20080723121947-enbq9g4ghyuw86oj) (version
source revid:davi.arnaut@sun.com-20080812141852-8e6knbqclpfd8irn) (pib:3)
[1 Oct 2008 15:59] Olav Sandstaa
Setting the status of this bug back to In progress since the latest commit on it has not
been pushed yet and requires some changes based on review comments.
[4 Dec 2008 23:00] 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/60667

2926 Olav Sandstaa	2008-12-04
      Fix for Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun Studio
compiler.
            
      Implements Interlock operations using Sun Studio's inline assembly for Solaris 9 on
SPARC.
[5 Dec 2008 14:07] Vladislav Vaintroub
ok to push
[11 Dec 2008 15:19] Bugs System
Pushed into 6.0.9-alpha  (revid:olav.sandstaa@sun.com-20081207130015-1fy4qt1ga459wwfo)
(version source revid:hky@sun.com-20081210172504-jca50gguoy4fm3xb) (pib:5)
[13 Dec 2008 11:01] MC Brown
A note has been added to the 6.0.9 changelog: 

Compiling MySQL with FALCON support enabled on Solaris 9 using the Sun Studio compiler
would fail with error:

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