Notes about Creating C/C++ Binaries that Run on Different Flavors of Linux
After a little reading, what we've learned so far is –
- This is not simple
- I think the level of difficultly increases with the number of linked libraries
- It is debatable whether static linking helps or causes more problems (see the pixelbeat site for more information on this).
- It's probably helpful to compile with the oldest version of Linux & gcc that one intends to support.
Here's some articles/conversations on the topic –
- http://www.pixelbeat.org/programming/linux_binary_compatibility.html
- http://ask.slashdot.org/article.pl?sid=05/11/24/2230256&threshold=1
- http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html
- http://stackoverflow.com/questions/1771366/binary-compatibility-between-linux-distributions
Here's a tool that might help – http://ldn.linuxfoundation.org/lsb/check-your-app
Here's a list of distros certified for compliance with the Linux Standard Base – http://www.linuxfoundation.org/lsb-cert/productdir.php?by_lsb
Here's an interesting report on binary compatibility: http://www.complang.tuwien.ac.at/anton/linux-binary-compatibility.html
A few other bits of research on Binary Compatibility: http://kerneltrap.org/node/4006