Bug #14317 Cannot compile MYSQL 5.0.15 on AIX 4.3
Submitted: 26 Oct 2005 6:03 Modified: 18 Jan 2006 0:46
Reporter: Dao-hui Chen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.0.15 OS:IBM AIX (AIX)
Assigned to: Paul DuBois CPU Architecture:Any

[26 Oct 2005 6:03] Dao-hui Chen
Description:
MYSQL 5.0.15 cannot be compiled on AIX 4.3 with gcc 3.3.5
Below is the error message:

        make  all-recursive
Making all in .
.
.
(skipping messages)
.
.
Making all in instance-manager
make: Cannot find a rule to create target ../../libmysql/get_password.o from dependencies.
Stop.
make: The error code from the last command is 1.

Stop.
make: The error code from the last command is 1.

Stop.
make: The error code from the last command is 2.

Stop.

configure script runs with below arguments:

--with-charset=big5 --prefix=/usr/local --with-low-mem --without-bench

It seems that Makefile grabs wrong dirname of where get_password.o is, because get_password.o is at (topsrcdir)/libmysql/.libs/ , not (topsrcdir)/libmysql/

MYSQL 4.x compiles and runs fine on this platform

How to repeat:
untar mysql 5 src package
./configure
make
[14 Dec 2005 16:40] Aleksey Kishkin
it's not a feature request but rather bugreport. I am changing severity to S3
[15 Dec 2005 10:59] Valeriy Kravchuk
Thank you for a problem report. Have you tried to compile 5.0.16? Please, send the results of "echo $PATH" command also.
[16 Dec 2005 7:45] Dao-hui Chen
This problem still exists in 5.0.16. But if I remove "server-tools" in Makefile, or add "--with-mysqlmanager=no" to configure script's arguments, mysql compiles and runs fine.
[16 Dec 2005 7:49] Dao-hui Chen
Oops, I forgot $PATH:

/usr/java130/jre/sh:/usr/java130/jre/bin:/usr/java130/bin:/usr/local/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/dhchen/bin:/usr/bin/X11:/sbin:.:/usr/local/bin:/bluegill/bin:/usr/vacpp/bin:/bluegill/EbppCLS/BatchJob:/usr/ibmcxx/bin:/usr/ccs/bin:/home/dhchen/bin/bin

gcc in /usr/local/bin, ld and make in /usr/ccs/bin
This machine doesn't have ibmcxx or visual age c++, so I use gcc instead
[20 Dec 2005 14:59] Valeriy Kravchuk
Sorry for a delay. Try again, please, with 5.0.17, now available at the mirrors, and inform about the results. I'll be forced to check on the lates GA version anyway.
[30 Dec 2005 2:49] Dao-hui Chen
Sorry for the delay. I tried to compile 5.0.17, but the problem still exists:

Making all in instance-manager
        if g++ -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I../../include  -I../../include   -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ  -DDEFAULT_PID_FILE_NAME="/usr/local/var/mysqlmanager.pid"  -DDEFAULT_LOG_FILE_NAME="/usr/local/var/mysqlmanager.log"  -DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock"  -DDEFAULT_PASSWORD_FILE_NAME="/usr/local/etc/mysqlmanager.passwd"  -DDEFAULT_MYSQLD_PATH="/usr/local/libexec/mysqld"  -DDEFAULT_MONITORING_INTERVAL="20"  -DDEFAULT_PORT="2273"  -DDEFAULT_CONFIG_FILE="/etc/my.cnf"  -DPROTOCOL_VERSION=10 -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ -MT liboptions_a-options.o -MD -MP -MF ".deps/liboptions_a-options.Tpo" -c -o liboptions_a-options.o `test -f 'options.cc' || echo './'`options.cc;  then mv -f ".deps/liboptions_a-options.Tpo" ".deps/liboptions_a-options.Po"; else rm -f ".deps/liboptions_a-options.Tpo"; exit 1; fi
        if g++ -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I../../include  -I../../include   -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ  -DDEFAULT_PID_FILE_NAME="/usr/local/var/mysqlmanager.pid"  -DDEFAULT_LOG_FILE_NAME="/usr/local/var/mysqlmanager.log"  -DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock"  -DDEFAULT_PASSWORD_FILE_NAME="/usr/local/etc/mysqlmanager.passwd"  -DDEFAULT_MYSQLD_PATH="/usr/local/libexec/mysqld"  -DDEFAULT_MONITORING_INTERVAL="20"  -DDEFAULT_PORT="2273"  -DDEFAULT_CONFIG_FILE="/etc/my.cnf"  -DPROTOCOL_VERSION=10 -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ -MT liboptions_a-priv.o -MD -MP -MF ".deps/liboptions_a-priv.Tpo" -c -o liboptions_a-priv.o `test -f 'priv.cc' || echo './'`priv.cc;  then mv -f ".deps/liboptions_a-priv.Tpo" ".deps/liboptions_a-priv.Po"; else rm -f ".deps/liboptions_a-priv.Tpo"; exit 1; fi
