From: "H. Peter Anvin" <hpa@zytor.com>
To: linux-kernel <linux-kernel@vger.kernel.org>,
Mike Frysinger <vapier.adi@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Subject: <linux/socket.h>, <linux/stat.h> breakage: AF_* constants are part of ABI definition
Date: Mon, 19 Feb 2007 13:06:28 -0800 [thread overview]
Message-ID: <45DA1154.9020601@zytor.com> (raw)
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__.
The comment that is included:
[PATCH] scrub non-__GLIBC__ checks in linux/socket.h and
linux/stat.h
Userspace should be worrying about userspace, so having the socket.h
and stat.h pollute the namespace in the non-glibc case is wrong and
pretty much prevents any other libc from utilizing these headers
sanely unless they set up the __GLIBC__ define themselves (which
sucks)
... seems to imply that virtually nothing out of these files should be
"sanely" utilized, but why, pray tell, include them at all? The balance
of these files is about 10 lines.
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.
-hpa
next reply other threads:[~2007-02-19 21:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-19 21:06 H. Peter Anvin [this message]
2007-02-22 11:11 ` <linux/socket.h>, <linux/stat.h> breakage: AF_* constants are part of ABI definition David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45DA1154.9020601@zytor.com \
--to=hpa@zytor.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=vapier.adi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.