Summary: | biology/treekin: does not build with lapacke 3.9.0 | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Thierry Thomas <thierry> | ||||
Component: | Individual Port(s) | Assignee: | Yuri Victorovich <yuri> | ||||
Status: | Closed Overcome By Events | ||||||
Severity: | Affects Only Me | Flags: | bugzilla:
maintainer-feedback?
(yuri) |
||||
Priority: | --- | ||||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 247542 | ||||||
Attachments: |
|
Description
Thierry Thomas
2020-07-12 20:55:13 UTC
Hi Thierry, /usr/local/include/lapacke.h installed by lapacke-3.5.0_8 contains 'extern "C"' but '#include <complex.h>' isn't within its scope. This appears to be a bug in lapack-3.9.0 that it includes C++ headers inside of the extern "C" block (through putting #include <complex.h> into the extern "C" block). IMO, you should generate a minimal testcase showcasing this problem and report it to the lapack's upstream. Best, Yuri This problem has already been reported upstream: see https://github.com/Reference-LAPACK/lapack/issues/320 and also in OpenBLAS, which installs the same lapacke.h: see https://github.com/xianyi/OpenBLAS/pull/1999/commits/1391fc46d2c38bb74ed69b7a527ab8865161c915 I applied this proposed patch in math/lapack (files/patch-LAPACKE_include_lapack.h), but this is not sufficient, and I'm afraid that upstream does not about C++ (this is the reason for math/lapack++). Thus a small patch must be added to Treekin: --- src/calcpp.h.orig 2019-06-13 14:11:19 UTC +++ src/calcpp.h @@ -49,6 +49,9 @@ # include <lapacke.h> #else # ifdef HAVE_LAPACKE_LAPACKE_H +# include <complex> +# define lapack_complex_float std::complex<float> +# define lapack_complex_double std::complex<double> # include <lapacke/lapacke.h> # else # ifdef HAVE_OPENBLAS_LAPACKE_H It has been included in the global patch proposed in PR 247542, and thanks to # ifdef HAVE_LAPACKE_LAPACKE_H it does not break the current port. |