From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: 64bits and memory problem
Date: Wed, 14 Oct 2009 20:52:01 +0000 (UTC)
Organization: Boeing
Lines: 21
Message-ID: <hb5dlg$g5k$>
References: <hb5bq3$frt$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: 1255553521 16564 (14 Oct 2009 20:52:01 GMT)
NNTP-Posting-Date: Wed, 14 Oct 2009 20:52:01 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 756104
Xref: comp.soft-sys.matlab:577347

"ste me" <> wrote in message <hb5bq3$frt$>...
> I recently shifted to Ubuntu@64bits and I have a problem with Matlab r2009a&memory.
> The code makes use of a C file which is compiled via 
> >mex name.c
> In a 32bits architecture everything is fine.
> Under 64 bits the file is correctly compiled, but the programs stops with the error
> Function "mxGetIr_700" is obsolete in file "compat32.cpp", line
> 282.
> (64-bit mex files using sparse matrices must be rebuilt with the
> "-largeArrayDims" option.  See the R2006b release notes for more
> details.)
> I then compiled using the suggested option:
> >mex -largeArrayDims name.c

Just using the -largeArrayDims flag doesn't fix the code for 64-bit. For example, if your name.c code is using int for array sizes instead of mwSize, mwSignedIndex, etc. etc. then the code will not work if any of those are passed by reference to a function (i.e., passing an address of an int to a routine that is expecting the address of an 8-byte unsigned integer for a size will obviously not work). The function would get garbage when it dereferenced the pointer, and if subsequently used as an agument for a memory allocation I could see how you might get an "out of memory" error. How large is your code ... short enough to post?

James Tursa