Bug #9987 make error
Submitted: 19 Apr 2005 0:24 Modified: 20 Apr 2005 22:46
Reporter: Yukihiro KAWADA Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:4.1.11 OS:Solaris (Solaris 8)
Assigned to: CPU Architecture:Any

[19 Apr 2005 0:24] Yukihiro KAWADA
Description:
SunOS host 5.8 Generic_108528-21 sun4u sparc SUNW,Sun-Blade-1000
gcc --version 2.95.3
autoconf --version autoconf (GNU Autoconf) 2.59

make[2]: Entering directory `/raid/var/export/staff/mysql-4.1.11/sql'
/bin/bash ../libtool --preserve-dup-deps --mode=link gcc  -O3 -DDBUG_OFF -O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti   -fno-implicit-templates -fno-exceptions -fno-rtti -D_FILE_OFFSET_BITS=64 -DHAVE_CURSES_H -I/export/home/staff/mysql-4.1.11/include -DHAVE_RWLOCK_T   -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 item_subselect.o item_row.o item_geofunc.o field.o strfunc.o key.o sql_class.o sql_list.o net_serv.o protocol.o sql_state.o lock.o my_lock.o sql_string.o sql_manager.o sql_map.o mysqld.o password.o hash_filo.o hostname.o set_var.o sql_parse.o sql_yacc.o sql_base.o table.o sql_select.o sql_insert.o sql_prepare.o sql_error.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 discover.o time.o opt_range.o opt_sum.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 ha_ndbcluster.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 sql_derived.o client.o sql_client.o mini_client_errors.o pack.o stacktrace.o repl_failsafe.o gstream.o spatial.o sql_help.o protocol_cursor.o tztime.o my_time.o ha_example.o ha_archive.o ha_tina.o ha_blackhole.o ../innobase/usr/libusr.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/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 ../myisam/libmyisam.a ../myisammrg/libmyisammrg.a ../heap/libheap.a ../vio/libvio.a ../mysys/libmysys.a ../dbug/libdbug.a ../regex/libregex.a ../strings/libmystrings.a -L/usr/local/lib -lz     -ldl   -lpthread -lthread -lposix4 -lcrypt -lgen -lsocket -lnsl -lm  -lpthread -lthread
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_get_n_threads':
srv0srv.o(.text+0x4b8): undefined reference to `mutex_enter_func'
srv0srv.o(.text+0x524): undefined reference to `mutex_exit'
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_get_thread_type':
srv0srv.o(.text+0xd88): undefined reference to `mutex_enter_func'
srv0srv.o(.text+0xdd4): undefined reference to `mutex_exit'
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_init':
srv0srv.o(.text+0xe10): undefined reference to `mem_alloc_func'
srv0srv.o(.text+0xe34): undefined reference to `mem_alloc_func'
srv0srv.o(.text+0xecc): undefined reference to `mem_alloc_func'
srv0srv.o(.text+0x10e0): undefined reference to `mem_alloc_func'
srv0srv.o(.text+0x15ec): undefined reference to `mem_alloc_func'
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_suspend_mysql_thread':
srv0srv.o(.text+0x284c): undefined reference to `thr_get_trx'
srv0srv.o(.text+0x2884): undefined reference to `mutex_enter_func'
srv0srv.o(.text+0x28e0): undefined reference to `mutex_exit'
srv0srv.o(.text+0x2950): undefined reference to `mutex_exit'
srv0srv.o(.text+0x2b9c): undefined reference to `mutex_enter_func'
srv0srv.o(.text+0x2c04): undefined reference to `mutex_exit'
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_refresh_innodb_monitor_stats':
srv0srv.o(.text+0x2d4c): undefined reference to `mutex_enter_func'
srv0srv.o(.text+0x2e1c): undefined reference to `mutex_exit'
../innobase/srv/libsrv.a(srv0srv.o): In function `srv_printf_innodb_monitor':
srv0srv.o(.text+0x2e48): undefined reference to `mutex_enter_func'
    :
    :
os0file.o(.text+0x5d34): undefined reference to `ut_align'
os0file.o(.text+0x5dd4): undefined reference to `ut_memcpy'
os0file.o(.text+0x6014): undefined reference to `mach_read_from_4'
os0file.o(.text+0x603c): undefined reference to `mach_read_from_4'
os0file.o(.text+0x6340): undefined reference to `ut_memcpy'
collect2: ld returned 1 exit status
make[2]: *** [mysqld] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

How to repeat:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure '--prefix=/usr/local/mysql4111' '--with-extra-charsets=complex' '--enable-thread-safe-client' '--enable-local-infile' '--enable-assembler' '--disable-shared' '--with-innodb' '--with-zlib-dir=/usr/local' '--with-charset=utf8' '--with-named-curses-libs=-lcurses'

make
[20 Apr 2005 22:46] Jorge del Conde
Hi!

The problem is probably that your gcc/libtool/linker is configured in a way that it
does not do inlining as instructed by the 'extern inline' directive, or it removes
the generated code from the archives.

An easy way to fix the problem is to add

#define UNIV_MUST_NOT_INLINE

to /mysql/innobase/include/univ.i

- Jorge