Bug#725673: libopenblas-base: No direct linking of openblas possible, always redirects to libblas.so.3.
mkbugreport at inboxalias.com
mkbugreport at inboxalias.com
Mon Oct 7 14:04:33 UTC 2013
On 10/07/2013 11:36 AM, mkbugreport.67791230901 at inboxalias.com wrote:
> Original email sent from: sebastien at debian.org
>
> Control: severity -1 wishlist
> Control: tags -1 - upstream
>
> Le lundi 07 octobre 2013 à 11:06 +0200, Martin Koehler a écrit :
>> Package: libopenblas-base
>> Version: 0.2.8-2
>> Severity: important
>> Tags: upstream
>>
>> Dear Maintainer,
>>
>> I am using openblas on debian wheezy and linked my programs explicitly (for
>> benchmarking purpose and not to run update-alternatives as root everytime)
>> using
>> $ export LD_LIBRARY_PATH=/usr/lib/openblas-base/
>> $ gcc -o test.openblas -L/usr/lib/openblas-base test.c -lopenblas
>> and got an binary which depends on libopenblas.so.
>>
>> Now we update to Debian Testing/Jessie and the following happened:
>> $ export LD_LIBRARY_PATH=/usr/lib/openblas-base/
>> $ gcc -o test.openblas -L/usr/lib/openblas-base test.c -lopenblas
>> $ ldd test.openblas
>> linux-gate.so.1 (0xb76e5000)
>> libblas.so.3 => /usr/lib/libblas.so.3 (0xb65d5000)
>> libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb6426000)
>> libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb63e2000)
>> libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
>> (0xb63c7000)
>> /lib/ld-linux.so.2 (0xb76e6000)
>>
>> which does not any longer include Openblas directly and forces to use the
>> update-alternative system. I figured out that this behavior was introduced to
>> solve bug #687349 ( see the libblas3-soname.patch). I think this behavior is
>> not helpful for every day live. In contrast if a want to do the same using
>> ATLAS I can link againf libf77blas and libatlas and it works without this
>> issue.
>>
>> I think there must be another solution to solve bug #687349 without this "bad"
>> soname trick. In case of ATLAS there is a separate library which contains all
>> dependencies to ATLAS but it still allows to use ATLAS explicitly overriding
>> the update-alternatives system.
>
> First, I am convinced that the old behaviour (in wheezy) was buggy and
> that the new behaviour (in jessie/sid) is right. The fact that the
> soname was libopenblas.so.0 meant that programs linked with -lblas were
> *not* respecting the alternatives system. This is actually a wider
> problem than #687349. The fix was indeed to set the soname of the
> library to libblas.so.3. I don't intend to revert that change.
>
> Now, your problem is a bit different. You are manipulating the dynamic
> linker (with the -L flag and also by modifying the LD_LIBRARY_PATH
> variable) to directly link to openblas, bypassing the alternatives
> system. This was working in wheezy, but more by chance rather than
> because of a conscious choice by the maintainers.
>
> However, I understand your need for the possibility to bypass the
> alternatives system. The only solution that I see is to have a second
> binary of the library, identical to the other one, except that it would
> have the soname equal to libopenblas.so.0. Also, that binary would have
> to go to /usr/lib/<multiarch>/ (without the trailing "openblas"
> subdirectory), so that manipulating the linker with -L and
> LD_LIBRARY_PATH would not be needed.
>
> I am open to implement the above solution, even though I don't like too
> much the duplication of binary code that it entails.
>
> Sylvestre: do you have any better idea?
>
As far as I understand both ways, the one in wheezy and the one in
jessie are not completely statisfying. After your explainations I think
it would be a good idea to provide a second library with the other
DT_SONAME set. It seems that this is already the way how it is done for
ATLAS. (It provides a separate libblas.so.3 in atlas-base/atlas which is
used for update alternatives). Introducing the same structure for
OpenBLAS will give a great flexibility and solve both problems. The one
with the SONAMEs in the update-alternative system and on the other hand
it allows to link openblas directly.
_________________________________________________________________
Send and receive anonymous emails to your inbox with InboxAlias.
http://www.inboxalias.com
More information about the debian-science-maintainers
mailing list