Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29276 Discussions

Issue with Redistribution of Fortran Library Binaries Built for Linux

spiesers
Beginner
1,089 Views
Hi,
I do have a scientific program, as binary only, compiled with Intel Math libraries to run.
I installed the Redistribution of Fortran Library Binaries Built for Linux, using the install.sh file; installation successful.
I set the ENV variables LIBRARY_PATH and LD_LIBRARY_PATH.

When I do run my program, I have the following error message:

symbol lookup error: /opt/intel/Compiler/11.1/059/lib/ia32/libifcore.so.5: undefined symbol: dlsym

ldd -r -d on libifcore.so.5 shows
$ ldd -r -d /opt/intel/Compiler/11.1/059/lib/ia32/libifcore.so.5
linux-gate.so.1 => (0xb7733000)
libimf.so => /opt/intel/Compiler/11.1/059/lib/ia32/libimf.so (0xb73e8000)
libm.so.6 => /lib/libm.so.6 (0xb73b1000)
libintlc.so.5 => /opt/intel/Compiler/11.1/059/lib/ia32/libintlc.so.5 (0xb736d000)
libc.so.6 => /lib/libc.so.6 (0xb7210000)
/lib/ld-linux.so.2 (0xb7734000)
undefined symbol: dlsym (/opt/intel/Compiler/11.1/059/lib/ia32/libifcore.so.5)

I tried all Redistribution versions, same problem.

Is there a specific library I need to install beside the Redistribution Libraries ?

Thank you so much,

Spiesers
0 Kudos
4 Replies
TimP
Honored Contributor III
1,089 Views
It looks like you are missing an expected glibc installation. You are likely to have trouble if your target system has an earlier major version of glibc than your build system, but you should get a different message about that. If you don't have glibc at all, I suppose installing g++ would be the easiest way to explain to get it, although it might be overkill. You may also need what Red Hat calls compatibility libraries.
0 Kudos
spiesers
Beginner
1,089 Views
Thanks for the quick reply.
My linux install is based on ubuntu 10.04. glibc is not used, but libc.

Could a soft link solve the problem ?
0 Kudos
Ron_Green
Moderator
1,089 Views
your ldd is showing that the executable you compiled is 32bit and using/expecting 32bit libraries. Is your target computer using the 32bit version of Ubuntu? If not, have you installed the 32bit libraries on that target system? OR should you rethink this and just go 64bit for everything?
Determine if you really want 32 or 64 bit executables. Use the appropriate source of ifortvars.sh to choose either the 32 or 64 bit compiler. Build, and I'd recommend -static-intel to statically link in the Intel runtime libraries. If you use MKL, choose the static libraries and link those in statically too. Then your target computer need not have the redistributable Intel libraries. BUT you still need to make sure that your target system has the right 32 or 64 bit system libraries. Again, if your target system is not Ubuntu 10.04 or 10.10 you may have problems. There's a general rule that when building applications for distribution on linux, build with an older 'least common denominator' distribution. Newer distros typically will run code built on older versions BUT the opposite is often not true.
Also, your compiler, 11.1.059 Build 20091012, predates Ubuntu 10.04 20100429. Thus, that compiler was never tested and not supported on Ubu 10.04. It may work, but no guarantees. That compiler was checked out against Ubu 9.04 and older.
ron
0 Kudos
spiesers
Beginner
1,089 Views
Thanks Ronald.
My ubuntu install is 32bit.
I installed the so-called RedHat compatibility libraries libstdc++ bla bla, but no success. Very frustrating !

One further remark about the Intel libraries. Here after the ldd output for another lib:
$ ldd -r -d /opt/intel/Compiler/11.1/059/lib/ia32/libiomp5.so
linux-gate.so.1 => (0xb7808000)
libc.so.6 => /lib/libc.so.6 (0xb760e000)
libdl.so.2 => /lib/libdl.so.2 (0xb760a000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb75ef000)
/lib/ld-linux.so.2 (0xb7809000)
In this case, the libdl.so.2 lib is present, and indeed this lib resolves dlsym symbol, just great.
For libifcore.so.5, libdl.so.2 is not present in the ldd output, and I got trouble.

Does it raise any hint ?

0 Kudos
Reply