Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Feb 2016 10:01:49 +0100
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        Anton Shterenlikht <mexas@bris.ac.uk>
Cc:        thierry@FreeBSD.org, fortran@freebsd.org, freebsd-ports@freebsd.org, theraven@FreeBSD.org
Subject:   Re: help make port for opencoarrays
Message-ID:  <20160222100149.05fbca90@kalimero.tijl.coosemans.org>
In-Reply-To: <201602212151.u1LLpRBB085896@mech-as222.men.bris.ac.uk>
References:  <20160221164250.GC2122@graf.pompo.net> <201602212151.u1LLpRBB085896@mech-as222.men.bris.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 21 Feb 2016 13:51:28 -0800 (PST) Anton Shterenlikht <mexas@bris.ac.uk> wrote:
> From thierry@pompo.net Sun Feb 21 17:36:47 2016
>> Le mer 17 f_v 16 _ 23:50:37 +0100, Anton Shterenlikht <mexas@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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160222100149.05fbca90>