Bug #67177 MySQL 5.1 is incompatibile with automake 1.12
Submitted: 10 Oct 2012 10:39 Modified: 13 Mar 2013 19:23
Reporter: Alexey Kopytov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1 OS:Any
Assigned to:
Triage: Needs Triage: D3 (Medium)

[10 Oct 2012 10:39] Alexey Kopytov
Description:
The .yy.cc Makefile rule generated by Automake 1.12 produces sql_yacc.hh instead of sql_yacc.h. Which breaks compilation, because sql/Makefile.am assumes the output name to be sql_yacc.h:

/bin/sh ../ylwrap sql_yacc.yy y.tab.c sql_yacc.cc y.tab.h `echo sql_yacc.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output sql_yacc.output -- bison -y -p MYSQL -d --verbose 
updating sql_yacc.output
updating sql_yacc.hh
make: *** No rule to make target `sql_yacc.h', needed by `all'.  Stop. 

How to repeat:
Try building MySQL 5.1 with Automake 1.12.
[11 Oct 2012 18:32] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior. Please indicate how you build MySQL and which exact 5.1 version you use.
[11 Oct 2012 18:43] Alexey Kopytov
MySQL 5.1 from the current lp:mysql-server/5.1.

$ bzr revision-info 
3809 joerg.bruehe@oracle.com-20120911104732-gjcmqg1t2yext74e\\

$ automake --version
automake (GNU automake) 1.12.4

$ BUILD/compile-pentium-debug-max-no-ndb # (I don't think it matters, any way to build the server would fail)
...
Making all in sql
make[1]: warning: -jN forced in submake: disabling jobserver mode.
/bin/sh ../ylwrap sql_yacc.yy y.tab.c sql_yacc.cc y.tab.h `echo sql_yacc.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output sql_yacc.output -- bison -y -p MYSQL -d --verbose 
make[1]: *** No rule to make target `sql_yacc.h', needed by `all'.  Stop.
make[1]: *** Waiting for unfinished jobs....
updating sql_yacc.output
updating sql_yacc.hh
make: *** [all-recursive] Error 1

That's on OSX, but again, I think it is irrelevant, as reportedly it fails in the same way on Arch Linux which has already upgraded to Automake 1.12.
[6 Dec 2012 19:37] Sveta Smirnova
Thank you for the feedback.

Build script matters. Verified as described on Oracle Linux 6
[7 Feb 2013 5:42] Laurynas Biveinis
There appears to be a fixing commit in 5.1, revno 3909, thus this might have been fixed in 5.1.68.
[7 Feb 2013 5:43] Laurynas Biveinis
The same commit suggests the internal bug id #15967374
[13 Mar 2013 19:23] Paul Dubois
Noted in 5.1.69 changelog.

Adjusted MySQL configuration to account for change in Automake 1.12
that produced sql_yacc.hh rather than sql_yacc.h as expected by
sql/Makefile.am.
[26 Jun 2013 8:51] Laurynas Biveinis
The fix commit revision has moved from 3909:

5.1$ bzr log -r 3935 -n0
------------------------------------------------------------
revno: 3935 [merge]
author: hery.ramilison@oracle.com
committer: Hery Ramilison <hery.ramilison@oracle.com>
branch nick: mysql-5.1
timestamp: Tue 2013-02-05 20:47:45 +0100
message:
  Merge from mysql-5.1.68-release
    ------------------------------------------------------------
    revno: 3908.1.1
    tags: mysql-5.1.68
    committer: Hery Ramilison <hery.ramilison@oracle.com>
    branch nick: mysql-5.1.68-release
    timestamp: Tue 2013-01-08 13:29:11 +0100
    message:
      Applying patch for Bug#67177 Bug#15967374 from Kent