make: Cannot find a rule to create target ../../libmysql/get_password.o from dependencies.
Stop.
make: The error code from the last command is 1.

Stop.
[30 Dec 2005 18:11] Valeriy Kravchuk
I'll be able to start working on this report on AIX only next week. In the meantime, please, try to compile 5.0.18 that is officially released already, AND take into account the results of our successfull compile of 5.0.17 with GCC on AIX 5.2, described in Bug #15938. Inform about the results.
[2 Jan 2006 3:08] Dao-hui Chen
I tried 5.0.18, but got the same message:

Making all in server-tools
Making all in instance-manager
        if g++ -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I../../include  -I../../include   -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ  -DDEFAULT_PID_FILE_NAME="/usr/local/var/mysqlmanager.pid"  -DDEFAULT_LOG_FILE_NAME="/usr/local/var/mysqlmanager.log"  -DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock"  -DDEFAULT_PASSWORD_FILE_NAME="/usr/local/etc/mysqlmanager.passwd"  -DDEFAULT_MYSQLD_PATH="/usr/local/libexec/mysqld"  -DDEFAULT_MONITORING_INTERVAL="20"  -DDEFAULT_PORT="2273"  -DDEFAULT_CONFIG_FILE="/etc/my.cnf"  -DPROTOCOL_VERSION=10 -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ -MT liboptions_a-options.o -MD -MP -MF ".deps/liboptions_a-options.Tpo" -c -o liboptions_a-options.o `test -f 'options.cc' || echo './'`options.cc;  then mv -f ".deps/liboptions_a-options.Tpo" ".deps/liboptions_a-options.Po"; else rm -f ".deps/liboptions_a-options.Tpo"; exit 1; fi
        if g++ -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I../../include  -I../../include   -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ  -DDEFAULT_PID_FILE_NAME="/usr/local/var/mysqlmanager.pid"  -DDEFAULT_LOG_FILE_NAME="/usr/local/var/mysqlmanager.log"  -DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock"  -DDEFAULT_PASSWORD_FILE_NAME="/usr/local/etc/mysqlmanager.passwd"  -DDEFAULT_MYSQLD_PATH="/usr/local/libexec/mysqld"  -DDEFAULT_MONITORING_INTERVAL="20"  -DDEFAULT_PORT="2273"  -DDEFAULT_CONFIG_FILE="/etc/my.cnf"  -DPROTOCOL_VERSION=10 -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -Wa,-many -DUNDEF_HAVE_INITGROUPS -DSIGNALS_DONT_BREAK_READ -MT liboptions_a-priv.o -MD -MP -MF ".deps/liboptions_a-priv.Tpo" -c -o liboptions_a-priv.o `test -f 'priv.cc' || echo './'`priv.cc;  then mv -f ".deps/liboptions_a-priv.Tpo" ".deps/liboptions_a-priv.Po"; else rm -f ".deps/liboptions_a-priv.Tpo"; exit 1; fi
make: Cannot find a rule to create target ../../libmysql/get_password.o from dependencies.
Stop.
make: The error code from the last command is 1.

Stop.
make: The error code from the last command is 1.

Stop.
make: The error code from the last command is 2.

Stop.

I took a look at bug#15938, but I think my problem is not related to that one. In my environment, mysql server itself compiles and runs fine (through loading is very low), but mysql instance manager failed to compile, and it seems to be a makefile problem (make says cannot create depedency).
[2 Jan 2006 7:30] Dao-hui Chen
After I added --disable-shared to configure script, the whole compile process runs fine. So I think the problem maybe is about shared and static library on AIX 4.3
[4 Jan 2006 11:09] Valeriy Kravchuk
I've tried to repeat with 5.0.18 on our only AIX 4.3 machine, but was not able because of some (older version) gcc-related problem. 

But I have one guess for you: please, try to use gmake instead of default make (as it is a make-related problem in your case). What make -v gives you?
[5 Jan 2006 6:06] Dao-hui Chen
I tried to compile with gmake 3.80 and everything goes fine. No error messages. Maybe you can add a note on docs about compiling mysql on AIX 4.3, or try to modify Makefile to let AIX's in-stock make complete the process
[5 Jan 2006 8:08] Valeriy Kravchuk
Thank you for the additional check. I'll mark this report as verified documentation request. This page, http://dev.mysql.com/doc/refman/5.0/en/ibm-aix.html, should be updated according to this report: gmake (3.80) should be used to make MySQL 5.0.x on AIX 4.3.

As for "modify Makefile to let AIX's in-stock make complete the process" - according to our engineering team, AIX 4.3 + GCC is a low priority platform, so do not expect it to be changed really soon.
[18 Jan 2006 0:46] Mike Hillyer
Added note to installation section.