[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
configure has problems when MKL is not installed in a default lib direct
From: |
Johannes Zarl |
Subject: |
configure has problems when MKL is not installed in a default lib directory |
Date: |
Thu, 24 Jul 2014 10:56:35 +0200 |
User-agent: |
KMail/1.13.7 (Linux/3.10-0.bpo.3-amd64; KDE/4.8.4; x86_64; ; ) |
Hi,
I'm trying to compile octave 3.8.1 with --enable-64 and I'm having problems.
Configure fails with the following message:
[excerpt of ./configure output:]
> checking for sgemm_ in -
> L/jkuvrc/packages/intel/compiler/composerxe-2011.3.174/mkl/lib/intel64/ -
> lmkl_blas95_ilp64 -lmkl_rt -lpthread -lm... yes
> checking whether LSAME is called correctly from Fortran... no
> checking whether ISAMAX is called correctly from Fortran... no
> checking whether SDOT is called correctly from Fortran... no
> checking whether DDOT is called correctly from Fortran... no
> checking whether CDOTU is called correctly from Fortran... no
> checking whether ZDOTU is called correctly from Fortran... no
> checking whether the integer size is correct... no
> configure: error: BLAS doesn't seem to support 64-bit integers. This is
> incompatible with --enable-64.
So far, so good(?), but when I looked into config.log, I see the following:
[excerpt from config.log:]
> configure:34134: checking whether the integer size is correct
> configure:34168:
> /apps/intel/compiler/composerxe-2011.3.174/bin/intel64/ifort -o conftest -
> ff2c
> -I/jkuvrc/packages/intel/compiler/composerxe-2011.3.174/mkl/include/intel64/
> runtime -I/jkuvrc/packages/intel/compiler/composerxe-2011.3.174/mkl/include
> -i8 conftest.f -
> L/jkuvrc/packages/intel/compiler/composerxe-2011.3.174/mkl/lib/intel64/ -
> lmkl_b
> las95_ilp64 -lmkl_rt -lpthread -lm -lm >&5
> ifort: command line warning #10006: ignoring unknown option '-ff2c'
> configure:34168: $? = 0
> configure:34168: ./conftest
> ./conftest: error while loading shared libraries: libmkl_rt.so: cannot open
> shared object file: No such file or directory
> configure:34168: $? = 127
> configure: program exited with status 127
> configure: failed program was:
> | program main
> |
> | integer n,nn(3)
> | real s,a(1),b(1),sdot
> | a(1) = 1.0
> | b(1) = 1.0
> | c Generate -2**32 + 1, if possible
> | n = 2
> | n = -4 ** (n ** 30)
> | n = n + 1
> | if (n >= 0) goto 1
> | c This means we're on 64-bit integers. Check whether the BLAS is, too.
> | s = sdot(n,a,1,b,1)
> | if (s .ne. 0.0) stop 1
> | 1 continue
> | c We may be on 32-bit integers, and the BLAS on 64 bits. This is almost
> | bound
> | c to have already failed, but just in case, we'll check.
> | nn(1) = -1
> | nn(2) = 1
> | nn(3) = -1
> | s = sdot(nn(2),a,1,b,1)
> | if (s .ne. 1.0) stop 1
> |
> | end
> configure:34177: result: no
> configure:35947: error: BLAS doesn't seem to support 64-bit integers. This
> is incompatible with --enable-64.
>
I.e. the problem lies with the dynamic linker. When I try to compile
conftest.f using the commandline given in config.log, it succeeds, and can be
executed without problems. LD_LIBRARY_PATH needs to be set correctly, since
MKL is installed in its custom prefix:
> ldd conftest
> linux-vdso.so.1 => (0x00007fff3cdff000)
> libmkl_rt.so =>
> /path/to/intel/compiler/composerxe-2011.3.174/mkl/lib/inte
> l64/libmkl_rt.so (0x00007f33c46a8000) libpthread.so.0 =>
> /lib64/libpthread.so.0 (0x00007f33c444e000) libm.so.6 =>
> /lib64/libm.so.6 (0x00007f33c41f8000)
> libc.so.6 => /lib64/libc.so.6 (0x00007f33c3e99000)
> libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f33c3c82000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00007f33c3a7e000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f33c4c1f000)
So here's my question: How do I force the configure script to honor
LD_LIBRARY_PATH while executing ./conftest?
Cheers,
Johannes
- configure has problems when MKL is not installed in a default lib directory,
Johannes Zarl <=