2005-02-13 16:39:16

by Nix

[permalink] [raw]
Subject: [PATCH] linux-libc-headers-2.6.10.0: if_tunnel.h relies on byteorder.h having been included

In iproute2, ip/iptunnel.c says:

#include <linux/if.h>
#include <linux/if_arp.h>
#include <linux/ip.h>
#include <linux/if_tunnel.h>

Now the original Linux kernel includes byteorder.h as a side-effect of
including netdevice.h, which it does inside a __KERNEL__ ifdef when
if_arp.h is included.

I think it makes more sense to include it in those headers that actually
use the __constant_htons() macro, viz:

diff -durN 2.6.10.0-orig/include/linux/if_pppox.h 2.6.10.0/include/linux/if_pppox.h
--- 2.6.10.0-orig/include/linux/if_pppox.h 2004-10-31 19:55:51.000000000 +0000
+++ 2.6.10.0/include/linux/if_pppox.h 2005-02-13 16:28:58.000000000 +0000
@@ -21,6 +21,7 @@
#include <asm/types.h>
#include <endian.h>
#include <byteswap.h>
+#include <asm/byteorder.h>

/* For user-space programs to pick up these definitions
* which they wouldn't get otherwise without defining __KERNEL__
diff -durN 2.6.10.0-orig/include/linux/if_tunnel.h 2.6.10.0/include/linux/if_tunnel.h
--- 2.6.10.0-orig/include/linux/if_tunnel.h 2004-10-31 19:55:26.000000000 +0000
+++ 2.6.10.0/include/linux/if_tunnel.h 2005-02-13 16:28:35.000000000 +0000
@@ -4,6 +4,7 @@
#include <linux/if.h>
#include <linux/ip.h>
#include <asm/types.h>
+#include <asm/byteorder.h>

#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1)
diff -durN 2.6.10.0-orig/include/linux/sctp.h 2.6.10.0/include/linux/sctp.h
--- 2.6.10.0-orig/include/linux/sctp.h 2005-01-08 14:03:26.000000000 +0000
+++ 2.6.10.0/include/linux/sctp.h 2005-02-13 16:29:36.000000000 +0000
@@ -53,6 +53,7 @@

#include <linux/in.h> /* We need in_addr. */
#include <linux/in6.h> /* We need in6_addr. */
+#include <asm/byteorder.h>


/* Section 3.1. SCTP Common Header Format */


(With this patch, the header stands alone, and iproute2 compiles again.)

--
Synapsids unite! You have nothing to lose but your eggshells!


2005-02-13 21:09:53

by Mariusz Mazur

[permalink] [raw]
Subject: Re: [PATCH] linux-libc-headers-2.6.10.0: if_tunnel.h relies on byteorder.h having been included

On niedziela 13 luty 2005 17:38, Nix wrote:
---snip---

Applied, thanks. Though I believe CCing such mails to lkml is kind of
pointless.


--
In the year eighty five ten
God is gonna shake his mighty head
He'll either say,
"I'm pleased where man has been"
Or tear it down, and start again