Bug #6769 Comilation failure on Fedora Core 3

Submitted: 23 Nov 2004 12:26 Modified: 25 Nov 2004 10:04
Reporter: Jan Kratochvil Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Packaging Severity:S1 (Critical)
Version:4.1.7-0 OS:Linux (Fedora Core 3 GNU/Linux)
Assigned to: Assigned Account CPU Architecture:Any

[23 Nov 2004 12:26] Jan Kratochvil
Description:
RPM rebuil fails with:
gcc -O3 -DDBUG_OFF -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -felide-constructors -fno-exceptions -fno-rtti -fno-implicit-templates -fno-exceptions -fno-rtti -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL -rdynamic -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  -L/usr/src/redhat/BUILD/mysql-4.1.7/bdb/build_unix -ldb ../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 -lz -ldl -L/usr/lib -lssl -lcrypto -lpthread -lcrypt -lnsl -lm -lpthread
ha_berkeley.o(.text+0x720): In function `ha_berkeley::bas_ext() const':
/usr/src/redhat/BUILD/mysql-4.1.7/sql/ha_berkeley.cc:340: undefined reference to `__cxa_guard_acquire'
ha_berkeley.o(.text+0x73a):/usr/src/redhat/BUILD/mysql-4.1.7/sql/ha_berkeley.cc:340: undefined reference to `__cxa_guard_release'
collect2: ld returned 1 exit status
make[4]: *** [mysqld] Error 1
make[4]: Leaving directory `/usr/src/redhat/BUILD/mysql-4.1.7/sql'

Workaround is to use for ./configure:
    CXXLDFLAGS="-lstdc++"

See also Bug 5534.

How to repeat:
Install Fedora Core 3 (possibly with updates up to 2004-11-23).

rpmbuild -bb mysql-4.1.7.spec

Suggested fix:
Handle correctly the failed workarounds below:

configure.in:
                                                                                                                       
  # If you are using 'gcc' 3.0 (not g++) to compile C++ programs on Linux,
  # we will gets some problems when linking static programs.
  # The following code is used to fix this problem.
                                                                                                                       
  if echo $CXX | grep gcc > /dev/null 2>&1
  then
    if $CXX -v 2>&1 | grep 'version 3' > /dev/null 2>&1
    then
      CXXFLAGS="$CXXFLAGS -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL"
    fi
  fi
                                                                                                                       
mysql-4.1.7.spec:
                                                                                                                       
# Use gcc for C and C++ code (to avoid a dependency on libstdc++ and
# including exceptions into the code
if [ -z "$CXX" -a -z "$CC" ]
then
        export CC="gcc"
        export CXX="gcc"
fi
[23 Nov 2004 12:27] Jan Kratochvil
Workaround patch

Attachment: mysql-4.1.7.spec-gcc_fedora.patch (application/octet-stream, text), 348 bytes.

[25 Nov 2004 10:04] Lenz Grimmer
This bug was marked as a duplicate of bug#6554

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.