Skip to content
Prev 3076 / 3656 Next

R 3.6.0 for Debian buster

Johannes, 

It seems that one can avoid the gfortran problems with Fortran
BLAS/LAPACK implementations by compiling with
-fno-optimize-sibling-calls.  

Tomas recently wrote to R Core that

*********************************************************************
- gfortran is leaning to (but no official announcement decision has 
already been reached) making -fno-optimize-sibling-calls the default as 
not to break BLAS/LAPACK, at least temporarily to give BLAS/LAPACK 
authors some time to fix

- gfortran developers started discussing the issue with reference lapack 
maintainers on github, suggesting that the reference should use wrappers 
using portable C bindings using BIND(C) (which I've been suggesting to 
the gfortran developers as I saw it in "Numerical Computing with Modern 
Fortran" but of course they would have known too)
*********************************************************************

See 

https://github.com/Reference-LAPACK/lapack/issues/339
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329

for more information.

Yesterday I changed R-devel and R-patched to use
-fno-optimize-sibling-calls for gfortran >= 7: it would be great if you
could pull this change into the R 3.6.0 backports for buster.

In principle I think all Fortran BLAS/LAPACK implementations (refblas
and ATLAS) packaged for buster should be recompiled with
-fno-optimize-sibling-calls (they may be fine in case they were compiled
with older version of gfortran-8, but then the next rebuild will cause
trouble): Dirk, any chance you could get the package maintainers to make
these changes?

Best
-k