From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/8620 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: musl and kernel headers [was Re: system-images 1.4.2: od is broken; bzip2 is missing] Date: Tue, 6 Oct 2015 10:30:18 -0400 Message-ID: <20151006143018.GN8645@brightrain.aerifal.cx> References: <5612925A.4070402@landley.net> <20151006014426.GL8645@brightrain.aerifal.cx> <561330C1.8070205@landley.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1444141869 1629 80.91.229.3 (6 Oct 2015 14:31:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 6 Oct 2015 14:31:09 +0000 (UTC) Cc: Denys Vlasenko , Aboriginal Linux , musl@lists.openwall.com To: Rob Landley Original-X-From: musl-return-8632-gllmg-musl=m.gmane.org@lists.openwall.com Tue Oct 06 16:30:58 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1ZjTGV-0007MA-CT for gllmg-musl@m.gmane.org; Tue, 06 Oct 2015 16:30:51 +0200 Original-Received: (qmail 7817 invoked by uid 550); 6 Oct 2015 14:30:49 -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 7738 invoked from network); 6 Oct 2015 14:30:34 -0000 Content-Disposition: inline In-Reply-To: <561330C1.8070205@landley.net> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:8620 Archived-At: On Mon, Oct 05, 2015 at 09:24:01PM -0500, Rob Landley wrote: > On 10/05/2015 08:44 PM, Rich Felker wrote: > > On Mon, Oct 05, 2015 at 10:08:10AM -0500, Rob Landley wrote: > > The cleaner approach is just avoiding including both the kernel > > headers and libc/userspace headers for the same things in the same > > file. In theory this may be hard in some cases, but I find that I can > > almost always fix these sorts of errors during a build by commenting > > out one or two #include lines. > > I am _deeply_ curious how you'd get linux/loop.h on a platform where you > need the 32 bit loopback structure definition without including the > kernel header. Sorry I wasn't clear on this; the meaning I intended to convey was including both kernel and libc/userspace headers for the same things. Network is the main area affected here. The kernel headers have fixed up all the gratuitous conflicts with userspace, but the big remaining ones are places where they want to define types with the exact same names, which mostly happens in network. So what I was trying to say is that programs using kernel network headers (legitimately for linux-specific stuff) are going to best avoid the risk of clashes by not including libc network headers in the same files. > Sadly, the kernel headers are exported for a _reason_. If I need to > syscall something you haven't wrapped, I need the _NR_ and it varies per > target. It's a thing. For syscalls we export all SYS_*/__NR_* macros (sys/syscall.h), but you still might need macro and struct definitions for arguments to the syscalls or ioctls. Rich