svn commit: r452962 - head/math/libRmath

Johannes M Dieterich jmd at freebsd.org
Sun Oct 29 01:22:33 UTC 2017


On Sat, 28 Oct 2017 20:56:38 -0300
Joseph Mingrone <jrm at FreeBSD.org> wrote:

> Tijl Coosemans <tijl at FreeBSD.org> writes:
> > It's not a gfortran problem.  It's a kernel or libthr problem.  You
> > can work around it by avoiding the combination of recycled thread
> > stacks and exception handling done by ports libgcc_s.  When you
> > switched from curl to wget you avoided threads and that fixed the
> > problem.  Switching to flang avoids ports libgcc_s and that also
> > fixes the problem, but it's not necessary to go this way.  You
> > could probably go back to curl if you build it with the CARES
> > option instead of THREADED_RESOLVER.  
> 
> I missed this paragraph last time around.
> 
> It's not really a switch to wget.  We just pull it in as RUN_DEPENDS
> when gfortran is on.  R still defaults to downloading packages with
> curl.  Users can create/edit configuration to switch to wget, which is
> not a big deal, but not ideal.  I've copied sunpoet@, the maintainer
> of ftp/curl.  sunpoet@, what do you think about switching ftp/curl's
> default to c-ares instead of THREADED_RESOLVER to work around this
> problem (until there are fixes for the threading problem that is
> triggered with ports libgcc_s)?
> 
> Here is a quick-and-dirty poudriere testport run.  I say
> quick-and_dirty because 1) I just included ports, which have a
> Makefile with USES.*fortran in them, so there are probably some ports
> missing and 2) I haven't looked in detail at the build logs to see
> what is going on. math/lapack resulted in, by far, the most severe
> fallout.
> 
> http://pkg.awarnach.mathstat.dal.ca/build.html?mastername=11amd64-default&build=2017-10-28_12h15m47s
Thanks for running this!

I spent a few minutes on the lapack failure. Turns out this is one of
these homebrew situations. It uses etime, a gfortran extension.
make.inc should allow however to select NONE or CPU_TIME (which is the
F95 standard function).

For some of the others:

openblas tries to link against libgfortran.

mpich/mpich2 looks like an invalid linking command for clang.

arpack uses a gfortran-only command line argument to release the fixed
format line length requirement.

fr-med needs an -fPIC.

netcdf-fortran is another case of invalid linking command.

mumps tries to link libgfortran.

openmpi is another case of invalid linking command

gotoblas is still using gcc6 somehow

NASTRAN looks like a legitimate flang issue that should be reported.

libxc: see above, invalid linking command.

All things considered, this looks not terrible, I think (I am
positively surprised actually).

Johannes


More information about the svn-ports-all mailing list