For the last few years I worked on Mint Linux distribution v14/16/17 and most of the time I had a flavor of the GCC compiler.
That made my life easier in the compatibility mode - compile once, works on most Linux distributes.
Now days there are also GCC 5.x, GCC 6.x and GCC 7.x specs just been concluded for next year release.
This sound like another poor Firefox browser numbering (I love firefox though), and it already caused incompatibility for Mission-X plugin.
Since I moved to Mint 18, the default GCC compiler was GCC 5.x. I thought - great, why not, more C++ features maybe better optimizations. But alas, after uploading v2.1.28.x version, it came to me that the plugin fail to load.. Now I believe that the user base of the plugin is not that big, and new users expect solid plugin build.
Long story short, in the Log.txt file the error points of wrong glibc.6 abi. This led me to believe that I was naive that newer is better. Now this is not the end, since I own another machine and it had "Fedora v24 beta". It was an interesting experience, but as Fedora goes, they want the latest and greatest, so on there end, the GCC version was 6.x at the time.
Now I guess you understand where I'm aiming... maybe not.
Since I decided to ditch x32 builds of my plugin to have smaller compatibility issues and head ache, I was granted with three different binaries for 3 different ABIs (well this is what I think).
- 4 builds per OS, which translates to 4*3 = 12 binary versions I decreased to:
- 2 builds x64 + FMOD library support (for sound).
This allow me to just prepare 6 binary files for all OSes.
- Today in Linux I need to compile 2 builds * 3 ABIs = 6 binary versions.
As of today, I think that I'll try the "easy" approach, and stick with the common denominator and it will be: GCC 4.8.x.
If I can compile it and run it on the other distributions, then so be it. Still I do not have enough OS builds to test, nor the time but I hope that it will solve near future compatibility until ALL distros will be able to "play" nicely together.