Package: gsl
Version: 2.5+dfsg-4
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu cosmic ubuntu-patch

Dear Dirk,

In Ubuntu, I noticed that pscan-tfbs was failing to build due to unresolved
symbols in libgsl.so.  I don't know if the specific build failure is
reproducible in Debian, but I can confirm that libgsl.so.23 is also
underlinked in Debian resulting in unresolved symbols, which is not supposed
to be the case for shared libraries:

$ ldd -d -r /usr/lib/x86_64-linux-gnu/libgsl.so.23
        linux-vdso.so.1 (0x00007ffd39dfc000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fde64546000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fde64389000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fde64b6c000)
undefined symbol: cblas_ctrmv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zswap   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zsymm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cgeru   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sgemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ctrsv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sgemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_srotg   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zgemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cdotu_sub       (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dznrm2  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ddot    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_csymm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cher2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zdotu_sub       (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sdot    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sdsdot  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cgerc   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_scnrm2  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ctrmm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sscal   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_strmm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zcopy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsyrk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cherk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zherk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zher    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ztrmv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_drotmg  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dswap   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_scopy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_scasum  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zscal   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_drotg   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zdotc_sub       (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cscal   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_caxpy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zsyr2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssyr2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_csyr2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ztrsm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ctrsm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssymm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cdotc_sub       (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zher2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_saxpy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_idamax  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_snrm2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsdot   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cher    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dger    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cher2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dzasum  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsyr2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssyrk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_strmv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dgemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cgemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dasum   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsymv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_srotm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sswap   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dtrmv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_isamax  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zhemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zaxpy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dcopy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sasum   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsyr    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_strsm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_drot    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ztrsv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_izamax  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssymv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_chemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zgeru   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dtrsv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_sger    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_srot    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsymm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ztrmm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zdscal  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zher2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssyr    (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dtrmm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zgerc   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_csscal  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dsyr2k  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_chemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dnrm2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_drotm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_icamax  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zgemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zhemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cgemv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ssyr2   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_strsv   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dscal   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dgemm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_srotmg  (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_dtrsm   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_ccopy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_zsyrk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_cswap   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_daxpy   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
undefined symbol: cblas_csyrk   (/usr/lib/x86_64-linux-gnu/libgsl.so.23)
$

Please consider applying the attached patch to the gsl package in Debian.  I
have uploaded it to Ubuntu to fix the build failure of the reverse
dependency.

Corresponding changelog entries for these changes:

  * debian/patches/gsl-cblas-linkage.patch: add missing linkage on
    libgslcblas to libgsl.so.
  * specify AUTOMAKE and ACLOCAL to dh_autoreconf, to work around upstream
    hard-coding of automake-1.13.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org
diff -Nru gsl-2.5+dfsg/debian/patches/gsl-cblas-linkage.patch 
gsl-2.5+dfsg/debian/patches/gsl-cblas-linkage.patch
--- gsl-2.5+dfsg/debian/patches/gsl-cblas-linkage.patch 1969-12-31 
16:00:00.000000000 -0800
+++ gsl-2.5+dfsg/debian/patches/gsl-cblas-linkage.patch 2018-08-23 
14:33:44.000000000 -0700
@@ -0,0 +1,19 @@
+Description: add missing linkage on libgslcblas to libgsl.so
+ libgsl has missing symbols because it is not linked against libgslcblas.
+ Fix it so the library is properly stand-alone.
+Author: Steve Langasek <steve.langa...@ubuntu.com>
+Last-Modified: 2018-08-23
+
+Index: gsl-2.5+dfsg/Makefile.am
+===================================================================
+--- gsl-2.5+dfsg.orig/Makefile.am
++++ gsl-2.5+dfsg/Makefile.am
+@@ -19,7 +19,7 @@
+ 
+ lib_LTLIBRARIES = libgsl.la
+ libgsl_la_SOURCES = version.c
+-libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS)
++libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS) cblas/libgslcblas.la
+ libgsl_la_LDFLAGS = $(GSL_LDFLAGS) -version-info $(GSL_LT_VERSION)
+ noinst_HEADERS = templates_on.h templates_off.h build.h
+ 
diff -Nru gsl-2.5+dfsg/debian/patches/series gsl-2.5+dfsg/debian/patches/series
--- gsl-2.5+dfsg/debian/patches/series  2018-06-25 04:24:40.000000000 -0700
+++ gsl-2.5+dfsg/debian/patches/series  2018-08-23 13:25:31.000000000 -0700
@@ -1,3 +1,4 @@
 dont-disable-deprecated
 ## dont-disable-deprecated.full
 ## reset-so-number
+gsl-cblas-linkage.patch
diff -Nru gsl-2.5+dfsg/debian/rules gsl-2.5+dfsg/debian/rules
--- gsl-2.5+dfsg/debian/rules   2018-06-25 04:27:41.000000000 -0700
+++ gsl-2.5+dfsg/debian/rules   2018-08-23 14:33:27.000000000 -0700
@@ -104,7 +104,7 @@
        #[ -d doc ] || mkdir doc
        #cp -vax debian/Makefile.in.doc doc/Makefile.in
 
-       dh_autoreconf
+       AUTOMAKE=automake ACLOCAL=aclocal dh_autoreconf
        ./configure     CFLAGS="$(CFLAGS)"              \
                        LDFLAGS="$(LDFLAGS)"            \
                        --prefix=/usr                   \
@@ -131,7 +131,7 @@
 
        #[ -d doc ] || mkdir doc
        #cp -vax debian/Makefile.in.doc doc/Makefile.in
-       dh_autoreconf
+       AUTOMAKE=automake ACLOCAL=aclocal dh_autoreconf
        ./configure     CFLAGS="$(CFLAGS)"              \
                        --prefix=/usr                   \
                        --disable-shared                \

Reply via email to