From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262383AbUK3WuJ (ORCPT ); Tue, 30 Nov 2004 17:50:09 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262376AbUK3WuJ (ORCPT ); Tue, 30 Nov 2004 17:50:09 -0500 Received: from waste.org ([209.173.204.2]:48548 "EHLO waste.org") by vger.kernel.org with ESMTP id S262383AbUK3Wtk (ORCPT ); Tue, 30 Nov 2004 17:49:40 -0500 Date: Tue, 30 Nov 2004 14:48:51 -0800 From: Matt Mackall To: Linus Torvalds Cc: David Woodhouse , Alexandre Oliva , Paul Mackerras , Greg KH , Matthew Wilcox , David Howells , hch@infradead.org, linux-kernel@vger.kernel.org, libc-hacker@sources.redhat.com Subject: Re: [RFC] Splitting kernel headers and deprecating __KERNEL__ Message-ID: <20041130224851.GH8040@waste.org> References: <16810.24893.747522.656073@cargo.ozlabs.ibm.com> <1101828924.26071.172.camel@hades.cambridge.redhat.com> <1101832116.26071.236.camel@hades.cambridge.redhat.com> <1101837135.26071.380.camel@hades.cambridge.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 30, 2004 at 10:21:52AM -0800, Linus Torvalds wrote: > > > On Tue, 30 Nov 2004, David Woodhouse wrote: > > > > The idea in the proposal which David posted, which seemed perfectly > > specific enough to me, was to move all the user-visible parts to > > separate header files in a separate directory. > > You call _that_ specific? > > Hell no. You need to do it without breaking existing uses, as noted > earlier, and it's not specific at all. "all user visible parts" is a big > undertaking, if you can't make it smaller than that, then forget about it. So we follow dhowell's plan with the following additions: a) during the transition, include/linux/foo.h includes include/user/foo.h if it exists and similarly for asm-* b) when include/user is deemed sufficiently populated, a flag day is declared and links from /usr/include are switched to them c) #define __KERNEL__ is dropped from the compile d) extraneous include/user/* includes are removed from include/linux (though they'll often make perfect sense) Step b) may be a long time in coming, but for interfaces where kernel headers are frequently abused, we can start feeling benefits. > Basic rule in kernel engineering: you don't just rewrite the world. You do > it in incremental independent steps. Even so, it's sometimes important for everyone to agree on a destination before they set out.. -- Mathematics is the supreme nostalgia of our time.