Bug #27511 Solaris 9 builds should be linked against libmtmalloc.so.1
Submitted: 29 Mar 2007 7:47 Modified: 20 Apr 2007 6:35
Reporter: Nils Goroll Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Compiling Severity:S4 (Feature request)
Version:all OS:Solaris (Solaris <10)
Assigned to: Daniel Fischer CPU Architecture:Any

[29 Mar 2007 7:47] Nils Goroll
Description:
A littly inconsistency seems to exist with Solaris builds.
While s10 x86_64 binaries are linked against libmtmalloc,
s9 sparc binaries are not:

s10 x86:

root@phys-webCv2-1 # ldd /local/rg-mysql1/mysql/mysql-standard-4.1.20-pc-solaris2.10-x86_64/bin/mysqld | grep mtmall
        libmtmalloc.so.1 =>      /usr/lib/64/libmtmalloc.so.1

root@phys-webCv2-3 # ldd /local/rg-mysqlslave1/mysql1/mysql-standard-5.0.27-solaris10-x86_64/bin/mysqld| grep mtmal
        libmtmalloc.so.1 =>      /usr/lib/64/libmtmalloc.so.1

s9 sparc:

[root@db01:/opt/lib]# ldd /opt/mysql-standard-4.1.19-sun-solaris2.9-sparc-64bit/bin/mysqld| grep mtmal
[root@db01:/opt/lib]# ldd /opt/mysql-5.0.37-solaris9-sparc-64bit/bin/mysqld| grep mtmal
(nothing)

s10 sparc:

new-eclipse:/var/tmp$ ldd mysql-5.0.37-solaris10-sparc-64bit/bin/mysqld| grep mtmal
        libmtmalloc.so.1 =>      /usr/lib/sparcv9/libmtmalloc.so.1

Please note that I have made the check for these platforms only,
so I cant be sure if the difference really depends on the OS Version,
but this is what it looks like.

Ref. regarding use of libmtmalloc : http://developers.sun.com/solaris/articles/mysql_perf_tune.html

Please avoid regression regarding bug#18322
http://bugs.mysql.com/bug.php?id=18322
(mysql_config should not return -llibmtmalloc)

Thank you, Nils

How to repeat:
n/a

Suggested fix:
link s9 builds with libmtmalloc
[29 Mar 2007 7:48] Nils Goroll
The first paragraph should read:

A littly inconsistency seems to exist with Solaris builds.
While s10 binaries are linked against libmtmalloc,
s9 binaries are not:
[29 Mar 2007 10:39] Valeriy Kravchuk
Thank you for a problem report. Verified with 5.0.37:

bash-2.05$ ldd mysql-5.0.37-solaris9-sparc-64bit/bin/mysqld
        librt.so.1 =>    /lib/sparcv9/librt.so.1
        libdl.so.1 =>    /lib/sparcv9/libdl.so.1
        libpthread.so.1 =>       /lib/sparcv9/libpthread.so.1
        libthread.so.1 =>        /lib/sparcv9/libthread.so.1
        libgen.so.1 =>   /lib/sparcv9/libgen.so.1
        libsocket.so.1 =>        /lib/sparcv9/libsocket.so.1
        libnsl.so.1 =>   /lib/sparcv9/libnsl.so.1
        libm.so.1 =>     /lib/sparcv9/libm.so.1
        libCstd.so.1 =>  /lib/sparcv9/libCstd.so.1
        libCrun.so.1 =>  /lib/sparcv9/libCrun.so.1
        libc.so.1 =>     /lib/sparcv9/libc.so.1
        libaio.so.1 =>   /usr/lib/64/libaio.so.1
        libmd5.so.1 =>   /usr/lib/64/libmd5.so.1
        libmp.so.2 =>    /usr/lib/64/libmp.so.2
        /usr/platform/SUNW,UltraAX-i2/lib/sparcv9/libc_psr.so.1
        /usr/platform/SUNW,UltraAX-i2/lib/sparcv9/libmd5_psr.so.1
bash-2.05$ uname -a
SunOS butch 5.9 Generic_118558-09 sun4u sparc SUNW,UltraAX-i2
[19 Apr 2007 16:41] Daniel Fischer
This is intentional.

It is still possible to run mysqld built for Solaris 9 and Solaris 8 with libmtmalloc by using LD_PRELOAD.
[20 Apr 2007 6:35] Nils Goroll
I am glad to hear that this is intentional. Yes, LD_PRELOADing
libmtmalloc does work and this is exactly what we do.