From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/13866 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: ABI compatibility between versions Date: Mon, 25 Feb 2019 19:33:53 -0500 Message-ID: <20190226003353.GP23599@brightrain.aerifal.cx> References: Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="21498"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.5.21 (2010-09-15) Cc: musl@lists.openwall.com To: Alexander Revin Original-X-From: musl-return-13882-gllmg-musl=m.gmane.org@lists.openwall.com Tue Feb 26 01:34:11 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1gyQhH-0005TM-3V for gllmg-musl@m.gmane.org; Tue, 26 Feb 2019 01:34:11 +0100 Original-Received: (qmail 13507 invoked by uid 550); 26 Feb 2019 00:34:08 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 13481 invoked from network); 26 Feb 2019 00:34:07 -0000 Content-Disposition: inline In-Reply-To: Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:13866 Archived-At: On Tue, Feb 26, 2019 at 12:18:06AM +0100, Alexander Revin wrote: > Hi all, > > I know this have been briefly discussed here before, but still: does > musl guarantee in some way that executable/library compiled against > one musl version will work with another (for example, 1.18 and 1.21) > ? > > I remember there were concerns against embedding versioning > information in musl like glibc does, but is there a way to somehow > ensure the stability between releases? It guarantees that there is no ABI mismatch. That's not entirely the same as guaranteeing that it will work. If the application was relying on a bug in an old version to function, or was poking at some accidentally-exposed libc internals not defined as a public interface, it's possible that updating libc.so will expose this bug in the application. This is different from the glibc approach, which is to use symbol versioning to attempt to retain "bug-compatibility" with the version of glibc the application was linked with. Such a system forces new application binaries that want to be able to run on systems with old glibc to link against the old glibc, and thereby get the buggy behaviors even if they're running on a system without the bugs. Myself and most of the musl community I'm aware of consider this entirely unreasonable, and that's why musl doesn't do it. Rich