SPM99b was tested primarily on Sun workstations running Solaris 2.x, and
was not heavily tested on other architectures before being released.
A few people out there in the SPM community have suggested fixes to make
compilation easier on other platforms. These fixes are available from:
ftp://ftp.fil.ion.ucl.ac.uk/spm/spm99b_updates
We will notify the mailing list if we find and fix any major bugs.
> I downloaded SPM99b and tried to compiled those mex files on SGI OCTANE
> unix workstation. The machine run on IRIX64 (version 6.5).
>
> I issued, on unix command line:
> spm_MAKE.sh sgi64
> then the machine asked:
> spm_vol_utils.a: 444 mode. Remove ? (yes/no)[no]
>
> Knowing nothing about the spm_vol_utils.a, I answered no
> Then I got multi-line erroe message, something like:
>
> ar: Warning:spm_vol_utils.a ONLY holds 32 bit objects.
> utils_uchar.o is a 64 bit object file so NO symbol table will be generated
> for this archive,
>
> Compiling mex files...
> ld64: WARNING 126: The archive
> spm_vol_utils.a defines no global symbols. Ignoring.
I am guessing that you initially had a go at compiling with the "sgi" flag
rather than the "sgi64" one. This would create spm_vol_utils.a for the 32
bit architecture. When you then tried compiling with "sgi64", it found
an old 32 bit spm_vol_utils.a (which you didn't want to delete) and got
very confused when it tried to add 64 bit functions.
> ........
>
> I re-started the compiling after renaming spm_vol_utils.a to
> spm_vol_utils.a.old,
>
> I got the following messages:
>
> Adding to archive library spm_vol_utils.a... Cannot access
> spm_vol_utils.a: No such file or directory
This is because of the line:
\rm spm_vol_utils.a
it should perhaps be replaced by:
\rm -f spm_vol_utils.a
which under Solaris 2, would not complain if the file did not exist.
Unfortunately, I don't know what flag does this on other machines.
>
> "spm_brainwarp.c", line 3: warning(1014): extra text after expected end of
> preprocessing directiv
> #endif lint
> ^
This warning message has been fixed. I think it is just a warning, so
the routine should have compiled OK.
>
> ld64: WARNING 84: spm_vol_utils.a is not used for resolving any symbol.
> "spm_add.c", line 42: warning(1195): floating-point operation result is
> out of range
>
> double NaN = 0.0/0.0; /* the only way to get a NaN that I know*/
Again, I think this is just a warning, but the code has been modified so
that the error is not displayed.
> Even with those error messages, I found that *mexsg64 files
> are all generated.
>
> My question is:
> Were these *mexsg64 files compiled right and will they function correctly?
It is sometimes difficult to tell with mex files without actually running
them. Try running SPM and see if you get any error messages relating to
the mex routines.
Regards,
-John
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|