Robert Kern wrote: > On Tue, Dec 8, 2009 at 15:36, Mark Sienkiewicz <sienk...@stsci.edu> wrote: > >> >> ( Presumably, some other version of gfortan does accept -arch, or this >> code wouldn't be here, right? ) >> > > Right. The -arch flag was added by Apple to GCC and their patch really > should be applied to all builds of GCC compilers for the Mac. It is > deeply disappointing that Fink ignored this.
So, you're saying that an un-patched GCC doesn't know -arch ? In that case, isn't it a mistake to see "gfortran" on the path, and then assume that you can say "-arch" to it? > The only Mac gfortran > build that I can recommend is here: > > http://r.research.att.com/tools/ > I saw the "should" note about that in the installation instructions. If I were doing this for personal use, I would have just installed that compiler and been done with it. Unfortunately, I am supporting many users who are already going to have the fink gfortran installed, and therefore I have to build scipy to use those libraries. It would be a tremendous amount of work just to convince my IT department to uninstall the fink gfortran and install the AT&T gfortran on every mac at the institute. > _can_target() should be fixed to be more accurate, though, so if you > find a patch that works for you, please let us know. > Here is an idea: I have a Mac Tiger machine that I believe has the AT&T gfortran installed. It can make universal binaries. It says: % gfortran -arch bananapc6000 -v gfortran: Invalid arch name : bananapc6000 % But the Mac Leopard machine with the Fink: % gfortran -arch bananapc6000 -v Using built-in specs. Target: i686-apple-darwin9 Configured with: ../gcc-4.3.0/configure --prefix=/sw --prefix=/sw/lib/gcc4.3 --mandir=/sw/share/man --infodir=/sw/share/info --enable-languages=c,c++,fortran,objc,java --with-arch=nocona --with-tune=generic --build=i686-apple-darwin9 --with-gmp=/sw --with-libiconv-prefix=/sw --with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --disable-libjava-multilib Thread model: posix gcc version 4.3.0 (GCC) % So, if you ask gfortran to use an obviously bogus architecture and it objects with the message "Invalid arch name", then it knows what -arch means. If it says anything else, then it doesn't. It should work until somebody ports gfortran to make bananapc6000 binaries. :) I think this is an ugly hack, but that's how it is when you use auto-detection. (I wish there were some way that distutils could autodetect everything, write it into a file, let me edit that file, then next time I run setup.py it would use the values in the file, but I expect that would require a near complete re-write of distutils, and I just don't have time.) Mark _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion