Binary Compatibility Issue between Linux Distributions and Versions
I was recently working with a Third-Party ISV that had run into an issue of binary compatibility with their application they built on RHEL 5 while running it on SUSE Linux Enterprise 10. I wanted to point this out for any other developers that may run into this issue. When they built their C and C++ applications on RHEL 5 and ran it on SLES 10, they would get a "Floating Point Exception". This problem also exists between RHEL 4 and RHEL 5. It turned out that there was a change in the hash style of the ELF format generated with newer versions of GCC.
To make binaries that are compatible across distributions, developers need to use the linker flag '--hash-style=sysv' when building their application. For example;
> gcc helloworld.c -Wl,--hash-style=sysv -o helloworld
Avinesh from IBM has a good description of the issue on his blog.


