Bug #50409 Solaris 8 compatibility broken by assumption about printstack() being present
Submitted: 18 Jan 2010 12:20 Modified: 18 Jun 2010 1:15
Reporter: Kent Boortz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:5.0.90, 5.1.43 OS:Solaris (8)
Assigned to: Staale Smedseng CPU Architecture:Any

[18 Jan 2010 12:20] Kent Boortz
Description:
The change for stack tracing on Solaris assumes there is a printstack()
function, something there is for Solaris 9 and up, but not Solaris 8.

This makes the linking fail, in 5.0.90 from the symbol 'printstack'
not being defined, in 5.1.43 from 'my_print_stacktrace' not being
defined.

The bug in 5.1.43 is that while the condition in the C source is on
HAVE_PRINTSTACK, the check in the header file is still on '__sun'

How to repeat:
Just compile from source on Solaris 8.

Suggested fix:
I suggest that the configure check done in 5.1.43 for finding 'printstack' is
backported to 5.0.91, and the conditional compilation check HAVE_PRINTSTACK
instead of '__sun'. Also, this has to be reflected in the header "stacktrace.c"
or "my_stacktrace.h", to check on HAVE_PRINTSTACK.

In 5.1.43 something like

*** a/include/my_stacktrace.h.ORIG      2010-01-15 18:14:41.023218000 +0100                         
--- b/include/my_stacktrace.h   2010-01-17 23:24:47.581003000 +0100                                 
***************
*** 23,29 ****
      (defined(__alpha__) && defined(__GNUC__))                                                     
  #define HAVE_STACKTRACE 1                                                                         
  #endif                                                                                            ! #elif defined(__WIN__) || defined(__sun)                                                          
  #define HAVE_STACKTRACE 1                                                                         
  #endif                                                                                            
                                                                                                    
--- 23,31 ----
      (defined(__alpha__) && defined(__GNUC__))                                                     
  #define HAVE_STACKTRACE 1                                                                         
  #endif                                                                                            
! #elif defined(__WIN__)                                                                            
! #define HAVE_STACKTRACE 1                                                                         
! #elif defined(HAVE_PRINTSTACK)                                                                    
  #define HAVE_STACKTRACE 1                                                                         
  #endif
[22 Jan 2010 13:40] Georgi Kodinov
Setting target version to 5.0 : 5.0 build fails as well.
[26 Jan 2010 18:47] 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/98237

2841 Staale Smedseng	2010-01-26
      Bug#50409 Solaris 8 compatibility broken by assumption about
      printstack() being present
      
      When Bug#47391 was fixed, no assumption was made that support
      for Solaris 8 was needed. Solaris 8 lacks printstack(), and 
      the build breaks because of this.
      
      This patch adds a test for the presence of printstack() to
      configure.in for 5.0, and uses HAVE_PRINTSTACK to make
      decisions rather than the __sun define.
[27 Jan 2010 10:39] 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/98307

2841 Staale Smedseng	2010-01-27
      Bug#50409 Solaris 8 compatibility broken by assumption about
      printstack() being present
      
      When Bug#47391 was fixed, no assumption was made that support
      for Solaris 8 was needed. Solaris 8 lacks printstack(), and 
      the build breaks because of this.
      
      This patch adds a test for the presence of printstack() to
      configure.in for 5.0, and uses HAVE_PRINTSTACK to make
      decisions rather than the __sun define.
[4 Feb 2010 10:20] Bugs System
Pushed into 5.1.44 (revid:joro@sun.com-20100204101444-2j32mhqroo0iiio6) (version source revid:aelkin@mysql.com-20100128095157-dkwe8691qj2tp9h7) (merge vers: 5.1.43) (pib:16)
[5 Feb 2010 11:50] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100130212638-ai8t5v3u6647p6d2) (pib:16)
[5 Feb 2010 11:56] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alik@sun.com-20100204064210-ljwanqvrjs83s1gq) (merge vers: 6.0.14-alpha) (pib:16)
[5 Feb 2010 12:01] Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alik@sun.com-20100130191336-i53i9wx67n81ridm) (merge vers: 5.5.2-m2) (pib:16)
[7 Feb 2010 16:48] MC Brown
An entry has been added to the 5.1.44, 6.0.14, 5.5.2 changelog:
 
        The <literal>printstack</literal> function does not exist ong                                 
        Solaris 8 or earlier, which would lead to a compilation                                       
        failure.
[12 Mar 2010 14:10] Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100312135944-t0z8s1da2orvl66x) (version source revid:jonas@mysql.com-20100312115609-woou0te4a6s4ae9y) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[12 Mar 2010 14:26] Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100312134846-tuqhd9w3tv4xgl3d) (version source revid:jonas@mysql.com-20100312060623-mx6407w2vx76h3by) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[12 Mar 2010 14:39] MC Brown
No changelog entry required (already noted in 5.1.44 changelog)
[12 Mar 2010 14:41] Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100312135724-xcw8vw2lu3mijrhn) (version source revid:jonas@mysql.com-20100312103652-snkltsd197l7q2yg) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[12 Mar 2010 15:42] MC Brown
No changelog entry needed.
[25 Mar 2010 10:18] 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/104294

3327 MySQL Build Team	2010-03-25
      Backport of "Bug #50409 Solaris 8 compatibility broken by assumption about printstack() being present"
[12 Apr 2010 10:16] Bugs System
Pushed into 5.1.47 (revid:build@mysql.com-20100412101220-adgau1r18kwgthps) (version source revid:build@mysql.com-20100412101220-adgau1r18kwgthps) (merge vers: 5.1.47) (pib:16)
[28 May 2010 6:00] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:29] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100422150658-fkhgnwwkyugtxrmu) (merge vers: 6.0.14-alpha) (pib:16)
[28 May 2010 6:57] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:alexey.kopytov@sun.com-20100429203306-tg0wz4y2xyx8edrl) (merge vers: 5.5.5-m3) (pib:16)
[28 May 2010 21:48] Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[17 Jun 2010 12:04] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:47] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:31] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)