[Numpy-discussion] Need compilations with compilers other than gcc

Pearu Peterson pearu at scipy.org
Tue Feb 7 08:07:06 CST 2006


On Tue, 7 Feb 2006, Arnd Baecker wrote:

> On Tue, 7 Feb 2006, Pearu Peterson wrote:
>
>> On Tue, 7 Feb 2006, Arnd Baecker wrote:
>>
>>> Alright, we might need the asbestos suite thing:
>>>
>>> Something ahead: I normally used
>>>  python numpy/distutils/system_info.py lapack_opt
>>> to figure out which library numpy is going to use.
>>> With current svn I get the folloowing error:
>>>
>>> Traceback (most recent call last):
>>>  File "numpy/distutils/system_info.py", line 111, in ?
>>>    from exec_command import find_executable, exec_command, get_pythonexe
>>>  File
>>> "/work/home/baecker/INSTALL_PYTHON5_icc/CompileDir/numpy/numpy/distutils/exec_command.py",
>>> line 56, in ?
>>>    from numpy.distutils.misc_util import is_sequence
>>> ImportError: No module named numpy.distutils.misc_util
>>
>> This occurs probably because numpy is not installed.
>
> Maybe I am wrong, but I thought that I could run the above
> command before any installation to see which
> libraries will be used.
> My installation notes on this give me the feeling that
> this used to work...

   from numpy.distutils.misc_util import is_sequence, is_string

should be changed to

   from misc_util import is_sequence, is_string

to fix this.

>>> Concerning icc compilation I used:
>>>
>>>  export FC_VENDOR=Intel
>>
>> This has no effect anymore. Use --fcompiler=intel instead.
>
> OK - I have to confess that I am really confused about
> which options might work and which not.
> Is there a document which describes this?

FC_VENDOR env. variable was used in old f2py long time ago. When Fortran 
compiler support was moved to scipy_distutils, --fcompiler option was 
introduced to config, config_fc, build_ext,.. setup.py commands.
One should use any of these commands to specify a Fortran compiler and 
config_fc to change various Fortran compiler flags. See
   python setup.py config_fc --help
for more information.

How to enhance C compiler options, see standard Distutils documentation.

>>>  export F77=ifort
>>>  export CC=icc
>>>  export CXX=icc
>
> But these are still needed?

No for F77, using --fcompiler=.. should be enough. I am not sure about CC, 
CXX, must try it out..

>> When Python is compiled with a different compiler than numpy (or any
>> extension module) is going to be installed then proper libraries must be
>> specified manually. Which libraries and flags are needed exactly, this is
>> described in compilers manual.
>>
>> So, a recommended fix would be to build Python with icc and as a
>> result correct libraries will be used for building 3rd party extension
>> modules.
>
> This would also mean that all dependent packages will have
> to be installed again, right?
> I am sorry but then I won't be able to help with icc at the moment
> as I am completely swamped with other stuff...
>
>> Otherwise one has to read compilers manual, sections like
>> about gcc-compatibility and  linking might be useful. See also
>>   http://www.scipy.org/Wiki/FAQ#head-8371c35ef08b877875217aaac5489fc747b4aceb
>
> I thought that supplying ``--libraries="irc"``
> might cure the problem, but
> (quoting from
> http://aspn.activestate.com/ASPN/Mail/Message/scipy-dev/2983903
> )
> """
> However, in the build log I only found -lirc for
> the config_tests but nowhere else.
> What should I do instead of the above?
> """

Try:

   export CC=icc
   python setup.py build build_ext -lirc

This will probably use gcc for linking but might fix undefined symbol 
problems.

Pearu




More information about the Numpy-discussion mailing list