From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28683 invoked from network); 28 Jul 2020 08:40:53 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 28 Jul 2020 08:40:53 -0000 Received: (qmail 12221 invoked by uid 550); 28 Jul 2020 08:40:48 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 12195 invoked from network); 28 Jul 2020 08:40:48 -0000 From: Florian Weimer To: Rich Felker Cc: musl@lists.openwall.com References: <1667998.jfqktxE8f0@localhost> <20200727160326.GN6949@brightrain.aerifal.cx> <2983406.IqFZyr3sfq@localhost> <20200727215001.GO6949@brightrain.aerifal.cx> Date: Tue, 28 Jul 2020 10:40:35 +0200 In-Reply-To: <20200727215001.GO6949@brightrain.aerifal.cx> (Rich Felker's message of "Mon, 27 Jul 2020 17:50:01 -0400") Message-ID: <871rkwuj5o.fsf@mid.deneb.enyo.de> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [musl] friendly errors for ABI mismatch * Rich Felker: > Symbol versioning, if used, changes this somewhat by binding to a > particular version string (which by convention usually contains a > library name too) *if* the library used to resolve it at runtime has > versioning, but for very good reasons we have not used and do not want > to use symbol versioning. (In short, like here it's an "approximate > solution" for most things people want to use it for, doesn't actually > achieve those things precisely, messes other things up in the process, > and has really really bad tooling support.) I think you should look at this from a different angle. You could use it just to produce an error message in case there is an ABI change, but not for backwards compatibility with old binaries or enabling otherwise ABI-incompatible changes without rebuilding the world. With this approach, all symbols would have a single, default version. New releases do not add new symbol version strings in general, except when there is something like time64_t, in which the default (and only version) for those symbols changes. Over time, you will end up with a few symbol versions, but at a much slower pace than what glibc does.