Bug #39279 mysqld Linux-ia64 binary depends on two versions of libunwind
Submitted: 5 Sep 2008 18:19 Modified: 16 Sep 2009 12:43
Reporter: Peter Schweitzer Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.0.67, 5.1.28 OS:Linux (ia64)
Assigned to: Mike Frank CPU Architecture:Any
Tags: IA64, libunwind, linux, mysqld, regression

[5 Sep 2008 18:19] Peter Schweitzer
Description:
mysqld does not start
mysqld 5.0.67 depends on two versions of libunwind:
libunwind.so.1 AND on libunwind.so.7
I cannot find libunwind.so.1; libunwind.so.7 is current for Debian

aster5:/usr/local/mysql-5.0.67/bin> ldd mysqld
        linux-gate.so.1 =>  (0xa000000000000000)
        librt.so.1 => /lib/tls/librt.so.1 (0x2000000000048000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0x2000000000068000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2000000000080000)
        libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0x20000000000b4000)
        libnsl.so.1 => /lib/tls/libnsl.so.1 (0x20000000000fc000)
        libm.so.6.1 => /lib/tls/libm.so.6.1 (0x2000000000138000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x200000000020c000)
        libc.so.6.1 => /lib/tls/libc.so.6.1 (0x2000000000370000)
        /lib/ld-linux-ia64.so.2 (0x2000000000000000)
        libunwind.so.1 => not found
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20000000005ec000)
        libunwind.so.7 => /lib/libunwind.so.7 (0x200000000060c000)

How to repeat:
cd $MYSQL_HOME/bin
ldd mysqld

Suggested fix:
Recompile distribution binary, I assume, but I do not understand why this happened.  mysqld 5.0.51a references only libunwind.so.7, so this feature is new in 5.0.67.
[8 Sep 2008 8:08] Valeriy Kravchuk
Thank you for a problem report. What exact binaries you had used? Please, send URL used to download.
[8 Sep 2008 13:21] Peter Schweitzer
Specific binary version I used was downloaded through this URL:
http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.67-linux-ia64-icc-glibc23.tar.gz/fr...

So it is the version for ia64 compiled with Intel's compiler
[10 Sep 2008 7:22] Valeriy Kravchuk
I've got a bit different result with that binaries on our system:

mysqldev@rhas4-ia64:~/mysql-5.0.67-linux-ia64-icc-glibc23/bin> ldd mysqld
        linux-gate.so.1 =>  (0xa000000000000000)
        librt.so.1 => /lib/tls/librt.so.1 (0x2000000000044000)
        libdl.so.2 => /lib/libdl.so.2 (0x2000000000078000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2000000000090000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x20000000000c4000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x2000000000110000)
        libm.so.6.1 => /lib/tls/libm.so.6.1 (0x200000000014c000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x2000000000208000)
        libc.so.6.1 => /lib/tls/libc.so.6.1 (0x2000000000374000)
        /lib/ld-linux-ia64.so.2 (0x2000000000000000)
        libunwind.so.1 => not found
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20000000005dc000)

But still, I think that dependency from libunwind.so.1 is a bug:

mysqldev@rhas4-ia64:~/mysql-5.0.67-linux-ia64-icc-glibc23/bin> find /usr -name "libunwind.so.1" -print 2>/dev/null
mysqldev@rhas4-ia64:~/mysql-5.0.67-linux-ia64-icc-glibc23/bin> find /usr -name "libunwind.so.*" -print 2>/dev/null
/usr/lib/libunwind.so.7
/usr/lib/libunwind.so.7.0.0
mysqldev@rhas4-ia64:~/mysql-5.0.67-linux-ia64-icc-glibc23/bin> find /usr -name "libunwind.so" -print 2>/dev/null
/usr/lib/libunwind.so

Binaries should depend either on libunwind.so or on libunwind.so.7 only.
[15 Sep 2008 10:42] Valeriy Kravchuk
5.1.28 is also affected:

mysqldev@rhas4-ia64:~/mysql-5.1.28-rc-linux-ia64-icc-glibc23/bin> ldd mysqld
        linux-gate.so.1 =>  (0xa000000000000000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2000000000044000)
        libunwind.so.1 => not found
        libc.so.6.1 => /lib/tls/libc.so.6.1 (0x2000000000078000)
        libdl.so.2 => /lib/libdl.so.2 (0x20000000002e0000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x20000000002fc000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x2000000000344000)
        libm.so.6.1 => /lib/tls/libm.so.6.1 (0x2000000000380000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x200000000043c000)
        /lib/ld-linux-ia64.so.2 (0x2000000000000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20000000005a8000)
[2 Jan 2009 10:53] Pete Clapham
I can confirm this behaviour persists in the GA release 5.1.30 on the IA64 arch.

Binaries obtained from:

http://dev.mysql.com/downloads/mysql/5.1.html#linux-icc

ia64e:/etc/init.d# ldd /usr/local/ensembl/mysql_5.1/bin/mysqld
        linux-gate.so.1 =>  (0xa000000000000000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2000000000048000)
        libunwind.so.1 => not found
        libc.so.6.1 => /lib/tls/libc.so.6.1 (0x200000000007c000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0x20000000002f8000)
        libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0x2000000000310000)
        libnsl.so.1 => /lib/tls/libnsl.so.1 (0x2000000000358000)
        libm.so.6.1 => /lib/tls/libm.so.6.1 (0x2000000000394000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x2000000000468000)
        /lib/ld-linux-ia64.so.2 (0x2000000000000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20000000005cc000)
        libunwind.so.7 => /lib/libunwind.so.7 (0x20000000005ec000)
[16 Sep 2009 12:43] Lars Heill
There appears to be no good fix for this issue.

Generic Linux packages built with icc on IA64 cannot be provided.
Linux on IA64 is supported through targeted RPM packages compiled with icc or as generic packages compiled with gcc.  See http://www.mysql.com/support/supportedplatforms/enterprise.html.