#10509: cvxopt: undefined symbol: ilaenv_
----------------------------+-----------------------------------------------
   Reporter:  vbraun        |       Owner:  tbd        
       Type:  defect        |      Status:  needs_info 
   Priority:  major         |   Milestone:  sage-4.6.2 
  Component:  packages      |    Keywords:  ATLAS, BLAS
     Author:  Volker Braun  |    Upstream:  N/A        
   Reviewer:                |      Merged:             
Work_issues:                |  
----------------------------+-----------------------------------------------

Comment(by vbraun):

 Atlas-3.8.3 does only provide a static lapack library, so cvxopt's
 `lapack.so` statically linked it all:
 {{{
 (sage subshell) volker-desktop:sage-4.6.1.alpha0 vbraun$ ls -al
 local/lib/liblapack*
 -rw-r--r--. 1 vbraun vbraun 10254224 Nov 15 16:06 local/lib/liblapack.a
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha0
 (sage subshell) volker-desktop:sage-4.6.1.alpha0 vbraun$ readelf -a
 local/lib/python/site-packages/cvxopt/lapack.so | grep ilaenv
 000000340600  019000000007 R_X86_64_JUMP_SLO 00000000000d6610 ilaenv_ + 0
    400: 00000000000d6610  5800 FUNC    GLOBAL DEFAULT   11 ilaenv_
    361: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS ilaenv.f
    924: 00000000000d6610  5800 FUNC    GLOBAL DEFAULT   11 ilaenv_
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha0
 }}}

 Atlas-3.9.32 builds shared libraries and cvxopt now links against the
 shared library.
 {{{
 (sage subshell) volker-desktop:sage-4.6.1.alpha3-atlas vbraun$ ls -al
 local/lib/liblapack* local/lib/libatlas* local/lib/lib*blas*
 -rw-r--r--. 1 vbraun vbraun 10964328 Dec 20 22:36 local/lib/libatlas.a
 -rw-r--r--. 1 vbraun vbraun  6402481 Dec 20 20:39 local/lib/libatlas.so
 -rw-rw-r--. 1 vbraun vbraun   786962 Dec 20 22:36 local/lib/libblas.a
 -rw-r--r--. 1 vbraun vbraun   499528 Dec 20 22:36 local/lib/libcblas.a
 -rw-r--r--. 1 vbraun vbraun   157226 Dec 20 20:39 local/lib/libcblas.so
 -rw-r--r--. 1 vbraun vbraun   599690 Dec 20 22:36 local/lib/libf77blas.a
 -rw-r--r--. 1 vbraun vbraun   154978 Dec 20 20:39 local/lib/libf77blas.so
 -rw-r--r--. 1 vbraun vbraun  1640938 Dec 20 22:36 local/lib/libgslcblas.a
 -rwxr-xr-x. 1 vbraun vbraun      988 Dec 20 22:36 local/lib/libgslcblas.la
 lrwxrwxrwx. 1 vbraun vbraun       20 Dec 20 20:43 local/lib/libgslcblas.so
 -> libgslcblas.so.0.0.0
 lrwxrwxrwx. 1 vbraun vbraun       20 Dec 20 20:43
 local/lib/libgslcblas.so.0 -> libgslcblas.so.0.0.0
 -rwxr-xr-x. 1 vbraun vbraun   896520 Dec 20 20:43
 local/lib/libgslcblas.so.0.0.0
 -rw-r--r--. 1 vbraun vbraun 10311776 Dec 20 22:36 local/lib/liblapack.a
 -rw-r--r--. 1 vbraun vbraun  5455501 Dec 20 20:39 local/lib/liblapack.so
 -rw-r--r--. 1 vbraun vbraun   500036 Dec 20 22:36 local/lib/libptcblas.a
 -rw-r--r--. 1 vbraun vbraun   157257 Dec 20 20:39 local/lib/libptcblas.so
 -rw-r--r--. 1 vbraun vbraun   600086 Dec 20 22:36 local/lib/libptf77blas.a
 -rw-r--r--. 1 vbraun vbraun   155009 Dec 20 20:39
 local/lib/libptf77blas.so
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha3-atlas
 (sage subshell) volker-desktop:sage-4.6.1.alpha3-atlas vbraun$ readelf -a
 local/lib/python/site-packages/cvxopt/lapack.so | grep ilaenv
 0000002997f8  004600000007 R_X86_64_JUMP_SLO 0000000000000000 ilaenv_ + 0
     70: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND ilaenv_
    471: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND ilaenv_
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha3-atlas
 (sage subshell) volker-desktop:sage-4.6.1.alpha3-atlas vbraun$ readelf -a
 local/lib/liblapack.so | grep ilaenv
 00000070ff08  04e200000007 R_X86_64_JUMP_SLO 0000000000000000
 clapack_ilaenv + 0
 000000710ba8  070d00000007 R_X86_64_JUMP_SLO 0000000000000000 ilaenv_ + 0
   1250: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND clapack_ilaenv
   1805: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND ilaenv_
   3237: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND clapack_ilaenv
   3792: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND ilaenv_
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha3-atlas
 (sage subshell) volker-desktop:sage-4.6.1.alpha3-atlas vbraun$ readelf -a
 local/lib/libf77blas.so | grep ilaenv
 00000021e288  004700000007 R_X86_64_JUMP_SLO 00000000000081b0
 atl_f77wrap_ilaenv_ + 0
 00000021e2b0  005100000007 R_X86_64_JUMP_SLO 0000000000000000 ATL_ilaenv +
 0
     71: 00000000000081b0    45 FUNC    GLOBAL DEFAULT    6
 atl_f77wrap_ilaenv_
     81: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND ATL_ilaenv
    409: 00000000000089bc  3147 FUNC    GLOBAL DEFAULT    6 ilaenv_
     12: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS
 ATL_f77wrap_ilaenv.c
     44: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS ilaenv.f
    400: 00000000000081b0    45 FUNC    GLOBAL DEFAULT    6
 atl_f77wrap_ilaenv_
    410: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND ATL_ilaenv
    738: 00000000000089bc  3147 FUNC    GLOBAL DEFAULT    6 ilaenv_
 SAGE_ROOT=/home/vbraun/opt/sage-4.6.1.alpha3-atlas
 }}}
 In particular, ilaenv remains UNDefined in cvxopt `lapack.so` and atlas
 `liblapack.so` and needs to be dynamically linked in from `libf77blas.so`.

 I guess we should keep statically linking the static system-provided
 lapack on Windows and OSX, or change cvxopt to use the C version
 clapack_ilaenv (since it already links to `libcblas.so`)

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10509#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to