Bug #39279 mysqld Linux-ia64 binary depends on two versions of libunwind
Submitted: 5 Sep 2008 20:19 Modified: 15 Sep 2008 12:42
Reporter: Peter Schweitzer
Status: Verified
Category:Server: Compiling Severity:S1 (Critical)
Version:5.0.67, 5.1.28 OS:Linux (ia64)
Assigned to: Mike Frank Target Version:5.1+
Tags: regression, libunwind, IA64, linux, mysqld
Triage: Triaged: D2 (Serious)

[5 Sep 2008 20: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 10:08] Valeriy Kravchuk
Thank you for a problem report. What exact binaries you had used? Please, send URL used to
download.
[8 Sep 2008 15: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
om/http://mirror.services.wisc.edu/mysql/

So it is the version for ia64 compiled with Intel's compiler
[10 Sep 2008 9: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 12: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 11: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)