Description:
I can't compile ndb at the moment. There is a bug in automake version
1.5, stated in the manual as the required version, that makes it fail
if AM_LDFLAGS is set in Makefile.am. The additions that break the
build are in the files
ndb/src/cw/cpcd/Makefile.am
ndb/src/kernel/blocks/backup/restore/Makefile.am
ndb/src/mgmclient/Makefile.am
ndb/src/mgmsrv/Makefile.am
ndb/tools/Makefile.am
The check in comment for the changed code is "added configurable
ldflags". Automake 1.5 is the version to use according to
http://dev.mysql.com/doc/mysql/en/Installing_source_tree.html
It isn't operating system dependent, it is the same problem on
Red Hat Linux 7.3 2.96-113
FreeBSD 5.1-RELEASE-p10
A result code of 1 from running automake will stop the build if built
using "BUILD/compile-pentium-max".
How to repeat:
% uname -a
Linux intranet 2.4.25 #2 SMP Thu Feb 19 03:14:50 CET 2004 i686 unknown
% date
Tue Jun 8 10:28:14 CEST 2004
% mkdir -p tmp
% bk clone bk-internal.mysql.com:/home/bk/mysql-4.1 tmp/mysql-4.1
% cd tmp/mysql-4.1
% aclocal-1.5 ; echo $?
0
% autoheader-2.53 ; echo $?
WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
WARNING: and `config.h.top', to define templates for `config.h.in'
WARNING: is deprecated and discouraged.
WARNING: Using the third argument of `AC_DEFINE' and
WARNING: `AC_DEFINE_UNQUOTED' allows to define a template without
WARNING: `acconfig.h':
WARNING: AC_DEFINE([NEED_MAIN], 1,
WARNING: [Define if a function `main' is needed.])
WARNING: More sophisticated templates can also be produced, see the
WARNING: documentation.
configure.in:8: warning: do not use m4_patsubst: use patsubst or m4_bpatsubst
configure.in:3000: warning: do not use m4_regexp: use regexp or m4_bregexp
autoheader-2.53: `config.h.in' is created
0
% autoconf-2.53; echo $?
0
% automake-1.5; echo $?
ndb/src/cw/cpcd/Makefile.am:11: invalid unused variable name: `AM_LDFLAGS'
ndb/src/kernel/blocks/backup/restore/Makefile.am:12: invalid unused variable name: `AM_LDFLAGS'
ndb/src/mgmclient/Makefile.am:18: invalid unused variable name: `AM_LDFLAGS'
ndb/src/mgmsrv/Makefile.am:27: invalid unused variable name: `AM_LDFLAGS'
ndb/tools/Makefile.am:26: invalid unused variable name: `AM_LDFLAGS'
1
Suggested fix:
I don't know automake but there should be other ways than assigning
to AM_LDFLAGS to pass linker flags from configure to Makefile.
Or the build system could be updated to use automake 1.7 or newer
(if not already the case) and the documentation could be changed
to reflect that.
Note that having "automake-1.5" in a PATH can mean any 1.5 version, the number
indicate the API version, not the revision. There are ways to specify what
version is needed to build, see
http://www.gnu.org/software/automake/manual/html_mono/automake.html#API%20versioning