Note for packages linking against GSL [ACTION NEEDED]

Susi Lehtola jussilehtola at fedoraproject.org
Tue Feb 24 04:55:30 UTC 2015


On 02/22/2015 02:09 PM, Richard W.M. Jones wrote:
> On Sat, Feb 21, 2015 at 03:50:16PM -0800, Susi Lehtola wrote:
>> Because libgsl is no longer linked to a CBLAS library, packages
>> linking to GSL need to also link to a CBLAS library, ATLAS probably
>> being the best candidate since OpenBLAS is not available for all
>> Fedora architectures. The following trick should be enough to handle
>> the link
>>
>> %if 0%{?fedora} > 20 || 0%{?rhel} > 6
>> export LIBS="-lgsl -L%{_libdir}/atlas -lsatlas"
>> %else
>> export LIBS="-lgsl L%{_libdir}/atlas -lcblas -latlas"
>> %endif

Ugh, scrap that. This is only on Fedora 22 and rawhide, so only the 
former version applies. So, the link argument just has to be changed 
from "-lgsl" to "-lgsl -L%{_libdir}/atlas -lsatlas".

> I'm not really sure I understood all of that, but anyway.
>
> ocaml-gsl appears to use the output of `gsl-config --libs` which in
> effect means that it's using on x86-64: '-lgsl -lgslcblas -lm'

Yes, a lot of packages seem to be just happily linking to gslcblas, 
since it seems a lot of people are not aware of the huge performance 
benefits of using optimized libraries.

> It's possible to override this by exporting GSL_CBLAS_LIB to a value
> like the one above.
>
> However my questions is why doesn't `gsl-config --libs` appear to
> produce the optimal link command?

That is a good question.

> Also it looks like to use atlas, spec files would need an additional:
>
>    BuildRequires: atlas-devel

Yes, if you want to link to ATLAS, you need the additional buildrequire.

> Proposed patch for ocaml-gsl.spec attached.

Looks good.
-- 
Susi Lehtola
Fedora Project Contributor
jussilehtola at fedoraproject.org


More information about the devel mailing list