Bug #30708 | make relies GNU extentions | ||
---|---|---|---|
Submitted: | 29 Aug 2007 22:36 | Modified: | 20 May 2010 15:58 |
Reporter: | Brian Aker | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | OS: | Any | |
Assigned to: | Jonathan Perkin | CPU Architecture: | Any |
[29 Aug 2007 22:36]
Brian Aker
[30 Aug 2007 3:53]
Valeriy Kravchuk
Thank you for a problem report. I'd treat it as feature request, but as our manual (http://dev.mysql.com/doc/refman/5.0/en/quick-install.html) does NOT say explicitely that GNU make is needed while installing from source, let this be a bug. Note that http://dev.mysql.com/doc/refman/5.0/en/installing-source-tree.html do have an explicit GNU make recommendation: "You need GNU make, autoconf 2.58 (or newer), automake 1.8.1, libtool 1.5, and m4 to run the next set of commands. Even though many operating systems come with their own implementation of make, chances are high that the compilation fails with strange error messages. Therefore, it is highly recommended that you use GNU make (sometimes named gmake) instead."
[30 Aug 2007 4:06]
Brian Aker
We should either remove the dependency or add a rule to configure.in to check for the correct make version.
[14 Sep 2007 12:09]
Bent Terp
How can this problem surface on a Fedora 7 box? [bent@localhost ~]$ rpmquery automake autoconf make gcc automake-1.10-5 autoconf-2.61-8.fc7 make-3.81-6.fc7 gcc-4.1.2-17 Weirdness.
[14 Sep 2007 12:37]
Bent Terp
Ah, okay! Adding -Wno-portability to automake seems to do the trick
[11 Jan 2008 15:11]
Jonathan Perkin
As far as I can see, we have four options: 1. Require GNU make. Probably the easiest to implement, but decreases portability, which would be a real shame if the only reason for doing so were to be to workaround this SCCS issue. Ideally GNU make would have a more portable way of turning off builtin rules (via MAKE_OPTIONS or something). 2. Change the SCCS handling to instead redefine 'GET = :', turning the rule into a nop. Unfortunately, as make outputs the commands being ran, this ends up looking rather ugly given it is ran for every target, for example: $ make -f Makefile : SCCS/s.Makefile.am : SCCS/s.configure.in make all-recursive Making all in . make[2]: Nothing to be done for `all-am'. Making all in include : ../SCCS/s.configure.in make all-am : ../SCCS/s.configure.in Making all in Docs : ../SCCS/s.configure.in [...] 3. Move SCCS handling into a seperate GNUmakefile which includes the main Makefile. GNU make will use GNUmakefile and correctly disable the SCCS handling, while other make implementations will Makefile and happily ignore it. Perhaps the most pragmatic solution, however it bulks the source tree out with many extra files just to accomodate this one problem, and poses possible confusion as you now have two active makefiles. 4. Remove the SCCS handling and revert to default GNU make behaviour. Developers would (as I understand it), be forced to build in clean trees to avoid the make failing when a writeable checked-out file exists and the SCCS version is newer. Comments appreciated.
[13 Jan 2008 16:25]
Sergei Golubchik
I'd prefer the 4th option. auto-checkout is convenient, sometimes I even want it (and for such a case I have a script that removes SCCS line in all Makefile's in a tree)
[22 Feb 2008 21:34]
Omer Barnir
workaround: Use GNU
[12 Dec 2008 13:09]
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/61481 2796 Jonathan Perkin 2008-12-12 bug#30708: make relies GNU extensions. Now that we no longer use BitKeeper we can safely remove the SCCS handling with no loss of functionality.
[16 Dec 2008 17:10]
Joerg Bruehe
Approved. We still have some warnings about other GNU-specific features, but IMO we should leave them to a second round: extra/yassl/src/Makefile.am:7: wildcard ../include/*.hpp: non-POSIX variable name extra/yassl/src/Makefile.am:7: (probably a GNU make extension) extra/yassl/src/Makefile.am:7: wildcard ../include/openssl/*.h: non-POSIX variable name extra/yassl/src/Makefile.am:7: (probably a GNU make extension) extra/yassl/taocrypt/Makefile.am:2: wildcard mySTL/*.hpp: non-POSIX variable name extra/yassl/taocrypt/Makefile.am:2: (probably a GNU make extension) extra/yassl/taocrypt/src/Makefile.am:13: wildcard ../include/*.hpp: non-POSIX variable name extra/yassl/taocrypt/src/Makefile.am:13: (probably a GNU make extension)
[16 Mar 2009 17:04]
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/69325 2744 Jonathan Perkin 2009-03-16 bug#30708: make relies GNU extensions. Remove the last couple of '%'-style pattern rules.
[6 May 2009 14:08]
Bugs System
Pushed into 6.0.12-alpha (revid:svoj@sun.com-20090506125450-yokcmvqf2g7jhujq) (version source revid:timothy.smith@sun.com-20090402052930-78npdzhwd7hg7dav) (merge vers: 6.0.11-alpha) (pib:6)
[28 Sep 2009 18:23]
Jonathan Perkin
Patches to remove SCCS handling were pushed into 6.0 tree and will hopefully make their way to a release one day.
[19 May 2010 13:01]
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/108625 3052 Alexander Nozdrin 2010-05-19 Another incarnation of the patch for Bug#30708 (make relies GNU extentions). The patch was partially backport from 6.0. Original comment: bug#30708: make relies GNU extensions. Now that we no longer use BitKeeper we can safely remove the SCCS handling with no loss of functionality.
[20 May 2010 10:03]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100520100225-oe4iuu5kuzsx0knq) (version source revid:alik@sun.com-20100520100057-rmn5y3o3ij726bm7) (merge vers: 6.0.14-alpha) (pib:16)
[20 May 2010 10:04]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100520100041-rf8ujv598zf86wjt) (version source revid:alik@sun.com-20100520100041-rf8ujv598zf86wjt) (merge vers: 5.5.5-m3) (pib:16)
[20 May 2010 10:06]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100520100140-5bzrtadw4w419i3m) (version source revid:alik@sun.com-20100520100049-1njm09rkvnhmysnr) (pib:16)
[20 May 2010 15:58]
Paul DuBois
Noted in 5.5.5, 6.0.14 changelogs. MySQL Makefiles relied on GNU extentions.