Hi,

I would like to report an issue with python's distutils. I ran into
trouble with my numpy installation, which seems to be caused by
distutils. What I am to do is to link my numpy shared objects against
Intel MKL (version 10.1)

I have the following in my site.cfg:

[mkl]
library_dirs = /share/apps/intel/mkl/lib/em64t:/share/apps/intel/lib/intel64
mkl_libs = mkl_gf_lp64, mkl_intel_thread, mkl_core, iomp5

This is to follow the link instruction in MKL 10 manual. The catch is,
the two library dirs contain part of the library files to be linked
in, that is:

/share/apps/intel/mkl/lib/em64t contains: mkl_gf_lp64,
mkl_intel_thread, mkl_core
/share/apps/intel/lib/intel64 contains: iomp5

It seems that this situation is not handled well by distutils. When I
traced the python build script (by adding printout to
distutils/system_info.py), I found out that search algorithm in
distutils.system_info class (method: check_libs2, which in turn calls
_check_libs, which in turn calls _lib_list) requires that all five
libraries above are sought to be together in one of the subdirs given
above (either /share/apps/intel/mkl/lib/em64t  or
/share/apps/intel/lib/intel64). The method cannot handle libraries
that are scattered as my situation described above.

Note that I could have fooled the build system by providing softlink
to all these files in a single subdir, but it seems that system_info
could be fixed to handle situations above without much muddling like
this.

The problem was first detected with numpy version 1.2.1 (which is old,
I know), but a quick inspection of the system_info module included
there shows that not much has changed since then compared to the most
recent distutils (included with my python 2.6.4 installation).

-- 
Wirawan Purwanto
College of William and Mary
Physics Department
Williamsburg, VA 23187
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to