Hi Jerry and Thomas,

As Thomas noted, the span field is added in the middle of the
descriptor because the caf token field makes the descriptor variable
length. This is reflected in the change in libgfortran.h.

It has crossed my mind in the last twenty four hours that I should add
some more fields, for example by expanding the dtype field, which
would then allow us to bump up the maximum number of dimensions for
example.

However, I seem, temporarily I hope, to be completely blown out of the
water. We had a rainstorm this afternoon, which caused a glitch in the
mains. Now, neither of my workstations seem to work any more. I have
tried everything but both remain totally unresponsive.

As to anything to do with lto, I am sorry but it is beyond my pay
grade. I got caught with lto in implementing the submodule patch. I
got lucky in that I found the fix more or less by trying things at
random. That said, I'll take a look at p68649 once my blood pressure
has dropped. It seems to me that the gurus have provided more than
enough clues.

Regards

Paul

On 11 July 2017 at 19:12, Thomas Koenig <tkoe...@netcologne.de> wrote:
> Am 11.07.2017 um 16:48 schrieb Jerry DeLisle:
>
>> Somewhere in the threads on this, there was mentioned ABI breakage/change.
>
>
> That was me.
>
>> Does it really do this?
>
>
> Yes. Look at this part:
>
> Index: libgfortran/libgfortran.h
> ===================================================================
> *** libgfortran/libgfortran.h    (revision 250082)
> --- libgfortran/libgfortran.h    (working copy)
> *************** struct {\
> *** 339,344 ****
> --- 339,345 ----
>     type *base_addr;\
>     size_t offset;\
>     index_type dtype;\
> +   index_type span;\
>     descriptor_dimension dim[r];\
>   }
>
>> If the significant change is in the descriptor and you
>> just added the span on the end of the structure, I am not convinced this
>> is an
>> issue. (I have not studied the patch at all, I would rather not bump
>> library
>> version)
>
> Unless I am mistaken, we only build the required dimensions for
> an array descriptor. Putting it on the end would not work
> unless we changed that behavior.
>
> But we are doing something wrong with the array descriptors anyway. See
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68649#c7 for a description.
> Other comments in the same PR have some suggestions, but nothing that
> works (or so I think).
>
> So, if we do break the ABI, we could try to fix the remaining
> issues with the array descriptors - not with this patch, but
> before 8.1 is released. Flexible array members come to mind.
>
> Regards
>
>         Thomas



-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein

Reply via email to