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: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase
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' of '24'. 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 https://github.com/xianyi/OpenBLAS/pull/459
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.
Sorry to resurrect this old thread, but I found this poking through the changelogs while trying to understand... why are there openblas-*64_ and openblas-*64 packages, with and without symbol suffixes respectively, but there's only blas64/lapack64 which do have their symbols suffixed?
(In reply to Iñaki Ucar from comment #13) > Sorry to resurrect this old thread, but I found this poking through the > changelogs while trying to understand... why are there openblas-*64_ and > openblas-*64 packages, with and without symbol suffixes respectively, but > there's only blas64/lapack64 which do have their symbols suffixed? That doesn't sound right. The idea would be to have - blas/lapack: 4-byte integers, no suffix - blas64/lapack64: 8-byte integers, no suffix - blas64_/lapack64_: 8-byte integers, 64_ suffix. The reason for the suffixed versions is to allow linking both 4-byte and 8-byte routines in the same program, as required by e.g. Julia.
That's what I thought. Let me reopen this then to keep track of it.
Here's a PR to fix this: https://src.fedoraproject.org/rpms/lapack/pull-request/1. More eyes are welcome.
Merged and built, so fixed in rawhide. Thanks, Tom. Should we merge this in Fedora 32? On the one hand, maybe it's a big change for the current release, but on the other hand, if we don't, we risk that somebody may depend on a wrong configuration.
I'm reluctant to change things in F32, I doubt there are a lot of people affected since no one noticed this for 3 years.
Ok, closing this then.