From ripley at stats.ox.ac.uk  Tue May 16 11:39:33 2006
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 16 May 2006 10:39:33 +0100 (BST)
Subject: [Rd] (PR#8861) Memory allocation fails in R 2.2.1 and R 2.3.0
 on SGI Irix, while plenty of memory available
In-Reply-To: <44699F20.9070706@cimr.cam.ac.uk>
References: <20060515130956.5B71619B2D@slim.kubism.ku.dk>
	<Pine.LNX.4.64.0605150740250.29777@homer23.u.washington.edu>
	<Pine.LNX.4.64.0605151602300.23923@gannet.stats.ox.ac.uk>
	<20060515155403.GJ6479@bioinf-235-161.pc.fgg.eur.nl>
	<44699F20.9070706@cimr.cam.ac.uk>
Message-ID: <Pine.LNX.4.64.0605161031380.8297@gannet.stats.ox.ac.uk>

On Tue, 16 May 2006, Hin-Tak Leung wrote:

> On a solaris 9 box here, gcc 3.4.2 defaults to build 32-bit binaries for some 
> unknown reason,

Actually, for a well-documented reason.  (You need both a suitable CPU and 
the appropriate parts of the OS installed for 64-bit binaries to be 
usable, and you need to be working on large structures for them to be 
desirable.)

BTW, g77 3.4.2 is broken, so please don't use it to build R.

> but can be pursuaded to build 64-bit executables by passing the -m64 
> switch explicitly. (this is first hand experience, discovered while 
> looking into a similiar anomaly with another piece of software). I think 
> gcc on early version of Mac OS X (10.2?) has

Really?  It is documented explicitly on the gcc man page and in the 
R-admin manual.

However, on Solaris there is more to this than using -m64, and that too is 
documented in the R-admin manual: you need to ensure that you get 64-bit 
libraries.

> a similiar behavior also of defaulting to 32-bit unless told otherwise,
> but can be pursuaded. Maybe gcc on IRIS can be similiarly pursuaded
> too?
>
> gcc -v
> Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/specs
> Configured with: ../configure --with-as=/usr/ccs/bin/as 
> --with-ld=/usr/ccs/bin/ld --disable-nls
>
> Mirjam van Vroonhoven wrote:
>> Prof Brian Ripley wrote on Mon, May 15, 2006 at 04:09:38PM +0100:
>>>> You can tell if you have a 64bit build of R by looking at
>>>> .Machine$sizeof.pointer in R, which should be 8.
>>> And if this is a 32-bit build, it is working as expected given the limited 
>>> address space.
>> 
>> It is a 32 bit build. My R 2.0.0 is a 64bit build.
>> 
>>>> If not, then you need to set whatever C and Fortran compilation flags 
>>>> give
>>>> a 64bit system. It doesn't look to me as if R's configure script has any
>>>> special handling for C compiler flags on SGI.
>>> Well, the R-admin manual says (under IRIX)
>>>
>>>   @R{} 2.1.0 has been successfully built on IRIX64 6.5 using both
>>>   @command{gcc} and the native (MipsPro 7.4) compiler. However, neither
>>>   version has passed @command{make check} due to a problem with time
>>>   zones (see below).  A 64-bit executable has not been successfully
>>>   built.
>>> 
>>> so we could not use special handling for a system we have not been told 
>>> how to build in 64-bit mode.
>>> 
>>> Here we don't know the OS, the compiler, the flags used .... and that 
>>> definitely is a bug.
>> 
>> The OS is irix 6.5.27, compiler = gcc, no special flags.
>> 
>> But that is no different from what I recall to have done when building
>> R 2.0.0 a long time ago.
>> 
>> I'll try to find out how to build a 64 bit executable, and see wether it
>> works. Probably that is easier using the native mipspro compiler.
>> Will report back to you guys when I find out a way to build a working
>> 64bit R 2.3.0 on SGI/irix64
>> 
>> Thanks for the time,
>>
>>                                                 Mirjam
>> 
>
>

-- 
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] (PR#8861) Memory allocation fails in R 2.2.1 and R 2.3.0 on SGI Irix, while plenty of memory available
Prof Brian Ripley