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 16760 invoked from network); 23 Sep 2020 16:08:40 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 23 Sep 2020 16:08:40 -0000 Received: (qmail 13426 invoked by uid 550); 23 Sep 2020 16:08:37 -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 13401 invoked from network); 23 Sep 2020 16:08:37 -0000 Date: Wed, 23 Sep 2020 12:08:24 -0400 From: Rich Felker To: James Y Knight Cc: musl@lists.openwall.com Message-ID: <20200923160824.GJ3265@brightrain.aerifal.cx> References: <4768019.hHWyC0TzgU@omega> <20200920135629.GI2947641@port70.net> <20200920171446.GB3265@brightrain.aerifal.cx> <2533200.g9kxISXj3W@omega> <20200922184610.GI3265@brightrain.aerifal.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] Re: OS detection wrong on Alpine Linux 3.10 On Wed, Sep 23, 2020 at 09:13:16AM -0400, James Y Knight wrote: > > > > >All I need to know is what version of Musl I am dealing with and I can > > >configure myself. > > > > Are you willing to maintain an #ifdef forest for all the versions of > > all the libcs and all the kernels your programs may be used with, so > > you can list exhaustively the available features in every configuration? > > > > At the risk of jumping in on a question asked of someone else: yes, > absolutely! (Not _all_ available features of course, just the ones > required.) > > There are generally not that many nonstandard features you'd want to use in > a typical program, and using an ifdef forest to implement an abstraction > layer around those couple items is just fine. I can't know whether you're "willing", but you're definitely not willing and able. "All the..." includes people's personal projects (from scratch or patches to existing ones) that you will never see, future systems that come into existence long past your involvement in the project or even your lifetime, etc. There is simply fundamentally no way to maintain and guarantee compatibility with an unbounded, as-yet-unknown set of standards-conforming systems short of either (1) only using the standard-specified properties, or (2) testing for any non-standard-specified properties you want to use. As for "willing", most people who say they're willing to do this are actually only willing to do it for the 3-5 most popular systems at the time they work on the project; they never even hear about problems they created on all the other minority systems since the few affected users tend to assume (accurately, most often) that an upstream that thinks it's ok to hard-code #ifdef-trees won't care about supporting them. Rich