Pearu Peterson wrote:
>> On Wed, 2 Nov 2005, Fernando Perez wrote:
>>So the question really is: how do we get scipy.distutils to use icc as the
>>LINKER and not to use gcc at all? Thanks for any pointers...
>>> This is not really a scipy.distutils issue. A simple answer to your
> question would be building python with icc.
> Standard distutils has limited support switching C compilers, see
> `setup.py build_ext --help`. It is also possible to implement support for
> your own c compiler in scipy.distutils but first I would suggest following
> the simple answer.
OK, thanks for the info. I'd like to understand something, though. Once you
homebrew this icc-based python, don't you end up forced to maintain off-distro
ALL python packages you want to use? This solution would require building a
parallel python, losing most of the benefits of easy package handling in a
distro, etc.
As we've seen, all that's needed is to fix the link calls. If that is done,
one could use the base platform python for everything, and only build
numerically critical code with icc. I really don't look forward to the idea
that using icc for scipy will force people to build wxpython, pygtk, pyvtk and
other similarly pleasant-to-build packages ALL from source, and maintain a
fully separate tree.
For now, a more viable solution (for me) seems to be just to use gcc and lose
some of the benefits of icc on this architecture. But I think it would be
great to be able to offer users the ability to use the C compiler of their
choice for scipy.
From looking at the code, I wonder if it's just a matter of overriding the
link() method in ccompiler, to honor the CC env. variable (as a start). I may
have a go at it, at least out of curiosity...
Just as an FYI, with the following two manual link steps:
phillips[newcore]> icc -pthread -shared
build/temp.linux-ia64-2.3/scipy/base/src/multiarraymodule.o -o
build/lib.linux-ia64-2.3/scipy/base/multiarray.so
phillips[newcore]> icc -pthread -shared
build/temp.linux-ia64-2.3/build/src/scipy/base/src/umathmodule.o -o
build/lib.linux-ia64-2.3/scipy/base/umath.so
I can get scipy newcore to pass all tests on this Itanium2 box:
In [4]: scipy.test(10,10)
...
----------------------------------------------------------------------
Ran 140 tests in 2.025s
OK
One more 64-bit architecture where things look good, thanks to Travis and
Arnd's relentless work!
Unfortunately for now I won't be able to test full scipy here, as the number
of similar manual link steps for the full one is enormous.
Anyway, many thanks for clarifying the issue.
Cheers,
f