This is the mail archive of the
mailing list for the GCC project.
Re: [patch, libgfortran RFC] Installation script for OpenCoarrays to enable multi-image gfortran
On 01/28/2017 03:22 AM, FX wrote:
> Hi Damian,
>> It would be difficult or impossible for several OpenCoarrays
>> developers to contribute without OpenCoarrays remaining separate for
>> several reasons.
> No, I understand that. What I meant is: do want to provide seamless integration, so that libgfortran builds would automatically detect if an MPI environment is available, and if so build opencoarrays. The only “hard" dependency is whether we have an mpicc, it seems.
> However, the big issue is that of build-time requirements, which are not compatible with GCC: opencoarrays depends on cmake and bash, so it is in that respect very different from GMP and MPFR, which do not have stricter requirement than GCC itself.
> I’ve started today to look at the OpenCoarrays source, and I admit I am quite lost… it seems that the build machinery is much larger than the source itself. Technically, it seems doable to OpenCoarrays a “Makefile.gfortran” that would build OpenCoarrays, without the need for bash or cmake. Does this sound right to you?
>>> Ultimately, since multi images is part of the Fortran language, it should just
>>> happen transparently with the gcc regular build process.
>> We’re all in agreement here so hopefully Jerry’s submission will be
> Currently, I don’t think we can integrate it in this form, due to build requirements. Maybe the threshold is lower for integrating it into GCC’s contrib scripts directory?
The script could certainly be part of the contrib scripts which use bash. On
Fedora as an example there are gcc-gfortrn packages and mpich packages, ideally
the package maintainers of gcc/gfortran could easily include libcaf-mpi, caf,
and cafrun in the package. Or, of course a separate package could be developed.
Whoever does the package could simply use the script to generate the targets.
I have not encountered a system without cmake yet, I did test the script with my
cmake missing to confirm that it does actually build cmake if needed before it
proceeds, and then uses make. We have bash scripts already in libgfortran that
get invoked either during configuration or by build.
I don't see any real strong argument to not invoke the script with our make
install as a normal process, perhaps with a --enable-opencoarrays during
configuration. I would see that as a next phase after gcc7, in gcc8.
Also keep in mind we have target systems that do not use the common software
packaging methods and must rely on the gcc/gfortran build method, so this script
is a way to "integrate" with minimal effect on gfortran source. It is in its
own subdirectory, isolated from everything else and for gcc7 only manually
invoked. This gets it out there, gets exposure, and gets it further tested.
Since my original post, I have significantly cleaned up the script and have been
testing on several platforms. I will post the cleaned up script later today.