Re: <linux/socket.h>, <linux/stat.h> breakage: AF_* constants arepart of ABI definition

From: David Miller
Date: Thu Feb 22 2007 - 06:12:26 EST


From: "H. Peter Anvin" <hpa@xxxxxxxxx>
Date: Mon, 19 Feb 2007 13:06:28 -0800

> In the current git tree, commit 57a87bb0720a5cf7a9ece49a8c8ed288398fd1bb
> removes any way to automatically extracting a whole lot of ABI constants
> from the kernel headers, especially AF_* and the various S_* constants.
>
> Furthermore, the patch breaks <linux/in.h> which uses sa_family_t, which
> is now defined under __KERNEL__.
...
> This patch breaks klibc in ways that are painfully hard to fix, and
> *definitely* cannot be fixed by anything less than replication of all
> these definitions, which is exactly the Wrong Thing[TM].
>
> A much better solution (or complement) would be something like:
>
> #if defined(__KERNEL__) || defined(__KHDR_CONSTANTS)
>
> We could have __KHDR_CONSTANTS for the AF_* constants and __KHDR_MACROS
> for the various macros (cmsg et al). That way the userspace library can
> ask for what it wants.

I'll think about what to do about this, thanks for pointing out
the problem.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/