Bug #18276 does not build (failure to link) on AIX
Submitted: 16 Mar 2006 11:04 Modified: 23 Mar 2006 16:16
Reporter: Riccardo Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.19 OS:IBM AIX (AIX 4.2.1)
Assigned to: CPU Architecture:Any

[16 Mar 2006 11:04] Riccardo
Description:
when compiling with gcc 3.4.5 on aix 4.2.1 compilation fails.

I get many warnings form the linkers like

ld: 0711-341 WARNING: Replaced XTY_CM symbol _mutex_global_np requires an
        alignment more strict than the alignment of the symbol that replaces it.

then the make fails with:
ld: 0711-341 WARNING: Replaced XTY_CM symbol _mutex_global_np requires an
        alignment more strict than the alignment of the symbol that replaces it.
ld: 0711-224 WARNING: Duplicate symbol: .nsleep
ld: 0711-224 WARNING: Duplicate symbol: .sigpending
ld: 0711-224 WARNING: Duplicate symbol: .sigaction
ld: 0711-224 WARNING: Duplicate symbol: .sigsuspend
ld: 0711-224 WARNING: Duplicate symbol: .pause
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: thread_unlock
ld: 0711-317 ERROR: Undefined symbol: _nsleep
ld: 0711-317 ERROR: Undefined symbol: _sigpending
ld: 0711-317 ERROR: Undefined symbol: _sigaction
ld: 0711-317 ERROR: Undefined symbol: thread_kill
ld: 0711-317 ERROR: Undefined symbol: thread_userdata
ld: 0711-317 ERROR: Undefined symbol: thread_twakeup
ld: 0711-317 ERROR: Undefined symbol: _sigsuspend
ld: 0711-317 ERROR: Undefined symbol: thread_tsleep
ld: 0711-317 ERROR: Undefined symbol: _pause
ld: 0711-317 ERROR: Undefined symbol: thread_setmystate
ld: 0711-317 ERROR: Undefined symbol: thread_setstate
ld: 0711-317 ERROR: Undefined symbol: thread_terminate_ack
ld: 0711-317 ERROR: Undefined symbol: thread_waitlock
collect2: ld returned 8 exit status

How to repeat:
I configured using the suggested flags:
 CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static 

I tried reconfiguring by adding LDFLAGS="-Wl,-bbigtoc" but it did not help. It appears to be a thread library problem
[16 Mar 2006 14:46] Valeriy Kravchuk
Thank you for a problem report. Can you upgrade to AIX 4.3.3 or newer? That is the only AIX 4.x we have. I will not be really able to help you otherwise. Please, note also that we do not really use gcc to build on AIX.
[16 Mar 2006 14:55] Riccardo
no, I cannot upgrade to aix 4.3 in a forseeable future and we don't have developer licenses for xlc here.
Looking around the ned, I found that other people had a similar problems on aix 4.3 too, for example
http://lists.mysql.com/mysql/67097
unfortunately no follow-up with a solution or workaround is posted.

Do you use particular configure options that may help ?
[23 Mar 2006 16:16] Valeriy Kravchuk
We will not be able to deal with AIX 4.2 and gcc build in a foreseeable future. Anyway, the following configure options are usually used to build on AIX 5.2, for example:

./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex  --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-largefile --disable-shared --with-big-tables --with-readline --with-archive-storage-engine --with-innodb

Simple ./configure --prefix=... should also work.