Hi Folks

> On 3 Oct 2025, at 01:30, Jerry D <[email protected]> wrote:
> 
> On 10/1/25 6:52 AM, Andre Vehreschild wrote:
>> Hi all,
>> attached series of patches adds more stable support for running shared
>> memory multi process Fortran programs on MacOS. The only new part is the last
>> (the pr88076_v4_9.patch). Changes in the former files are only results of
>> rebasing.
>> On MacOS shared memory coarrays face the issue of having to have the shared
>> memory segment at the same (virtual) base address in all processes/images, 
>> but
>> the OS not always complying to our wish. The supervisor of the coarray 
>> program
>> therefore now is able to restart an image, when the OS is not complying to 
>> put
>> the shared memory segment where we need to have it. The shared memory segment
>> needs to be at the same address in all images, because else shared mutexes 
>> tend
>> malfunction. I haven't found any documentation from Apple or the
>> MachOS kernel why this is that way, but it unfortunately is. The number of
>> restarts of images is limited. I.e. this is not going on forever, but one can
>> either set a (documented) environment variable, or got with the default of
>> 4000 at the moment. The count on restarts is total on all images and not per
>> image.
>> It took me quite some time to figure what was going on and I had to fix
>> libsanitizer on macOS for newer OS releases, which being unfamiliar took me
>> even longer. There might be other issues fixed unintentionally by these
>> patches. So feel free to test.
>> Regtested ok on x86_64-pc-linux-gnu / F41, x86_64-w64-win32 / MSYS2 / UCRT64 
>> and
>> x86_64-apple-darwin24.something. (Testing on MSYS2/UCRT64 gives tons of fails
>> of 'excess output' tests, which stem from gfortran emitting some escape code,
>> which doesn't even print, and expect picking it up.)
>> Regards,
>> Andre
> The devel/gfortran-test branch has been updated to align with the latest 
> trunk and the version 4 of Andre's patch series applied.

thanks,

> This should allow anyone to checkout this gcc branch and do testing.

I have checked out the branch and built it (and run the Fortran testsuite).

What I need now (in order to figure out the macOS side) is a high-level 
description of how the pieces are supposed to fit together - and the basic init 
=> process => terminate actions.

Perhaps there’s a write-up somewhere? or an email thread? 
I looked around the code but did not see an overview anywhere  (but could have 
just not looked in the right file yet).

thanks
Iain



Reply via email to