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 16790 invoked from network); 27 Jul 2020 21:17:13 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 27 Jul 2020 21:17:13 -0000 Received: (qmail 7398 invoked by uid 550); 27 Jul 2020 21:17:09 -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 7380 invoked from network); 27 Jul 2020 21:17:08 -0000 From: Florian Weimer To: Ariadne Conill Cc: musl@lists.openwall.com References: <1667998.jfqktxE8f0@localhost> Date: Mon, 27 Jul 2020 23:16:56 +0200 In-Reply-To: <1667998.jfqktxE8f0@localhost> (Ariadne Conill's message of "Mon, 27 Jul 2020 09:27:28 -0600") Message-ID: <87mu3kd5fb.fsf@mid.deneb.enyo.de> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [musl] friendly errors for ABI mismatch * Ariadne Conill: > On 32-bit systems, musl 1.2 has a new ABI (due to time64). This > results in programs built against musl 1.2 failing to run against > musl 1.1. That part is fine, but you get an error message about > being unable to relocate symbols, which is not really insightful if > you don't know about the ABI break. Are you concerned about static linking across musl versions, or the dynamic run-time behavior? There are limits what you can do without changing the entire toolchain. > glibc, on the other hand, has a minimum version specified in every > binary, and prints an error message saying the glibc is too old if > this situation is encountered. Do you mean symbol versioning? It's a bit more flexible than that. Symbol versions are only required if a symbol with that version is actually used. And the symbol version does not have to be a number or (in the GNU implementation) imply some sort of linear order. Using symbol versioning has the advantage that the rest of the toolchain already supports it.