Replies: 3 comments 12 replies
-
|
To follow up with some experimentation on my Fedora system, the packaged libraries liblapack and libopenblas seem to require lower case, trailing underscore. Intel's MKL distribution declares all of lower case; lower case with trailing underscore; and uppercase (but not uppercase with trailing underscore). So it seems we still need the basic {upper, lower} x {(no) trailing underscore}. Testing using a symbol name with an embedded underscore (dorhr_col) shows no sign of the extra trailing underscore. Can we just drop this complication? What about macOS? One source claims Macs have both leading and trailing underscore. |
Beta Was this translation helpful? Give feedback.
-
|
It's easy to fix Seems to me a good enough solution for something that really isn't a problem that we've heard about. |
Beta Was this translation helpful? Give feedback.
-
|
@svigerske, am I right to think that |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
So I got to looking at CHK_LAPACK and pretty quickly got down to the name mangling macros. They never did handle the 'extra underscore' bit correctly and I thought I'd poke at it. So I went looking for name mangling conventions. Historically, there are a lot, but recently the situation seems to have improved. This thread in a cmake mail list says, in essence, that any Fortran compiler that supports the Fortran 2003 standard should no longer have this issue if the compiler writer has any concerns about C compatibility. By the time you get towards the end of the thread, the claim is that pretty much all modern Fortran compilers support this. For folks with more experience at this than me, is this really the case?
Sadly, some further search turns up this thread in an autoconf list that talks about Fortran modules. Do we need to cope with these?
If memory serves, the native autoconf macros actually require a Fortran compiler to compile a test program which is analysed to get the mangling convention. We were trying to avoid that by just trying a set of the most common conventions. So we may have to limit our ambition.
Beta Was this translation helpful? Give feedback.
All reactions