3 ms·
The idea with an ABI (an Application Binary Interface rather than an API) is that there is no need to re-compile, existing binaries still work since the binary
by DougBTX 7y ago
The idea with an ABI (an Application Binary Interface rather than an API) is that there is no need to re-compile, existing binaries still work since the binary interface stays the same.
- jcelerier 7y agoIs that still relevant though (or rather, is the cost / benefit ratio of ABI stability still worth it ?). My laptop from last year is able to bootstrap and build a full yocto system from gcc to the kernel to glibc to X11 to Qt5 in ~15 hours.
- gridlockd 7y agoThat's cute, but how long does it take to push that updated system out to your customers?
- jcelerier 7y ago> That's cute, but how long does it take to push that updated system out to your customers I have never seen a proprietary software that does not ship all its shared libraries along anyways - so, about the same time I would say ? eg. look at all the linux games that just come with the entire ubuntu 12.04 or 14.04 userspace.
- OskarS 7y agoOf course it's still relevant. As long as dynamic loading is relevant, stable ABIs are relevant. If someone finds a security bug in OpenSSL (Heartbleed, for instance), you only need a single update to the OpenSSL libs to fix every program that dynamically link it. But that only works if you have a stable ABI: otherwise, every single program would have to be recompiled to fix the bug.
- jcelerier 7y ago> But that only works if you have a stable ABI: otherwise, every single program would have to be recompiled to fix the bug. yes, and what I am saying is that in 2019, the cost of recompiling $everything is quite low.
- ihalip 7y agoThat's a very big cost for the end users, who'd have to download the equivalent of an official ISO release for each minor update to some base component. According to apt, thousands of packages depend on openssl.
- pjmlp 7y agoNot everyone has a top level computer, not everyone is an expert on rebuilding distributions from scratch, not everything is available as source code to build from, not every OS is a GNU/Linux clone.
- jcelerier 7y ago> Not everyone has a top level computer, not everyone is an expert on rebuilding distributions from scratch you aren't but your distro maintainer should be > not everything is available as source code to build from, and most software not available as source code actually do ship their dependencies because it would be madness to suppose that there will never be any ABI or API break at any point in the future > not every OS is a GNU/Linux clone GNU/Linux is actually the exception here - the two big others just ship and replace the whole OS on every major update (and I've heard that this was the case for minor windows update too nowadays, not sure how much this is true)