Description:
Solaris make can not install MySQL 5.1.23 with NDB version. This was identified with mysql-5.1.23-ndb-6.2.15 source package.
This is clearly a Makefile problem, because re-executing compilation with gmake avoids this problem.
Output of compilation, when error comes:
if gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -I../../include -I../../regex -I../../sql -I. -O3 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -MT myrg_rnext_same.o -MD -MP -MF ".deps/myrg_rnext_same.Tpo" -c -o myrg_rnext_same.o myrg_rnext_same.c; \
then mv -f ".deps/myrg_rnext_same.Tpo" ".deps/myrg_rnext_same.Po"; else rm -f ".deps/myrg_rnext_same.Tpo"; exit 1; fi
rm -f libmyisammrg.a
ar cru libmyisammrg.a myrg_open.o myrg_extra.o myrg_info.o myrg_locking.o myrg_rrnd.o myrg_update.o myrg_delete.o myrg_rsame.o myrg_panic.o myrg_close.o myrg_create.o myrg_static.o myrg_rkey.o myrg_rfirst.o myrg_rlast.o myrg_rnext.o myrg_rprev.o myrg_queue.o myrg_write.o myrg_range.o ha_myisammrg.o myrg_rnext_same.o
ranlib libmyisammrg.a
Making all in ndb
make: Fatal error in reader: Makefile, line 410: Unexpected end of line seen
Current working directory dir/src/mysql-5.1.23-ndb-6.2.15/storage/ndb
*** Error code 1
The following command caused the error:
failcom='exit 1'; \
for f in x $MAKEFLAGS; do \
case $f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
list='archive blackhole csv example federated heap innobase myisam myisammrg ndb'; for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
dot_seen=yes; \
local_target="$target-am"; \
else \
local_target="$target"; \
fi; \
(cd $subdir && make $local_target) \
|| eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
make "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /data/local/src/mysql-5.1.23-ndb-6.2.15/storage
*** Error code 1
The following command caused the error:
failcom='exit 1'; \
for f in x $MAKEFLAGS; do \
case $f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
list='. include Docs cmd-line-utils sql-common scripts strings mysys dbug extra regex libmysql libmysql_r client unittest storage plugin vio sql man tests netware libmysqld mysql-test support-files sql-bench server-tools win'; for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
dot_seen=yes; \
local_target="$target-am"; \
else \
local_target="$target"; \
fi; \
(cd $subdir && make $local_target) \
|| eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
make "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
How to repeat:
Try to compile MySQL version 5.1.23 (including NDB support) with Solaris make.
Suggested fix:
Avoid problem by using GNU make (with "gmake" command).
Fix should be done in NDB storage engine's Makefile (problem is found at least on line 410).