Note for packages linking against GSL [ACTION NEEDED]

Susi Lehtola jussilehtola at fedoraproject.org
Sat Feb 21 23:50:16 UTC 2015


Hi,


the GNU Scientific Library (GSL) contains some linear algebra routines 
that need a CBLAS library to work.

GSL contains a compatibility CBLAS library (gslcblas) that provides a 
version of these routines. In 2010, we started to link libgsl by a 
Fedora patch to libgslcblas, so linking to libgsl could be done just by 
-lgsl instead of -lgsl -lgslcblas.

However, the GSL CBLAS library is far from optimal, and you can 
typically get an order of magnitude more performance by using an 
optimized library. In 2011, the default link in libgsl was changed to be 
against ATLAS.

This default, Fedora specific link was removed in Fedora 22 in December, 
because
a) there are more CBLAS libraries available than just GSL CBLAS or
    ATLAS; e.g. OpenBLAS, Intel MKL or AMD ACML being good examples
b) upstream clearly intended the choice of the library to be made upon
    link time
c) a project linking multiple libraries must use the same BLAS/CBLAS
    library in all of its components

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


Furthermore, because the link has vanished from GSL, the following 
packages need to be recompiled:

$ sudo repoquery --disablerepo=* --enablerepo=rawhide --whatrequires 
libgsl\* -i|grep "Source      :"|sort|uniq|awk '{print $NF}'
3Depict-0.0.17-3.fc22.src.rpm
ape-2.2.0-2.fc22.src.rpm
asymptote-2.32-5.fc22.src.rpm
bogofilter-1.2.4-3.fc22.src.rpm
calligra-2.8.7-9.fc22.src.rpm
coot-0.8.1-1.fc22.src.rpm
dieharder-3.31.1-13.fc22.src.rpm
enblend-4.1.3-3.fc22.src.rpm
freefem++-3.31-2.3.fc23.src.rpm
freesteam-2.1-6.20140724svn753.fc22.src.rpm
gambas3-3.6.1-3.fc22.src.rpm
gdl-0.9.5-4.fc22.src.rpm
ghmm-0.7-12.svn2286.fc22.src.rpm
gipfel-0.4.0-5.fc23.src.rpm
gnuradio-3.7.5.1-5.fc22.src.rpm
gsl-1.16-16.fc22.src.rpm
IBSimu-1.0.5-9.b.fc22.src.rpm
inkscape-0.91-4.fc23.src.rpm
kst-2.0.8-1.fc22.src.rpm
LabPlot-1.6.0.3-8.fc22.src.rpm
libindi-0.9.9-1.fc22.src.rpm
luminance-hdr-2.3.1-11.fc22.src.rpm
mathgl-2.3-4.fc23.src.rpm
milia-1.0.0-7.fc22.src.rpm
mmseq-0.9.18-14.fc22.src.rpm
morse2txt-1.0.0-13.fc22.src.rpm
mp-1.3.0-3.fc22.src.rpm
nco-4.4.7-1.fc22.src.rpm
nip2-7.42.1-1.fc22.src.rpm
ocaml-gsl-1.18.1-1.fc23.src.rpm
octave-gsl-1.0.8-9.fc22.src.rpm
opengrm-ngram-1.2.1-3.fc22.src.rpm
openms-1.11.1-12.fc22.src.rpm
orsa-0.7.0-29.fc22.src.rpm
perl-PDL-2.7.0-8.fc22.src.rpm
pfstmo-1.5-7.fc22.src.rpm
player-3.0.2-40.fc22.src.rpm
pspp-0.8.4-1.fc22.src.rpm
pygsl-0.9.5-12.fc22.src.rpm
pypop-0.7.0-13.fc22.src.rpm
python-cvxopt-1.1.7-3.fc22.src.rpm
root-5.34.24-3.fc22.src.rpm
sagemath-6.4.1-4.fc22.src.rpm
scidavis-1.D8-8.fc22.src.rpm
step-14.12.1-1.fc22.src.rpm
vfrnav-20141211-1.fc22.src.rpm
votca-tools-1.2.4-3.fc22.src.rpm
xaos-3.5-12.fc22.src.rpm

I'm handling ape and octave-gsl. gsl itself obvisously doesn't need 
rebuilding.
-- 
Susi Lehtola
Fedora Project Contributor
jussilehtola at fedoraproject.org


More information about the devel mailing list