Red Hat Bugzilla – Bug 1295965
Add 64-bit integer (ILP64) interface library with 64_ symbol suffix
Last modified: 2017-08-15 11:27:23 EDT
Description of problem:
We're starting to develop a convention of BLAS/LAPACK libraries with an ILP64 interface having symbols with a 64_ suffix in a library with a 64_ suffix (see bug #1088256). I think we need to implement this for the netlib blas/lapack to avoid issues with openblas and some symbols having the 64_ suffix (from openblas) and some without (from lapack).
Or another possibility would be to just use the bundled version of lapack in openblas (and atlas). That way we would also avoid issues like bug #1287405: there's no guarantee that the system version of lapack and openblas will be in sync otherwise...
That's probably the thing to do.
I wonder whether having an ILP64 LAPACK with the 64_ suffix would make it easier to build ILP64 versions of ARPACK and SuiteSparse. Maybe we can link them against OpenBLAS, but better be sure of that.
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.
More information and reason for this action is here:
This message is a reminder that Fedora 24 is nearing its end of life.
Approximately 2 (two) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 24. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora 'version'
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.
Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 24 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
Willing to take patches here, but I'm not entirely sure what needs to happen, aside from the library naming. Are there custom compiler flags that need to be used, are there specific parts of lapack that need to be enabled/disabled?
I think the only changes that are necessary are
- compiling with 64-bit integers i.e. -fdefault-integer-8
- adding a 64_ suffix to all symbols and
- adding a 64_ suffix to the library name.
Two of those are easy. One will require a giant patch that will almost certainly have to be rebased every time lapack changes. Is there a clever way to suffix the symbols without that pain?
OpenBLAS has a make option for the suffixes, and I'm guessing that also holds for ATLAS.
Here's how they did it in OpenBLAS
Okay. I've applied the changes in rawhide, specifically in lapack-3.7.1-4.fc27. The lapack64 and blas64 subpackages contain 64_liblibpack and 64_libblas libraries, with all the symbols suffixed with 64_, and -fdefault-integer-8.
(In reply to Tom "spot" Callaway from comment #10)
> Okay. I've applied the changes in rawhide, specifically in
> lapack-3.7.1-4.fc27. The lapack64 and blas64 subpackages contain
> 64_liblibpack and 64_libblas libraries, with all the symbols suffixed with
> 64_, and -fdefault-integer-8.
I mean, the libraries should be called liblapack64_ and libblas64_, not 64_liblapack and 64_libblas...?
Okay. They're named that way in -5.