From ripley at stats.ox.ac.uk  Tue Aug  9 11:25:58 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 9 Aug 2005 10:25:58 +0100 (BST)
Subject: [Rd] gfortran and BLAS on AMD64 Linux
Message-ID: <Pine.LNX.4.61.0508091009580.23276@gannet.stats>

Linux users are used to all compilers using the same linkage conventions 
(those of pcc) whereas users of other platforms are used to the idea that 
code from different compilers cannot in general be mixed.

This is no longer true for gfortran on AMD64.  Given a double complex 
function like

       double complex function zdotc(n,zx,incx,zy,incy)

gfortran returns the result in a 128-bit XMM SSE register, whereas g77 
(and gcc using Rcomplex) would return the result in memory.

The result is that a BLAS compiled with g77 or gcc is not compatible with 
R compiled with gfortran and attempts to use the combination results in 
memory corruption.

We have already seen 3 instances of this

- the libblas that ships with FC3 is (AFAIK) compiled with g77
- ATLAS built with g77.
- Dr Goto's tuned BLAS.

It may be possible to devise a configure test for 2.2.0, but meanwhile be 
aware of the problem.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] gfortran and BLAS on AMD64 Linux
Prof Brian Ripley