To view parent comment, click here.
To read all comments associated with this story, please click here.
Ha. Try compiling a C++ app on Windows and deploying it to another machine. Doesn't work. Unless of course you bundle all the runtime libraries for the compiler you're using into your installer. Guess what, the same thing works on Linux. Include all your dependencies with the app and binary compatibility is no problem.
The reason binary compatibility is harder on Linux is because Linux apps actually try to share libraries, instead of each app bundling everything they need and then loading X copies of it in memory. Bundling everything is easier, but not very efficient.
No, no it doesn't.
If you compile on newer distro and put it on older distro, even with all libraries, it won't work because of [gay]libc.
The problem is that you can't distribute libc itself (because the kernel API and ABI changes), but your apps/libs depend on a specific libc abi too (GLIBC_2_XX required errors).
So.. no, you don't really know what you're talking about. If you need a nice eyesore for compatibility, have a look at statfs.h file in linux. See that OFFSET define? Know what that can cause? I do.
Well, Mozilla Firefox, Adobe Acrobat, Macromedia Flash, Unreal Tournament 2004, Doom 3, Matlab and many more manage to be distributed as single binaries that runs anywhere.
I don't know what you're doing but as long as you're developing for at least the 2.4 kernel and a reasonably recent glibc (older versions should be available in your distro's repository) you shouldn't be having trouble.
Well, it does, however vendors seem to prefer using distribution and version specific ABIs over the standard one.
Unfortunate but it's their decision. If they prefer rebuilding and repackaging, e.g. for very tight integration into the system, then that's what they are going to do






Member since:
2006-01-24
Since... forever?
Try compiling a C++ app on one linux distro and running it on another. Doesn't work, unless the distros in question track the same core debian release or something.
Try running an old linux app - say an old commercial game from Loki like Simcity 3000 or Civ CTP.
Doesn't work.
Binary compatibility just doesn't exist in the Linux world.
For all the blather about open standards, the Linux community doesn't give a crap about them when it comes to it's own core systems. e.g kernel and binary APIs