Skip to content
Prev 31958 / 63424 Next

R with MKL

bug of MKL 11.0...

_gfortran_internal_malloc64 and _gfortran_internal_free is needed by [cz]labrad
in libmkl_gnu_thread.
There is it in libgfortran of gfortran-4.1 as an outside symbol, but
there is not it for
gfortran-4.2 or latter.
Many people pushed forward old gfortran, but there was not the problem
in gfortran-4.2
or latter.
if I did it as follows in my environment because the contents were
malloc and free either.

  # my copy for editing
  MKL_LIB_PATH=/usr/local/mkl
  ORIG_MKL_LIB_PATH=/opt/intel/Compiler/11.0/*/mkl/lib/em64t/
  mkdir $MKL_LIB_PATH
  cp $ORIG_MKL_LIB_PATH/{libmkl_gf_lp64,libmkl_core}.a $MKL_LIB_PATH
  cp $ORIG_MKL_LIB_PATH/libmkl_gnu_thread.a $MKL_LIB_PATH

  # add of _gfortran_internal_malloc64 and _gfortran_internal_free to
libmkl_gnu_thread.a
  wget http://prs.ism.ac.jp/~nakama/mkl/mkl_gf.c
  gcc -O3 -fPIC -g -c mkl_gf.c
  ar r $MKL_LIB_PATH/libmkl_gnu_thread.a mkl_gf.o

Because I may be recovered in the newer version, this work is unnecessary for
outside symbol if _gfortran_internal_free disappears.

 $ nm -A libmkl_gnu_thread.a |grep _gfortran_internal   # MKL11.0 now
libmkl_gnu_thread.a:zlabrd_omp.o:                 U _gfortran_internal_free
libmkl_gnu_thread.a:zlabrd_omp.o:                 U _gfortran_internal_malloc64
libmkl_gnu_thread.a:clabrd_omp.o:                 U _gfortran_internal_free
libmkl_gnu_thread.a:clabrd_omp.o:                 U _gfortran_internal_malloc64

Welcome to Hell of MKL.;-)

2009/3/18 Ei-ji Nakama <nakama at ki.rim.or.jp>:

  
    
Message-ID: <dc41e1260903181808l58b9522bx977dca4b39b9cb4@mail.gmail.com>
In-Reply-To: <dc41e1260903180517i10ede2e1p73d2bf0750ac2d6b@mail.gmail.com>