From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/5077 Path: news.gmane.org!not-for-mail From: Rob Landley Newsgroups: gmane.linux.lib.musl.general Subject: Re: __xmknod, __sysv_signal Date: Wed, 07 May 2014 05:18:30 -0500 Message-ID: <536A0876.5010101@landley.net> References: <20140419025204.GS26358@brightrain.aerifal.cx> <20140501003228.GQ26358@brightrain.aerifal.cx> <20140507031740.GC26963@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1399457933 23504 80.91.229.3 (7 May 2014 10:18:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 7 May 2014 10:18:53 +0000 (UTC) To: musl@lists.openwall.com, dalias@libc.org Original-X-From: musl-return-5083-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 07 12:18:48 2014 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Whyw3-0005jy-0M for gllmg-musl@plane.gmane.org; Wed, 07 May 2014 12:18:47 +0200 Original-Received: (qmail 3392 invoked by uid 550); 7 May 2014 10:18:46 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 3383 invoked from network); 7 May 2014 10:18:46 -0000 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=+Mtv0afgK8m7a6dFNNFS1+f5ZhqXH4aEOYbnf8JZf2I=; b=D/ZLu7jfNyxN0oiXrD3Fpa8s/XJKX3p4yTie0BE8pzmeEA56J2ztJ2lFsPS+5NEE1l sCZ2jPRvCRx3dobgA18nOA/fuv4OgKaE8MYf17noV4Enrgz3xWZ6ykx31R+BtaGpGmzu moggZewftqIENxo+yNP6HGNYwBPlLLvpjmlDrWnDoLsbhf/cBgdMb4JeNJUJw81Yups2 hhSR583RMZCVdvbQDJelKnw+3XsPH0u/tL1PuvjrS3PcN7B/pN6MMabxrikkJNWQCi24 NEtbIc4theQG633Y/InkhS967OfOCSorAN+RddkXg43ZG6tzsKmimS/C1eGufaRYMnRt KPcA== X-Gm-Message-State: ALoCoQmLI8ypQNiX2pRTTO63ykjLn3Hxq0fEUaI81iA7A4pPvmcE4tD+V4vgsiSdOEEVaetyEY2U X-Received: by 10.182.42.228 with SMTP id r4mr43992682obl.20.1399457913784; Wed, 07 May 2014 03:18:33 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 In-Reply-To: <20140507031740.GC26963@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:5077 Archived-At: On 05/06/14 22:17, Rich Felker wrote: > On Tue, May 06, 2014 at 11:55:48AM -0500, M Farkas-Dyck wrote: >> What is musl's general policy on ABI compat? The FAQ says solely that >> "musl aims for a degree of feature-compatibility", not what degree. Is >> full binary compatibility with glibc the goal? > > While I don't think it's spelled out anywhere, the hope is to make it > so any strictly conforming POSIX program build against glibc also > works with musl dropped in. Programs using extensions that musl also > provides should work too. Programs using glibc features that musl does > not provide, or depending on glibc bugs, are not intended to be > supported. > >> If we mean to include such, we ought to choose where to keep the code first. > > Similar things are scattered here and there; see the junk in > src/ctype. Given that: #ifdef __MUSL__ #include #endif is off the table because musl is the platonic ideal C library, anonymous and infinite, and the idea of having musl-specific idiosynrasies that aren't necessarily considered the default (let alone building software for other libraries with 90% market share and wildly different behavior) will never come up in practice... There's a gnu extension called #include_next that lets you have a second set of headers inserted before the first set. It is, of course, a gnu extension. The library side seems easy enough to deal with via some sort of -lcrap added to the build, if you don't want it in libc itself. Or you could have a "./configure --legacy" to selectively enable this sort of stuff in libc.so and the headers, and then require people to use something like autoconf to determine whether or not this instance of libc was built with that because a #define would be coddling them. Rob