-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NAG CMake support is incomplete/broken #5002
Comments
Yeah, seems like I missed both LAPACK PRs back then, mostly due to OpenBLAS not using the original CMakeFiles of Reference-LAPACK. :( Regarding the |
@martin-frbg Sounds good. I'll submit my PR so you can review. Heck for all I know the CI will go nuts and more changes would be needed. As for |
All,
I recently tried to build OpenBLAS with NAG Fortran using CMake and it was...not happy.
In my testing I've found incomplete NAG support in CMake itself. This was fixable but in doing so, I found there were Fortran Standards issues in:
So now here's the crux. I have a set of fixes for the CMake and the Fortran Standards issues and can issue a PR at anytime, but I'm not sure how to proceed. I'll detail my reasoning below.
CMake
These should be safe to take since, well, without them, NAG just has issues. They are partly bringing stuff from Makefile to CMake systems and partly from changes I found from @ACSimon33 from Reference-LAPACK/lapack#686 (also seen below)
lapack-netlib
The lapack-netlib fixes are all thanks to @ACSimon33 who fixed the same issues in a couple Reference-LAPACK PRs:
But, my question is: How often are Reference-LAPACK changes brought into OpenBLAS? If a sync with the Reference is coming, well, those changes in my PR might be moot as they are fixed "upstream". But if the sync might not happen for a bit, I can put them in my PR.
local ctest code
These changes are caused by #4918 which changed all the
STOP
calls toCALL ABORT
.ABORT
is not part of the Fortran Standard though many compilers support it via extensions. But, NAG is very strict and will not support extensions that have equivalents in the Fortran Standard. That equivalent isERROR STOP
.The main reason I'm hesitant here is I don't know how old of compilers you need to support.
ERROR STOP
is from Fortran 2008 and while every compiler I use is happy with it, I don't have to build things with GCC 4 or whatever. (The oldest compiler I can find is GCC 7 and it is happy withERROR STOP
.)So, if you'd prefer to keep
CALL ABORT
(and thus not touch "working" code), I believe it should be fairly simple to make a routine that is only compiled when NAG Fortran is used that can provide anABORT
routine (that underneath callsERROR STOP
).The text was updated successfully, but these errors were encountered: