Bug #54424 Server RPMs for SuSE/RedHat on IA64 that include plugins depend on libirc.so
Submitted: 11 Jun 2010 9:49 Modified: 29 Jun 2011 16:33
Reporter: Axel Schwenke Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: Packaging Severity:S2 (Serious)
Version:5.1.43sp1 OS:Linux (RPM SuSE/RedHat IA64)
Assigned to: Joerg Bruehe CPU Architecture:Any

[11 Jun 2010 9:49] Axel Schwenke
Description:
Our server RPMs for SLES10/iA64 claim a dependency on libirc.so. This is a utility library of the Intel icc compiler. However the intel-icc9-libs package that is available from i.e. here: http://dev.mysql.com/downloads/os-linux.html contains only a static version of this library. Also in bug #18776 we claim that our builds link the static versions of icc specific libs (to avoid a dependency on the icc-libs packages).

I therefore assume that this is a bogus dependency in the RPM package.

How to repeat:
Try to install MySQL-server-advanced-gpl-5.1.43sp1-1.sles10.ia64.rpm

Suggested fix:
If this is a bogus dependency: fix the rpm. If there are components in the rpm that link libirc.so, rebuild them to link in libirc.a.
[14 Jun 2010 13:16] Joerg Bruehe
This is an issue which comes up repeatedly.
I checked several versions for this dependency in December, 2009, and my result was:

  For reference, these are the ldd output lines for these libs
  as found in the 5.5.0 RPM for RedHat 4 / IA64:
> >         libimf.so.6 => /opt/intel/cc/10.0.026/lib/libimf.so.6 (0x20000008001fc000)
> >         libirc.so => /opt/intel/cc/10.0.026/lib/libirc.so (0x2000000800678000)
> >         libipr.so.6 => /opt/intel/cc/10.0.026/lib/libipr.so.6 (0x20000008006ac000)

  Summary: Any RPM created by ICC (which means: "specific" RPM for IA64)
  which contains any plugin is at risk to require Intel libraries,
  unless we can force libtool to link these libraries statically into
  the plugin.

Regarding the reference to bug#18776:
Sure we try to link these libs statically, but that worked only
before we added plugins which are by their very nature dynamic.
[14 Jun 2010 14:28] Joerg Bruehe
The dependencies aren't bogus, they are real.

This is "ls -ld", "file", and a part of "ldd" output for the plugin .so files:

-rwxr-xr-x 1 mysqldev users 3627444 2010-03-26 18:51 ./usr/lib/mysql/plugin/ha_innodb_plugin.so.0.0.0
./usr/lib/mysql/plugin/ha_innodb_plugin.so.0.0.0: ELF 64-bit LSB shared object, IA-64 (Intel 64 bit architecture), version 1 (SYSV), not stripped
        ...
        libirc.so => /opt/intel/cc/10.0.026/lib/libirc.so (0x2000000800934000)
        ...

-rwxr-xr-x 1 mysqldev users 78186 2010-03-26 18:44 ./usr/lib/mysql/plugin/ha_example.so.0.0.0
./usr/lib/mysql/plugin/ha_example.so.0.0.0: ELF 64-bit LSB shared object, IA-64 (Intel 64 bit architecture), version 1 (SYSV), not stripped
        ...
        libirc.so => /opt/intel/cc/10.0.026/lib/libirc.so (0x2000000800630000)
        ...

Until now, we don't know a way to link these libs statically into a ".so" which is by its very nature dynamic.

As long as we do build these RPMs using the Intel compiler, it may be necessary for the user to install these libraries from Intel to resolve the dependencies.
[16 Jun 2010 18:54] Joerg Bruehe
I checked the Intel web site:
All they recommend is to use "-i-static".

In the current compiler man page, this options is called "deprecated", rather "-static-intel" should be used. We do that in our builds.

It looks like the only solution is to provide these libs as ".so" files, I'm looking into that.
[21 Jun 2010 15:07] Joerg Bruehe
This has now been checked with Intel:

1) There is no clean way to avoid this dependency.
   All possible hacks are so risky and error-prone that I dare not take any such route, especially as a test we would do on our hosts does not ensure it will be working at the user site.

2) From the Intel license, MySQL is allowed
   to re-distribute the Intel runtime libraries unchanged.
I will put them into the proper place and then ask the Web team to make them visible.

3) Solution for the user is to then download and install
   the Intel runtime libaries.
This should best be done before installing a MySQL server RPM for a SuSE or RedHat Linux system using an IA64 CPU.
In this way, the "missing dependency" condition will be avoided.
[21 Jun 2010 16:31] Joerg Bruehe
Fixed the synopsis to specify better what the issue is.

A request to the Web team is sent.
[29 Jun 2011 16:33] Joerg Bruehe
It seems the request to publish the libraries has niot been acted upon,
and I have to admit I didn't regularly check for this.

Nonetheless, the issue has become moot, as there are no (binary) RPMs published for IA64 CPUs any more.

So I close this as "unsupported".