Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

GLIBC error

cepheid
Beginner
2,602 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,602 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,602 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,602 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