Bug #459 Data linkage table overflow in source build of innobase
Submitted: 20 May 2003 8:01 Modified: 30 Jun 2003 4:42
Reporter: Vinnie Lima Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:4.0.12 OS:HP/UX (HPUX 11.00)
Assigned to: CPU Architecture:Any

[20 May 2003 8:01] Vinnie Lima
Description:
When doing "make" in a source build of mysql in hpux 11.00, the compilation will fail at this stage:

<snip>
make[4]: Entering directory `/opt/patches/mysql-4.0.12/sql'
/bin/sh ../libtool --mode=link gcc  -O3 -DDBUG_OFF -felide-constructors -fno-exceptions -fno-rtti -O3  -fno-implicit-templates -fno-exceptions -fno-rtti -DHPUX11 -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT   -o mysqld  sql_lex.o sql_handler.o item.o item_sum.o item_buff.o item_func.o item_cmpfunc.o item_strfunc.o item_timefunc.o thr_malloc.o item_create.o field.o key.o sql_class.o sql_list.o net_serv.o net_pkg.o lock.o my_lock.o sql_string.o sql_manager.o sql_map.o mysqld.o password.o hash_filo.o hostname.o convert.o set_var.o sql_parse.o sql_yacc.o sql_base.o table.o sql_select.o sql_insert.o sql_update.o sql_delete.o uniques.o sql_do.o procedure.o item_uniq.o sql_test.o log.o log_event.o init.o derror.o sql_acl.o unireg.o des_key_file.o time.o opt_range.o opt_sum.o opt_ft.o records.o filesort.o handler.o ha_heap.o ha_myisam.o ha_myisammrg.o ha_berkeley.o ha_innodb.o ha_isam.o ha_isammrg.o sql_db.o sql_table.o sql_rename.o sql_crypt.o sql_load.o mf_iocache.o field_conv.o sql_show.o sql_udf.o sql_analyse.o sql_cache.o slave.o sql_repl.o sql_union.o mini_client.o mini_client_errors.o stacktrace.o repl_failsafe.o sql_olap.o ../innobase/usr/libusr.a ../innobase/odbc/libodbc.a ../innobase/srv/libsrv.a ../innobase/dict/libdict.a ../innobase/que/libque.a ../innobase/srv/libsrv.a ../innobase/ibuf/libibuf.a ../innobase/row/librow.a ../innobase/pars/libpars.a ../innobase/btr/libbtr.a ../innobase/trx/libtrx.a ../innobase/read/libread.a ../innobase/usr/libusr.a ../innobase/buf/libbuf.a ../innobase/ibuf/libibuf.a ../innobase/eval/libeval.a ../innobase/log/liblog.a ../innobase/fsp/libfsp.a ../innobase/fut/libfut.a ../innobase/fil/libfil.a ../innobase/lock/liblock.a ../innobase/mtr/libmtr.a ../innobase/page/libpage.a ../innobase/rem/librem.a ../innobase/thr/libthr.a ../innobase/com/libcom.a ../innobase/sync/libsync.a ../innobase/data/libdata.a ../innobase/mach/libmach.a ../innobase/ha/libha.a ../innobase/dyn/libdyn.a ../innobase/mem/libmem.a ../innobase/sync/libsync.a ../innobase/ut/libut.a ../innobase/os/libos.a ../innobase/ut/libut.a -lrt ../isam/libnisam.a ../merge/libmerge.a ../myisam/libmyisam.a ../myisammrg/libmyisammrg.a ../heap/libheap.a ../vio/libvio.a ../mysys/libmysys.a ../dbug/libdbug.a ../regex/libregex.a ../strings/libmystrings.a      -lpthread -lcrypt -lnsl -lm  -lpthread
gcc -O3 -DDBUG_OFF -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-implicit-templates -fno-exceptions -fno-rtti -DHPUX11 -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT -o mysqld sql_lex.o sql_handler.o item.o item_sum.o item_buff.o item_func.o item_cmpfunc.o item_strfunc.o item_timefunc.o thr_malloc.o item_create.o field.o key.o sql_class.o sql_list.o net_serv.o net_pkg.o lock.o my_lock.o sql_string.o sql_manager.o sql_map.o mysqld.o password.o hash_filo.o hostname.o convert.o set_var.o sql_parse.o sql_yacc.o sql_base.o table.o sql_select.o sql_insert.o sql_update.o sql_delete.o uniques.o sql_do.o procedure.o item_uniq.o sql_test.o log.o log_event.o init.o derror.o sql_acl.o unireg.o des_key_file.o time.o opt_range.o opt_sum.o opt_ft.o records.o filesort.o handler.o ha_heap.o ha_myisam.o ha_myisammrg.o ha_berkeley.o ha_innodb.o ha_isam.o ha_isammrg.o sql_db.o sql_table.o sql_rename.o sql_crypt.o sql_load.o mf_iocache.o field_conv.o sql_show.o sql_udf.o sql_analyse.o sql_cache.o slave.o sql_repl.o sql_union.o mini_client.o mini_client_errors.o stacktrace.o repl_failsafe.o sql_olap.o  ../innobase/usr/libusr.a ../innobase/odbc/libodbc.a ../innobase/srv/libsrv.a ../innobase/dict/libdict.a ../innobase/que/libque.a ../innobase/srv/libsrv.a ../innobase/ibuf/libibuf.a ../innobase/row/librow.a ../innobase/pars/libpars.a ../innobase/btr/libbtr.a ../innobase/trx/libtrx.a ../innobase/read/libread.a ../innobase/usr/libusr.a ../innobase/buf/libbuf.a ../innobase/ibuf/libibuf.a ../innobase/eval/libeval.a ../innobase/log/liblog.a ../innobase/fsp/libfsp.a ../innobase/fut/libfut.a ../innobase/fil/libfil.a ../innobase/lock/liblock.a ../innobase/mtr/libmtr.a ../innobase/page/libpage.a ../innobase/rem/librem.a ../innobase/thr/libthr.a ../innobase/com/libcom.a ../innobase/sync/libsync.a ../innobase/data/libdata.a ../innobase/mach/libmach.a ../innobase/ha/libha.a ../innobase/dyn/libdyn.a ../innobase/mem/libmem.a ../innobase/sync/libsync.a ../innobase/ut/libut.a ../innobase/os/libos.a ../innobase/ut/libut.a -lrt ../isam/libnisam.a ../merge/libmerge.a ../myisam/libmyisam.a ../myisammrg/libmyisammrg.a ../heap/libheap.a ../vio/libvio.a ../mysys/libmysys.a ../dbug/libdbug.a ../regex/libregex.a ../strings/libmystrings.a -lpthread -lcrypt -lnsl -lm -lpthread
/usr/bin/ld: Data Linkage Table (+z) overflow in file ../innobase/lock/liblock.a(lock0lock.o) - use +Z option to recompile
collect2: ld returned 1 exit status
make[4]: *** [mysqld] Error 1
make[4]: Leaving directory `/opt/patches/mysql-4.0.12/sql'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/patches/mysql-4.0.12/sql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/opt/patches/mysql-4.0.12/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/patches/mysql-4.0.12'
make: *** [all] Error 2
</snip>

