[SciPy-user] OS X build problems with non-Apple python -- diagnosis and solution
Robert Kern
rkern at ucsd.edu
Fri Mar 11 20:48:33 EST 2005
Zachary Pincus wrote:
> Hello folks,
>
> I've run into some trouble building scipy for OS X. Fortunately, I've
> got it mostly licked, so I thought I'd explain how.
>
> The issues were two:
> (1) A problem with g77 and the -bundle switch. This switch must not be
> used at the beginning of the command line.
> (2) The linker not being pointed at the correct set of python libraries
> for non-Apple python installs.
>
> Here are the details:
>
> Note that I'm following the Christopher Fonnesbeck's directions
> (http://www.scipy.org/documentation/Members/fonnesbeck/osx_build.txt )
> exactly, except that I've used Fink to install python. All other
> packages were manually installed. I'm using a CVS checkout of SciPy
> from today.
>
> The first problem that I encountered was in building the various
> fortran libs with g77. (Full error text below as #1). The gist of the
> error is that g77 reports "couldn't run
> `/usr/local/bin/undle-gcc-3.4.2': No such file or directory". This
> problem turns out to be due to the (insane) fact that g77 has a "-b
> MACHINE" switch that is only honored if it is the first element on the
> command line.
Oh, *fantastic*.
> So 'g77 -bundle' makes the compiler look for the
> executable undle-gcc-3.4.2. The solution is to put something before the
> '-bundle' switch. I used -WALL because it's relatively harmless. (See:
> http://www.mail-archive.com/fink-devel@lists.sourceforge.net/
> msg10604.html )
>
> So it's important to make sure that -bundle is not the first switch. I
> suspect that this problem has not cropped up before because users
> without Fink-installed python will get a '-framework' switch before the
> -bundle switch. However, this might change in the future; as such it
> would be a good idea to explicitly make sure that -bundle is never
> first in the g77 command.
>
> The second problem that I ran into was precisely the same issue that
> Christopher reported last year
> (http://www.scipy.net/pipermail/scipy-user/2004-February/002576.html ).
> That is, the linker was not finding the python libraries to link to the
> fortran libraries. The solution proffered at that time
> (http://www.scipy.net/pipermail/scipy-user/2004-February/002587.html )
> was to add specific switches to the compiler options for darwin.
> Unfortunately, these switches are specific for the apple-installed
> python framework. If a user has manually installed a new python (or has
> had fink do so for them), this fails. (see Error #2 below) I believe
> the python distutils provide a unified method to find out the correct
> libraries to link to, in order to avoid these sort of problems.
I think the answer to both of your problems is to keep the "-undefined
dynamic_lookup" first for both framework and non-framework builds.
Google says it should work for Fink Python, too.
Try current CVS, please, and report back.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the SciPy-User
mailing list