Hi, On Mon, Nov 15, 2010 at 5:41 PM, David Laight <da...@l8s.co.uk> wrote: > On Mon, Nov 15, 2010 at 08:50:34AM +0000, David Holland wrote: >> On Mon, Nov 15, 2010 at 02:48:29PM +0900, SODA Noriyuki wrote: >> > Well, there is another thing which has to be considered. That is >> > name space pollution. >> > Header files which are exported to userland (for userland visible APIs) >> > should not export random symbols. Only symbols which are defined as >> > the interface of the header file are allowed to be exported. >> >> Indeed. Properly speaking though, headers that are exported to >> userland should define only the precise symbols that userland needs; >> kernel-only material should be kept elsewhere. > > One start would be to add a sys/proc_internal.h so that sys/proc > can be reduced to only stuff that userspace and some kernel parts > are really expected to use. > For the record, Linux kernels do sanitize their header before installation. One of the tools (unifdef) used still has a
__IDSTRING(NetBSD, "$NetBSD: unifdef.c,v 1.8 2000/07/03 02:51:36 matt Exp $"); and __FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05/21 09:55:09 ru Exp $"); so I guess it should already be in the tree, but maybe not the latest version. It is ran with "-U__KERNEL__" by a headers install script, they wrote it in perl, but there it is not doing anything special sed(1) would not do. - Arnaud