CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (https://www.cfd-online.com/Forums/openfoam-installation/)
-   -   Binary compatibility of OF compilations (https://www.cfd-online.com/Forums/openfoam-installation/128230-binary-compatibility-compilations.html)

Aleksey_R January 7, 2014 04:29

Binary compatibility of OF compilations
 
Greetings, dear FOAMers!

I have an access to the cluster with different operating systems on different machines. Namely, on some machines Scientific Linux SL release 5.6 is installed, and on others - Scientific Linux SL release 6.0.

When I compiled gcc 4.5.1 from ThirdParty on Scientific Linux SL release 6.0 machines I've noticed that it doesn't work on SL 5.6 machines. E.g. runnin gcc -v gives:

gcc: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by gcc)

and running cmake --version gives:

cmake: error while loading shared libraries: /net/minus/home/dudcha/OpenFOAM/OpenFOAM-1.6-ext/ThirdParty/packages/gcc-4.5.1/platforms/linux64Gcc45DPOpt/lib64/libstdc++.so.6: ELF file OS ABI invalid

Please, could someone give me a hint of binary compatibility of OF? Do I need to compile everything from sources on each machine?

Best regards,
Aleksey.

wyldckat January 20, 2014 16:23

Greetings Aleksey,

If you had (originally) asked about this in the installation section, I would have picked up on it a lot sooner ;). I only picked up on this because I was doing a broad range scan for spammers.
Anyway, I've moved this thread to the right sub-forum and here's what I'm able to say on this topic:

OK, the second message "ELF file OS ABI invalid" indicates that the builds were meant for different architectures. Run this command on both machines:
Code:

uname -m
If they do not give you the same architecture, then that means that they are incompatible, at least using the native builds.
Nonetheless, it's possible to get some level of compatibility between x86 machines. For example, if one machine is x86_64 and the other is i686, then both must have an OpenFOAM 32-bit build, so that they can both cooperate in the same architecture level. The downside if that you won't take advantage of the full power of the 64-bit (x86_64) machine.

As for the first one:
Code:

gcc: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by gcc)
You should use the same build on both machines, or at least to follow the same exact build instructions.
The usual way to make it easier for the two installations to be compatible, is to build on the older machine (uhm... older SL installation) and then copy the installation to the newer machine (newer SL installation). But again, the downside if that it won't take advantage of the more recent binaries.

Best regards,
Bruno


All times are GMT -4. The time now is 06:44.