From: Dan Kegel <dank@kegel.com>
To: trivial@rustcorp.com.au,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [patch] byteorder.h, ntohl, and compiling userspace programs
Date: Fri, 31 May 2002 00:15:25 -0700 [thread overview]
Message-ID: <3CF7230D.47EDC94C@kegel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 903 bytes --]
On 5/14, I wrote:
> Dimi Shahbaz wrote:
> > I'm trying to build glibc ...
> > [but get a compile error:]
> > ../inet/netinet/in.h:259: parse error before '(' token
> > [caused by linux's #define of ntohl when compiling glibc's
> > function prototype for ntohl]
>
> I think the conflict is with the ntohl macros defined in
> /usr/src/linux/include/linux/byteorder/generic.h
>
> These days, I don't see why the Linux kernel headers
> should be defining ntohl for userspace; libc's headers
> do that. So how about simplifying generic.h so it
> only does anything when compiling the kernel:
Here's that patch again (MIME this time, so tabs don't get
lost by my silly gui mailer); applies cleanly against against 2.4.19-pre8.
Nobody commented on it last time I posted it, and it does
make compiling gcc easier, so I guess that makes it trivial patch
monkey fodder. Or am I making a silly mistake?
- Dan
[-- Attachment #2: htonl.patch --]
[-- Type: text/plain, Size: 1405 bytes --]
--- linux/include/linux/byteorder/generic.h.orig Tue May 14 10:02:49 2002
+++ linux/include/linux/byteorder/generic.h Tue May 14 10:06:48 2002
@@ -123,6 +123,7 @@
#endif
+#if defined(__KERNEL__)
/*
* Handle ntohl and suches. These have various compatibility
* issues - like we want to give the prototype even though we
@@ -146,17 +147,11 @@
* Do the prototypes. Somebody might want to take the
* address or some such sick thing..
*/
-#if defined(__KERNEL__) || (defined (__GLIBC__) && __GLIBC__ >= 2)
extern __u32 ntohl(__u32);
extern __u32 htonl(__u32);
-#else
-extern unsigned long int ntohl(unsigned long int);
-extern unsigned long int htonl(unsigned long int);
-#endif
extern unsigned short int ntohs(unsigned short int);
extern unsigned short int htons(unsigned short int);
-
#if defined(__GNUC__) && (__GNUC__ >= 2) && defined(__OPTIMIZE__)
#define ___htonl(x) __cpu_to_be32(x)
@@ -164,17 +159,14 @@
#define ___ntohl(x) __be32_to_cpu(x)
#define ___ntohs(x) __be16_to_cpu(x)
-#if defined(__KERNEL__) || (defined (__GLIBC__) && __GLIBC__ >= 2)
#define htonl(x) ___htonl(x)
#define ntohl(x) ___ntohl(x)
-#else
-#define htonl(x) ((unsigned long)___htonl(x))
-#define ntohl(x) ((unsigned long)___ntohl(x))
-#endif
#define htons(x) ___htons(x)
#define ntohs(x) ___ntohs(x)
#endif /* OPTIMIZE */
+#endif /* KERNEL */
+
#endif /* _LINUX_BYTEORDER_GENERIC_H */
next reply other threads:[~2002-05-31 7:14 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-31 7:15 Dan Kegel [this message]
[not found] <3CE06DC6.4080707@ixiacom.com>
2002-05-14 17:15 ` [patch] byteorder.h, ntohl, and compiling userspace programs Dan Kegel
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=3CF7230D.47EDC94C@kegel.com \
--to=dank@kegel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=trivial@rustcorp.com.au \
/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.