help make port for opencoarrays
Tijl Coosemans
tijl at FreeBSD.org
Mon Feb 22 09:06:10 UTC 2016
On Sun, 21 Feb 2016 13:51:28 -0800 (PST) Anton Shterenlikht <mexas at bris.ac.uk> wrote:
> From thierry at pompo.net Sun Feb 21 17:36:47 2016
>> Le mer 17 f_v 16 _ 23:50:37 +0100, Anton Shterenlikht <mexas at bris.ac.uk>
>> _crivait_:
>>> Please help/advise
>>>
>>> https://github.com/sourceryinstitute/opencoarrays
>>>
>>> It requires mpich built with at least gcc5.3,
>>> more specifically mpif90 built with gcc5.3 or gcc6.
>>> net/mpich has FORTRAN_USES=fortran, which I understand
>>> triggers lang/gcc.
>>>
>>> Is it a good idea (or at all possible) to add
>>> an option to net/mpich to choose a particular
>>> gcc version?
>>>
>>> Any other advice?
>>
>> ATM Fortran in FreeBSD is in a very bad shape, and, as you know, we
>> encounter difficulties with several ports (french/aster, cad/salome,
>> etc.) caused by a mix between clang and Gcc, and thus libstdc++ /
>> libc++.
I think Fortran is fine. It's C++ that's in a bad shape. I think the
lang/gcc* ports need to be modified so libstdc++ sits on top of libcxxrt
instead of libsupc++. Maybe David can say more about that (CCed).
>> If building mpich with a newer Gcc could solve the problem with
>> opencoarrays, I'm afraid it would cause uncompatibilities in other
>> dependencies - but unfortunately I cannot suggest a better alternative!
>
> Well, I'm only asking for an option in the port.
> The default will not change.
>
> I'll have a go locally and see what happens.
> But I'm not sure what option to use to build
> with e.g. GCC6. Is it this line?
>
> FORTRAN_USES= fortran
>
> Or are you saying that building mpich with
> non-default gcc is problematic because all
> its dependencies should be built with the
> same gcc version?
Users can change ports tree default versions by setting DEFAULT_VERSIONS
in /etc/make.conf:
DEFAULT_VERSIONS= gcc=5
DEFAULT_VERSIONS is handled in /usr/ports/Mk/bsd.default-versions.mk and
/usr/ports/Mk/Uses/fortran.mk uses it to select the Fortran compiler.
So with the line above the Fortran part of net/mpich will be built with
lang/gcc5.
In your opencoarray port I think you can do something like this:
...
USES= fortran
...
.include <bsd.port.pre.mk>
.if ${GCC_DEFAULT:R} < 5
IGNORE= This port requires that the default GCC version is 5 or higher
.endif
...
.include <bsd.port.post.mk>
More information about the freebsd-fortran
mailing list