The following is my configure line:

CFLAGS="-fomit-frame-pointer -O3 -fpic" CXX=gcc \
CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -O3" \
./configure --prefix=/opt/mysql --disable-shared

I have built it with versions of the following:

gcc version 2.95.3 20010315 (also tried 3.0.1, 3.1 with same results)
GNU Make 3.80
binutils 2.11.2
bison 1.35
flex 2.5.4a
glib 1.2.10

I have followed your tips on your documentation (http://www.mysql.com/doc/en/HP-UX_11.x.html) when building mysql on HPUX11:
-Installed patches PHKL_22840 and PHNE_22397 
-Copied `/usr/include/sys/unistd.h' to '/include' and appropriately edited the relevant sections.

I have attempted reconfiguring and rebuilding with adding the "+Z" flag to CXXFLAGS and CFLAGS to no resolution.

What else can I try? I have searched your knowledge base and bug queue and have not come accross any successful resolution. There was a reported incident exactly like my problem on the mailing list a while ago but no resolution was ever posted (nor I am able to contact the original author of the post).

Thanks,
Vinnie

How to repeat:
Configure your HPUX11 system as listed above with same patches/fixes and configure line.

Suggested fix:
????
[21 May 2003 1:22] Lenz Grimmer
Have you tried adding "+Z" to LDFLAGS instead?
[30 May 2003 6:48] Vinnie Lima
Yes I have attempted using "+Z" to LDFLAGS. I've manipulated the Makefile under the innobase build directory to include "+Z" in many places (even places that I should have not which gave me errors).  

What I have done to work around this is to disable the build of the the innobase support through the configure "--disable-innodb" option. I currently do not have the need for InnoDB, although this doesnt resolve the core problem.
[14 Feb 2005 22:51] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".