79 lines
3.3 KiB
Diff
79 lines
3.3 KiB
Diff
|
From 723bbfd8bdb76012a3da937c7499cf3c0b111dd5 Mon Sep 17 00:00:00 2001
|
|||
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|||
|
Date: Sat, 20 Aug 2016 11:13:56 +0200
|
|||
|
Subject: [PATCH] kernel_netlink.c: don't include <linux/if_bridge.h>
|
|||
|
MIME-Version: 1.0
|
|||
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|||
|
Including <linux/if_bridge.h> causes the inclusion of <linux/in6.h>,
|
|||
|
which defines 'struct in6_addr', also defined in <netinet/in.h>, causing
|
|||
|
a build failure with the musl C library:
|
|||
|
|
|||
|
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0,
|
|||
|
from kernel_netlink.c:42,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:32:8: error: redefinition of ‘struct in6_addr’
|
|||
|
struct in6_addr {
|
|||
|
^
|
|||
|
In file included from kernel_netlink.c:33:0,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: note: originally defined here
|
|||
|
struct in6_addr {
|
|||
|
^
|
|||
|
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0,
|
|||
|
from kernel_netlink.c:42,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:49:8: error: redefinition of ‘struct sockaddr_in6’
|
|||
|
struct sockaddr_in6 {
|
|||
|
^
|
|||
|
In file included from kernel_netlink.c:33:0,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: note: originally defined here
|
|||
|
struct sockaddr_in6 {
|
|||
|
^
|
|||
|
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0,
|
|||
|
from kernel_netlink.c:42,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:59:8: error: redefinition of ‘struct ipv6_mreq’
|
|||
|
struct ipv6_mreq {
|
|||
|
^
|
|||
|
In file included from kernel_netlink.c:33:0,
|
|||
|
from kernel.c:31:
|
|||
|
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: note: originally defined here
|
|||
|
struct ipv6_mreq {
|
|||
|
^
|
|||
|
|
|||
|
In order to address this, this patch removes the <linux/if_bridge.h>
|
|||
|
inclusion, and instead defines BRCTL_GET_BRIDGES to the appropriate
|
|||
|
value if it's not provided by the C library.
|
|||
|
|
|||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|||
|
---
|
|||
|
kernel_netlink.c | 6 +++++-
|
|||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|||
|
|
|||
|
diff --git a/kernel_netlink.c b/kernel_netlink.c
|
|||
|
index 4eadc39..1a5b3dd 100644
|
|||
|
--- a/kernel_netlink.c
|
|||
|
+++ b/kernel_netlink.c
|
|||
|
@@ -39,10 +39,14 @@ THE SOFTWARE.
|
|||
|
#include <sys/socket.h>
|
|||
|
#include <linux/netlink.h>
|
|||
|
#include <linux/rtnetlink.h>
|
|||
|
-#include <linux/if_bridge.h>
|
|||
|
#include <linux/fib_rules.h>
|
|||
|
#include <net/if_arp.h>
|
|||
|
|
|||
|
+/* From <linux/if_bridge.h> */
|
|||
|
+#ifndef BRCTL_GET_BRIDGES
|
|||
|
+#define BRCTL_GET_BRIDGES 1
|
|||
|
+#endif
|
|||
|
+
|
|||
|
#if(__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 5)
|
|||
|
#define RTA_TABLE 15
|
|||
|
#endif
|
|||
|
--
|
|||
|
2.7.4
|
|||
|
|