Linked by Thom Holwerda on Mon 23rd Jun 2008 16:51 UTC, submitted by sjvn
Thread beginning with comment 319645
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
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.
If you compile on newer distro and put it on older distro, even with all libraries, it won't work because of [gay]libc.
Forward compatibility is different than backward compatibility. The low level interfaces (glibc and especially the kernel) do not change very often at all, and distros generally ship older versions for a long time. You can't expect to build an app on a new distro and distribute it to something years out of date. However, if you build it on the old distro it will likely run on the new one as well. That's pretty much standard practice for software development.
>> [gay]libc
Yeah real mature.






Member since:
2005-09-21
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.