-
Notifications
You must be signed in to change notification settings - Fork 448
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
dlahrd.f: consistent line reflow for DTRMV calls #1093
Conversation
cc @alalazo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @wdconinc !
After applying this patch on FreeBSD, with clang-19 and gfortran-13.3, the build fails with this error:
|
does not appear to be related to this PR, do you get any earlier warnings or errors regarding these two symbols ? |
I don't see any related warning. |
I got a clean compile of the current master branch on FreeBSD15 with clang19/gfortran14 , will see if I can retry with gfortran13 later |
Exactly the same error has been reported on Arch Linux for nomacs when linking with lapack-3.12.1: see https://aur.archlinux.org/packages/nomacs#comment-1006320 |
must be a similar issue with the fortran default line length somewhere, as "ldawork" does not make sense (i.e. a comma behind lda went unseen), but I wonder why different environments would come up with a different default for gfortran's line lengths option... Or does the BSD package build script impose something like std=legacy that would imply the traditional column 72 limit of punched cards ? |
I'm not aware of such a limitation, we compile a lot of various Fortran code without errors. |
there should be no LDAWORK symbol as far as I (and the github search function) am aware. I'm currently doing test builds in the GCC Compile Farm, but as it is a complimentary shared resource I cannot be too greedy with cpu time. |
My guess is that this is a cropped version of A candidate is lapack/SRC/DEPRECATED/sgeqpf.f Lines 221 to 222 in ba83427
with current line length at 71. |
(Hmm. Actually trying to build with |
there are more candidates without spaces behind the comma, so I need some more time to check, but no obvious offender so far |
|
I tried this patch:
and it produces the same error. |
my best candidate for "LDA...WORK (in TESTING/LIN) has the comma after LDA in column 72 so should be safe too - though a script-added _64 suffix on the function name would probably change that (as it would in angsch's example). |
I don't use |
Done (from master at ba83427): exactly the same error. |
are you building directly with cmake, or via some package build script that sets some options ? |
I'm using the FreeBSD ports framework: it doesn't anything special, except passing the required variables.
|
Got it - the spurious LDAWORK appears in the 64-bit version of cgelsx.f.o (SRC/DEPRECATED/cgelsx.f has a call the CUNM2R that has the comma after the LDA in column 70 - which looks totally safe until CUNM2R gets expanded to CUNM2R_64 |
One TAA is the TAU in a call to DORM2R from SRC/DEPRECATED/dgeqpf.f, where the trailing comma is initially in column 71 |
Created a PR to fix the three identified sources. As far as I can tell by running |
Please try #1099 from @martin-frbg |
Great! I don't know about Arch Linux, but I can confirm that with commit 447fd4e lapack builds fine on FreeBSD -CURRENT, with clang-19 and gfortran-13. And all the tests pass:
|
Release notes at https://github.com/Reference-LAPACK/lapack/releases/tag/v3.12.1 Remark: many patches are needed, see Reference-LAPACK/lapack#1093
Description
Under gcc-12.3.0 (locally confirmed with gcc-14.2.0 as well), we are noticing spurious type mismatch errors due to different line reflow in dlahrd.f, see e.g. https://gitlab.spack.io/spack/spack/-/jobs/14595649#L1131. Notice that the types of different arguments are compared in that error message.
This PR makes the line reflow for two DTRMV calls identical, which resolves the spurious report. This does not appear to be necessary for the other
?lahrd.f
files (they reflow the relevant lines differently).Checklist