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

GLIBC error

cepheid
Beginner
2,555 Views

I've used ifort to compile and produce the executable file on my local computer.
local$ uname -a
Linux LL 3.2.9-1-ARCH #1 SMP PREEMPT Thu Mar 1 09:31:13 CET 2012 x86_64 Intel Core2 Duo CPU T6570 @ 2.10GHz GenuineIntel GNU/Linux

then upload the executable file to ubuntu
@ubuntu:~$ uname -a
Linux ubuntu 2.6.24-22-generic #1 SMP Mon Nov 24 19:35:06 UTC 2008 x86_64 GNU/Linux

execute the file, then produce the following error
@ubuntu:~$ ./ESM
./ESM: /lib/libc.so.6: version `GLIBC_2.14' not found (required by ./ESM)

So how to produce the the executing file without depending on the GLIBC?
0 Kudos
3 Replies
Georg_Z_Intel
Employee
2,555 Views
Hello,

your systems differ in a way that even the basic C library (GLIBC) is not compatible.
You could try to statically link your FORTRAN application (-static) for the sake of increasing executable size.
Best solution is to build on a system with either the same or an older GLIBC version than your Ubuntu* system.

Best regards,

Georg Zitzlsberger
0 Kudos
cepheid
Beginner
2,555 Views
Follow your instruct, add -static while linking, when running have the following error:

FATAL: kernel too old
Segmentation fault



How to deal with this issue without updating the kernel.
0 Kudos
Georg_Z_Intel
Employee
2,555 Views
Hello,

without upgrading your system(s) things get more complicated. Usually our own libraries require at least GLIBC 2.2.5, IIRC. Hence I suspect that you were linking a 3rd-party library that requires a more recent GLIBC version.

Does a simple FORTRAN application work for you?
If it does some component of your project requires a higher GLIBC version. You can find out by issuing this for the (non-static) application you've built:

$ nm ./my_app | grep GLIBC

You'll see something like that:

...
U strncpy@@GLIBC_2.2.5
U vsprintf@@GLIBC_2.2.5

...

In case there's a higher version for you identify the component (e.g. library) which forces you to use a higher GLIBC version.

Btw., what's your build system?

Best regards,

Georg Zitzlsberger
0 Kudos
Reply