On 5 December 2020 at 12:09, Andreas Tille wrote: | this issue is something for our advent calendar. Anybody with cblas | knowledge?
I am the GNU GSL maintainer, and I at one point also worked a lot with the Atlas and other LAPACK/BLAS packages. I think Mo may be wrong here: I did the same approach of "oh we can just skip GSL's cblas". I think that is wrong. The way the C interface of the GNU GSL works appears to be require GSL + GSL CBLAS. That is what every package I know using GSL does -- even though that "looks weird and redundant". >From a quick look at http://ghmm.org it also looks like GLS is purely optional and for RNGs only -- just like my RcppZiggurat (upstream) package does which just relies on my RcppGSL (upstream) package which just export `gsl-config --libs`, and has for years. So I'd give the GSL defaults here a try. (That said Mo knows a lot more than I do about BLAS, but I've watched a lot of GSL build too over the decades I looked after that package.) Dirk | Kind regards | | Andreas. | | On Mon, Jan 27, 2020 at 10:55:25AM +0100, Andreas Tille wrote: | > Hi again, | > | > with my last mail I wanted to express: Hmmmm, to stupid to turn | > this hint into real code. Any more detailed hint / patch would be | > really welcome. | > | > Kind regards | > | > Andreas. | > | > On Mon, Jan 06, 2020 at 12:56:17PM +0100, Andreas Tille wrote: | > > Hi Mo, | > > | > > On Sun, Jan 05, 2020 at 08:19:07AM +0000, Mo Zhou wrote: | > > > 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. | > > | > > Seems you want to tell me to not include gsl_cblas.h header. However, | > > the code has no hit for | > > | > > grep -R gsl_cblas | > > | > > so the header is not included explicitly. So while your hint explains | > > the error I need to admit I have no idea yet, how to fix it. | > > | > > > 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. | > > | > > OK, once I'm at the linking step I might come back to this hint. | > > | > > Kind regards | > > | > > Andreas. | > > | > > > 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 | > > > > | > > > | > > | > > -- | > > http://fam-tille.de | > > | > > | > | > -- | > http://fam-tille.de | > | > _______________________________________________ | > Debian-med-packaging mailing list | > debian-med-packag...@alioth-lists.debian.net | > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-med-packaging | | -- | http://fam-tille.de | -- https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org