Mon 13 Nov 2017 07:53:35 PM UTC, comment #3:
I would be ok with closing this as won't fix for now.
The problem arises when the default FFLAGS is set to include "-fdefault-integer-8", so all Fortran is compiled with 64-bit INTEGERs. Or if one happens to have a Fortran compiler that works with 64-bit INTEGERs by default.
This problem does not occur when the default Fortran compilation environment builds 32-bit INTEGERs, but the F77_INTEGER_8_FLAG is set to "-fdefault-integer-8" (or other compiler-specific option) and only used to compile the Fortran files that have to do with BLAS and other external libraries.
All Fortran files under liboctave/external/ranlib must continue to be built with 32-bit INTEGERs always, while all other Fortran files under liboctave/external and liboctave/util must be built with the same INTEGER size that was used in the BLAS and other external numerical libraries.
|
Thu 07 Sep 2017 10:42:13 PM UTC, original submission:
When building with 64-bit Fortran indexing, there is a conflict between some of the function arguments in liboctave/external/ranlib and the calling prototypes declared in C.
In C:
But in Fortran the arguments are declared as plain INTEGER types.
I've worked around this with the following patch
I don't remember how portable the INTEGER*N syntax is, I don't know if we want to keep these source files pristine, or if there's a cleaner solution, like overriding the FFLAGS for just the libranlib source files.
|