GSL provides a set of CBLAS API/ABI, delivered with shared object
"libgslcblas.so" and header "gsl_cblas.h".  That subset becomes
redundant once you include the headers of any standard/compatible
(C)BLAS library. That's what the compilation error means.

Make sure that the code only use one CBLAS implementation. In the
context of debian, I'd recommend you use the CBLAS ABI from libblas-dev,
and avoid linking against -lcblas. Link against -lblas instead.

On Sun, Jan 05, 2020 at 07:55:05AM +0100, Andreas Tille wrote:
> Control: tags -1 help
> 
> Hi,
> 
> I was asking upstream about this issue[1] and an issue about gsl usage
> is suspected.  Any hint how this can be fixed?
> 
> > Finally I have a question about building with lapack.  I get:
> > 
> > ...
> > libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -Wdate-time 
> > -D_FORTIFY_SOURCE=2 -DDTD_LOC=\"/usr/share/ghmm/ghmm.dtd.1.0\" -g -O2 
> > "-fdebug-prefix-map=/build/ghmm-0.9~rc3=." -fstack-protector-strong -      
> > Wformat -Werror=format-security -I/usr/include 
> > -I/usr/include/x86_64-linux-gnu -I/usr/include/libxml2 -c rng.c  -fPIC 
> > -DPIC -o .libs/rng.o
> > In file included from /usr/include/x86_64-linux-gnu/clapack.h:4,
> >                  from matrixop.c:48:
> > /usr/include/x86_64-linux-gnu/cblas.h:5:9: error: nested redefinition of 
> > 'enum CBLAS_ORDER'
> >     5 |    enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
> >       |         ^~~~~~~~~~~
> > /usr/include/x86_64-linux-gnu/cblas.h:5:9: error: redeclaration of 'enum 
> > CBLAS_ORDER'
> > In file included from /usr/include/gsl/gsl_blas_types.h:28,
> >                  from /usr/include/gsl/gsl_blas.h:29,
> >                  from /usr/include/gsl/gsl_linalg.h:30,
> >                  from matrixop.c:44:
> > /usr/include/gsl/gsl_cblas.h:46:6: note: originally defined here
> >    46 | enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
> >       |      ^~~~~~~~~~~
> > In file included from /usr/include/x86_64-linux-gnu/clapack.h:4,
> >                  from matrixop.c:48:
> > /usr/include/x86_64-linux-gnu/cblas.h:5:22: error: redeclaration of 
> > enumerator 'CblasRowMajor'
> >     5 |    enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
> >       |                      ^~~~~~~~~~~~~
> > In file included from /usr/include/gsl/gsl_blas_types.h:28,
> >                  from /usr/include/gsl/gsl_blas.h:29,
> >                  from /usr/include/gsl/gsl_linalg.h:30,
> >                  from matrixop.c:44:
> > /usr/include/gsl/gsl_cblas.h:46:19: note: previous definition of 
> > 'CblasRowMajor' was here
> >    46 | enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
> >       |                   ^~~~~~~~~~~~~
> > In file included from /usr/include/x86_64-linux-gnu/clapack.h:4,
> >                  from matrixop.c:48:
> > /usr/include/x86_64-linux-gnu/cblas.h:5:41: error: redeclaration of 
> > enumerator 'CblasColMajor'
> >     5 |    enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
> >       |                                         ^~~~~~~~~~~~~
> > 
> > 
> 
> Kind regards
> 
>      Andreas.
> 
> 
> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=936609#19
> 
> -- 
> http://fam-tille.de
> 

Reply via email to