Bug #18322 | Explicit link to libmtmalloc breaks dlopen() applications like DBD::mysql | ||
---|---|---|---|
Submitted: | 18 Mar 2006 6:00 | Modified: | 5 Dec 2007 18:19 |
Reporter: | Dean Ellis | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S2 (Serious) |
Version: | 4.1.18, 5.0.40 | OS: | Solaris (Solaris) |
Assigned to: | Kent Boortz | CPU Architecture: | Any |
Tags: | bfsm_2007_05_31, regression |
[18 Mar 2006 6:00]
Dean Ellis
[27 Mar 2006 17:25]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/4204
[31 Mar 2006 11:36]
Kent Boortz
The library "-lmtmalloc" was removed from the output of "mysql_config" on Solaris. Even if the MySQL server is built with this optional library, there is no need and we shoud not, force users of our libraries to use it. It caused problems for building "DBD::mysql" and maybe other applications.
[6 Apr 2006 13:42]
Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html Additional info: Documented fix in 4.1.19 changelog. Closed.
[22 May 2007 6:22]
Trent Lloyd
This appears to affect 5.0.40 as well (mysql-enterprise-gpl-5.0.40-solaris10-sparc) now that shared libraries are being distributed in this version, that were not in previous versions (bug #26767)
[22 May 2007 6:25]
Sveta Smirnova
Re-verified, because bug exists in 5.0.40 packages.
[19 Jun 2007 10:43]
Joerg Bruehe
Comment of this changeset: ChangeSet@1.2660, 2007-05-30 22:11:53+02:00, kent@mysql.com +2 -0 Makefile.am, configure.in: Added --with-mysqld-libs configure flag configure.in@1.432, 2007-05-30 22:11:44+02:00, kent@mysql.com +6 -0 Added --with-mysqld-libs configure flag sql/Makefile.am@1.119, 2007-05-30 22:11:44+02:00, kent@mysql.com +2 -1 Added --with-mysqld-libs configure flag I approve of it.
[9 Jul 2007 16:08]
Kent Boortz
Change is in 5.0.44 and 5.1.20
[9 Jul 2007 19:10]
Paul DuBois
Noted in 5.0.44, 5.1.20 changelogs. The -lmtmalloc library was removed from the output of mysql_config on Solaris, as it caused problems when building DBD::mysql (and possibly other applications) on that platform that tried to use dlopen() to access the client library.
[22 Nov 2007 23:04]
Sveta Smirnova
Bug still exists in version 5.1.22: libmysqlclient.so linked with libmtmalloc. See also bug #32012 $ldd /users/ssmirnova/sol10-sparc-c/build/mysql-5.1.22-rcb/lib/mysql/libmysqlclient.so librt.so.1 => /lib/librt.so.1 libgen.so.1 => /lib/libgen.so.1 libsocket.so.1 => /lib/libsocket.so.1 libmtmalloc.so.1 => /usr/lib/libmtmalloc.so.1 libnsl.so.1 => /lib/libnsl.so.1 libm.so.2 => /lib/libm.so.2 libc.so.1 => /lib/libc.so.1 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libaio.so.1 => /lib/libaio.so.1 libmd5.so.1 => /lib/libmd5.so.1 libmp.so.2 => /lib/libmp.so.2 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 /platform/SUNW,Sun-Fire-V245/lib/libc_psr.so.1 /platform/SUNW,Sun-Fire-V245/lib/libmd5_psr.so.1 ssmirnova@sol10-sparc-c ~/sol10-sparc-c/DBD-mysql-4.005 $make test make: Warning: File `blib/arch/auto/DBD/mysql/mysql.so' has modification time 2.5 s in the future PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00base.............ok 3/5install_driver(mysql) failed: Can't load '/users/ssmirnova/sol10-sparc-c/DBD-mysql-4.005/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1: perl: fatal: libmtmalloc.so.1: DF_1_NOOPEN tagged object may not be dlopen()'ed at /usr/perl5/5.8.4/lib/sun4-solaris-64int/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) line 3. ....
[4 Dec 2007 15:59]
Kent Boortz
An unconditional configure test if "libmtmalloc" exists was added, and if it does, it is used for linking all objects. This caused regression in 5.1.21, 5.1.22 and 6.0.3.
[4 Dec 2007 19:26]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/39242 ChangeSet@1.2628, 2007-12-04 20:27:08+01:00, kent@mysql.com +1 -0 configure.in: Removed the auto detection and use of Solaris "libmtmalloc", as it cause regression on bug#18322. The code removed also prevented a build without using this library. Users can still compile with "libmtmalloc", if configuring with "--with-mysqld-libs=-lmtmalloc"
[4 Dec 2007 23:55]
Kent Boortz
Note that this bug has went from "closed" to "verified" several times. Change will be in 5.1.23 and 6.0.5.
[5 Dec 2007 18:19]
Paul DuBois
Noted in 5.1.23, 6.0.5 changelogs.
[11 Dec 2007 14:51]
Bugs System
Pushed into 5.1.23-rc
[11 Dec 2007 14:51]
Bugs System
Pushed into 6.0.5-alpha