Bug #39279 mysqld Linux-ia64 binary depends on two versions of libunwind
Submitted: 5 Sep 2008 20:19 Modified: 16 Sep 14:43
Reporter: Peter Schweitzer
Status: Won't fix
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...

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)
[16 Sep 14: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.