Bug #13571 Compiling problems on AIX
Submitted: 28 Sep 2005 14:22 Modified: 14 Apr 2006 14:45
Reporter: Mark McBride Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.0.13-rc, 5.0.14-rc OS:IBM AIX (AIX 5.2)
Assigned to: Kent Boortz CPU Architecture:Any

[28 Sep 2005 14:22] Mark McBride
After a lot of "WARNING: Duplicate symbol" messages. It gets down to:

ld: 0711-224 WARNING: Duplicate symbol: Intvar_log_event::~Intvar_log_event()
ld: 0711-224 WARNING: Duplicate symbol: Xid_log_event::~Xid_log_event()
ld: 0711-224 WARNING: Duplicate symbol: Rand_log_event::~Rand_log_event()
ld: 0711-224 WARNING: Duplicate symbol: User_var_log_event::~User_var_log_event()
ld: 0711-224 WARNING: Duplicate symbol: Format_description_log_event::~Format_description_log_event()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: Prepared_statement::IS_IN_USE
make: 1254-004 The error code from the last command is 8.

make: 1254-004 The error code from the last command is 1.

make: 1254-004 The error code from the last command is 2.

make: 1254-004 The error code from the last command is 1.

make: 1254-004 The error code from the last command is 2.


The only file that the "Prepared_statement::IS_IN_USE" apears is "./sql/sql_prepare.cc".

How to repeat:
AIX level 5200-04.
Visuall Age C++ for AIX version

./configure --prefix=/usr/local/mysql --enable-thread-safe-client --with-openssl=/opt/freeware

[29 Sep 2005 16:23] Valeriy Kravchuk
I've got another error when trying to build 5.0.14-rc of today on our aix52 using:

CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAG="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/home/mysqldev/valeriy/dbs/5.0 --enable-thread-safe-client --with-openssl=/opt/freeware

(flags are taken for our defaults for AIX):

        source='priv.cc' object='liboptions_a-priv.o' libtool=no  depfile='.deps
/liboptions_a-priv.Po' tmpdepfile='.deps/liboptions_a-priv.TPo'  depmode=aix /bin/sh ../../depcomp  xlC_r -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I../../zlib -I../../include  -I/opt/freeware/include -I../../include   -O3 -D DBUG_OFF     -DDEFAULT_PID_FILE_NAME="/home/mysqldev/valeriy/dbs/5.0/var/mysqlmanager.pid"  -DDEFAULT_LOG_FILE_NAME="/home/mysqldev/valeriy/dbs/5.0/var/mysqlmanager.log"  -DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock"  -DDEFAULT_PASSWORD_FILE_NAME="/home/mysqldev/valeriy/dbs/5.0/etc/mysqlmanager.passwd"  -DDEFAULT
_MYSQLD_PATH="/home/mysqldev/valeriy/dbs/5.0/libexec/mysqld"  -DDEFAULT_MONITORING_INTERVAL="20"  -DDEFAULT_PORT="2273"  -DDEFAULT_CONFIG_FILE="/etc/my.cnf"  -D
PROTOCOL_VERSION=10 -O3 -DDBUG_OFF    -c -o liboptions_a-priv.o `test -f 'priv.cc' || echo './'`priv.cc
"/usr/include/alloca.h", line 34.9: 1540-1401 (I) An unknown "pragma __alloca" is specified.
make: 1254-002 Cannot find a rule to create target ../../libmysql/get_password.o from dependencies.
make: 1254-004 The error code from the last command is 1.

But I've got information that 5.0.13-rc was build successfully using a similar configure options.

Please, try to perform "ulimit -d unlimited" before the retry, and inform about the results. Just to be sure that we have different problems.
[30 Sep 2005 13:31] Mark McBride
Changed my ulimit. Ran the exact configure that you did. Same result.

[30 Sep 2005 17:18] Mark McBride
My log file is too big to upload. It's 426kb. Is there somewhere else I can put it for you to get?

[30 Sep 2005 17:24] Valeriy Kravchuk
Please, try to upload the log to ftp://ftp.mysql:/pub/mysql/upload (as a file bug13571.txt) and add a cooment about the results. But I think that aix52 compilation problems will be checked by developers in any case now.
[30 Sep 2005 17:29] Mark McBride
The file is now uploaded. It is the output from script.

[4 Oct 2005 1:10] Kent Boortz
First there is a bug in the MySQL server configure files, it assumes
things about large file support that isn't true, see bug#10776.
So you have to give --disable-largefile, but will get large file
support anyway.

The second bug is in the instance manager Makefile.am, that uses
<lib>_LDADD trying to link in "*.o" files from another directory.
This construct is for linking indirectly using libtool objects and
archives only, i.e. "*.la" and "*.lo" files.

A work around could have been to use the --without-extra-tools, but it
looks like that option is broken, and will always build with the extra
tools. Bummer ;-)

This will be fixed, but note that the extra tools are built last, so your
build is actually ok, just missing the instance manager.

For the record, my build repeating the problem with "get_password.o"
not being found, was done using GNU tar to unpack (in case AIX TAR
can't handle long file names), configured and built using

  % CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" \ 
  CXX=xlC_r CXXFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" \ 
  ./configure --with-openssl=/opt/freeware --prefix=/usr/local/mysql \ 
  --enable-thread-safe-client --with-named-z-libs=no --disable-largefile \

  % gmake

AIX 5.2 and IBM(R) VisualAge(R) C++ Version

Ref: http://www.gnu.org/software/automake/manual/html_mono/automake.html#Libtool%20Flags
[4 Oct 2005 2:12] Kent Boortz
Sorry, --without-extra-tools was the wrong option. As a work
around, the option --without-mysqlmanager should disable the
instance manager, and then avoid the compilation problem.
[5 Oct 2005 14:28] Mark McBride
I changed the configure options but I still get the same errors. I do not have gmake on the system. Is gmake required?
[24 Oct 2005 12:58] Mark McBride
I just built 4.1.15 on the same environment and it built correctly.
[8 Nov 2005 15:05] Alan Burlison
The get_password.o problem also exists with 5.0.15 on Solaris
[8 Mar 2006 1:23] Kent Boortz
The issue with compiling the instance manager, failing
to find "get_password.o" is solved in bug#17155. 

Still, the large file problem needs to be corrected.
[29 Mar 2006 22:17] Kent Boortz
I did a new test build with a configure like in "bug13571.txt"

CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" \ 
CXX=xlC_r CXXFLAG="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" \ 
./configure --prefix=/usr/local/mysql --enable-thread-safe-client \ --with-openssl=/opt/freeware

The source for MySQL 5.0.19 compiles without problem on
our AIX 5.2 host. xlc_r version, and xlC_r version (from "lslpp -L  | grep vac").
[11 Apr 2006 17:31] Mike Hillyer

Is there a cangelog entry needed here? If so can you suggest one? If not can you close this?
[14 Apr 2006 14:45] Paul DuBois
Noted in 4.1.19, 5.0.20, 5.1.9 changelogs.