Rob, rda@lemma-one.com wrote:
It may be possible to force 32-bit mode with ./configure CFLAGS='-arch i386 -O3' CXXFLAGS='-arch i386 -O3' \ CCASFLAGS='-arch i386'
Did you try with the CXXFLAGS option as well? From what I can tell
CFLAGS is only used in C
programs not in the C++ parts such as x86_dep.cpp.
It does work when I do set all three of CFLAGS CXXFLAGS and CCASFLAGS. Yet again I need to specify -arch i386 in my make files when I link Poly/ML programs. Is there any reason for or against compiling Poly/ML for the 32 bit architecture?
The original reason I suggested it was as a fall-back in case the 64-bit build didn't work. It seems that Mac OS X doesn't use the no-execute bit in 32-bit mode so the -segprot option wasn't needed. As Makarius said in his posting, 64-bit mode requires roughly twice as many bytes of memory as 32-bit mode. Also a few features of the FFI (CInterface) don't work in 64-bit mode. The big advantage of 64-bit mode is that if you have the memory you're freed from the 32-bit address limit.
One thing that won't hurt me at the moment, but may affect other users is that the configure script is not finding the X Windows installation that comes with MacOS X. As far as I can see this is just because the test it uses needs to specify -L/usr/X11R6/lib.
configure.ac uses the AC_PATH_X macro to set the include and library path. I can't find /usr/X11R6/lib hardcoded anywhere. See http://www.gnu.org/software/autoconf/manual/html_node/System-Services.html I don't know why this isn't working.
Regards, David