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.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,NICE_REPLY_A,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 3390 invoked from network); 17 Jul 2023 16:10:51 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 17 Jul 2023 16:10:51 -0000 Received: (qmail 15641 invoked by uid 550); 17 Jul 2023 16:10: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 15606 invoked from network); 17 Jul 2023 16:10:47 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zhasha.com; s=wirbelwind; t=1689610236; bh=9ze29rCZkp4kQOlUm7DNpxUDPlV1/IsRN3PUeq2HWig=; h=Date:From:To:Subject:In-Reply-To:References; b=txVxGl+4PdNFbisP+GhTeiFHDxT3sjWZ7hBQFuJFIzZ+P3uQjvp/gXM2zoaS3suiz lrLncf52FH4IWK9Pkmvohfb7eEEItYqXXlKFRYO1Iv1XVPRZ4IOCrL26q51+QW3L+u v8QNt/O60m6iX+NahUShMqvh6NH997HuqgAy21fw= Date: Mon, 17 Jul 2023 18:10:36 +0200 From: Joakim Sindholt To: musl@lists.openwall.com Message-Id: <20230717181036.51f6562acad0e50d4d474095@zhasha.com> In-Reply-To: References: <20230717011758.55d20eae6e60835c5c7fe954@killthe.net> <20230717152103.GK4163@brightrain.aerifal.cx> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [musl] musl -- FFS get your shit together, please On Mon, 17 Jul 2023 12:01:00 -0400, Jeffrey Walton wrote: > On Mon, Jul 17, 2023 at 11:21 AM Rich Felker wrote: > > > > On Mon, Jul 17, 2023 at 01:17:58AM -0500, Dave Blanchard wrote: > > > There's a lot to like about musl, but damn, there's some absolutely ridiculous aspects also: > > > > > > 1) How in the hell are you going to make a MAJOR change like > > > changing #ifdefs from defined(_LARGEFILE64_SOURCE) || > > > defined(_GNU_SOURCE) to just defined(_LARGEFILE64_SOURCE) in a PATCH > > > level increment, from 1.2.3 to 1.2.4? What the hell is wrong with > > > you? You just broke my entire build! Yet another patch had to be > > > created on my end to UNDO this crazy change; the only alternative > > > was patching half the packages on my system to fix their now-broken > > > build! Do you know NOTHING about proper versioning??? > > > > Our versioning system works like this: in x.y.z, > > > > - increment of x, likely to never happen, would indicate a completely > > different ABI > > > > - increment of y indicates a change whereby programs compiled for the > > new y, even without use of any new features added in new y, may not > > run with an older y. canonical example: time64. > > > > - increment of z indicates a change whereby programs built for the new > > z should still run on older z (modulo any bugs that might be present > > in the older version) as long as they're not using new interfaces > > introduced in the new z. > > > > All of these conditions are assuming the program used the public > > interfaces and did not poke at unspecified internals, etc.; if it did, > > all bets are off and any version change may be fully-breaking to the > > program. > > > > Note that all of these deal with ABI compatibility, not compile-time > > compatibility. > > To play devil's advocate... If a symbol in Musl disappears, then > shouldn't that be considered an ABI break? And then, shouldn't it > require a major or 'x' bump? > > It seems like Musl signed that contract when it first published a > symbol under _LARGEFILE64_SOURCE or _GNU_SOURCE. When the symbol > disappeared using one or the other define, then the contract was > broken. The symbols have only disappeared in the sense that you can't link new binaries to them because they're not in the symbol table. The dynamic linker resolves them at runtime as if the weak symbols still existed. This way a link test will fail but an old binary will still load properly.