@@ -1,4 +1,4 @@
-From f3c574b27000fd887cee84ab47adf23f767cbea1 Mon Sep 17 00:00:00 2001
+From 4dc0613e229f6b4a57beb00dde14ef319a2dcad8 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Sat, 24 Aug 2024 15:32:25 +0200
Subject: [PATCH] include/libnetlink.h: add missing include for htobe64
new file mode 100644
@@ -0,0 +1,90 @@
+From 714291a63246cb3e6b86eb2a78fa84216d768a4b Mon Sep 17 00:00:00 2001
+From: Stephen Hemminger <stephen@networkplumber.org>
+Date: Tue, 10 Dec 2024 13:38:08 -0800
+Subject: [PATCH] ip: rearrange and prune header files
+
+The recent report of issues with missing limits.h impacting musl
+suggested looking at what files are and are not included in ip code.
+
+The standard practice is to put standard headers first, then system,
+then local headers. Used iwyu to get suggestions about missing
+and extraneous headers.
+
+Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=7e23da91fca6e5dedeb32a7d308cf20982e897c3]
+Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ ip/iplink.c | 13 +++++--------
+ ip/ipnetns.c | 19 +++++++++----------
+ 2 files changed, 14 insertions(+), 18 deletions(-)
+
+diff --git a/ip/iplink.c b/ip/iplink.c
+index e650a5c2..8df367ed 100644
+--- a/ip/iplink.c
++++ b/ip/iplink.c
+@@ -11,17 +11,14 @@
+ #include <fcntl.h>
+ #include <dlfcn.h>
+ #include <errno.h>
++#include <string.h>
++#include <strings.h>
++#include <limits.h>
++
+ #include <sys/socket.h>
++#include <arpa/inet.h>
+ #include <linux/if.h>
+-#include <linux/if_packet.h>
+ #include <linux/if_ether.h>
+-#include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+-#include <string.h>
+-#include <sys/ioctl.h>
+-#include <stdbool.h>
+-#include <linux/mpls.h>
+
+ #include "rt_names.h"
+ #include "utils.h"
+diff --git a/ip/ipnetns.c b/ip/ipnetns.c
+index 5c943400..a20cd8bc 100644
+--- a/ip/ipnetns.c
++++ b/ip/ipnetns.c
+@@ -1,21 +1,21 @@
+ /* SPDX-License-Identifier: GPL-2.0 */
+ #define _ATFILE_SOURCE
+-#include <sys/file.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/wait.h>
+-#include <sys/inotify.h>
+-#include <sys/mount.h>
+-#include <sys/syscall.h>
++
+ #include <stdio.h>
++#include <stdint.h>
+ #include <string.h>
+-#include <sched.h>
+ #include <fcntl.h>
+ #include <dirent.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <ctype.h>
+-#include <linux/limits.h>
++#include <limits.h>
++
++#include <sys/file.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/inotify.h>
++#include <sys/mount.h>
+
+ #include <linux/net_namespace.h>
+
+@@ -23,7 +23,6 @@
+ #include "list.h"
+ #include "ip_common.h"
+ #include "namespace.h"
+-#include "json_print.h"
+
+ static int usage(void)
+ {
deleted file mode 100644
@@ -1,76 +0,0 @@
-From 6a77abab92516e65f07f8657fc4e384c4541ce0e Mon Sep 17 00:00:00 2001
-From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
-Date: Sun, 22 Sep 2024 16:50:10 +0200
-Subject: [PATCH] bridge: mst: fix a musl build issue
-
-This patch fixes a compilation error raised by the bump to version 6.11.0
-in Buildroot using musl as the C library for the cross-compilation
-toolchain.
-
-After setting the CFLGAS
-
-ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
-IPROUTE2_CFLAGS += -D__UAPI_DEF_IN6_ADDR=0 -D__UAPI_DEF_SOCKADDR_IN6=0 \
- -D__UAPI_DEF_IPV6_MREQ=0
-endif
-
-to fix the following errors:
-
-In file included from ../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/arpa/inet.h:9,
- from ../include/libnetlink.h:14,
- from mst.c:10:
-../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: error: redefinition of 'struct in6_addr'
- 23 | struct in6_addr {
- | ^~~~~~~~
-In file included from ../include/uapi/linux/if_bridge.h:19,
- from mst.c:7:
-../include/uapi/linux/in6.h:33:8: note: originally defined here
- 33 | struct in6_addr {
- | ^~~~~~~~
-../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: error: redefinition of 'struct sockaddr_in6'
- 34 | struct sockaddr_in6 {
- | ^~~~~~~~~~~~
-../include/uapi/linux/in6.h:50:8: note: originally defined here
- 50 | struct sockaddr_in6 {
- | ^~~~~~~~~~~~
-../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: error: redefinition of 'struct ipv6_mreq'
- 42 | struct ipv6_mreq {
- | ^~~~~~~~~
-../include/uapi/linux/in6.h:60:8: note: originally defined here
- 60 | struct ipv6_mreq {
-
-I got this further errors
-
-../include/uapi/linux/in6.h:72:25: error: field 'flr_dst' has incomplete type
- 72 | struct in6_addr flr_dst;
- | ^~~~~~~
-../include/uapi/linux/if_bridge.h:711:41: error: field 'ip6' has incomplete type
- 711 | struct in6_addr ip6;
- | ^~~
-
-fixed by including the netinet/in.h header.
-
-Upstream-Status: Backport
-[https://kernel.googlesource.com/pub/scm/network/iproute2/iproute2/+/6a77abab92516e65f07f8657fc4e384c4541ce0e]
-
-Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- bridge/mst.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/bridge/mst.c b/bridge/mst.c
-index 873ca536..c8f7e660 100644
---- a/bridge/mst.c
-+++ b/bridge/mst.c
-@@ -4,6 +4,7 @@
- */
-
- #include <stdio.h>
-+#include <netinet/in.h>
- #include <linux/if_bridge.h>
- #include <net/if.h>
-
---
-2.39.5 (Apple Git-154)
-
deleted file mode 100644
@@ -1,59 +0,0 @@
-From 043ef90e2fa94397eb5c85330889ca4146a6d58a Mon Sep 17 00:00:00 2001
-From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
-Date: Sun, 22 Sep 2024 16:50:11 +0200
-Subject: [PATCH] bridge: mst: fix a further musl build issue
-
-This patch fixes the following build errors:
-
-In file included from mst.c:11:
-../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
- 80 | _PRINT_FUNC(tv, const struct timeval *)
- | ^~~~~~~
-../include/json_print.h:50:37: note: in definition of macro '_PRINT_FUNC'
- 50 | type value); \
- | ^~~~
-../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
- 80 | _PRINT_FUNC(tv, const struct timeval *)
- | ^~~~~~~
-../include/json_print.h:55:45: note: in definition of macro '_PRINT_FUNC'
- 55 | type value) \
- | ^~~~
-../include/json_print.h: In function 'print_tv':
-../include/json_print.h:58:48: error: passing argument 5 of 'print_color_tv' from incompatible pointer type [-Wincompatible-pointer-types]
- 58 | value); \
- | ^~~~~
- | |
- | const struct timeval *
-../include/json_print.h:80:1: note: in expansion of macro '_PRINT_FUNC'
- 80 | _PRINT_FUNC(tv, const struct timeval *)
- | ^~~~~~~~~~~
-../include/json_print.h:50:42: note: expected 'const struct timeval *' but argument is of type 'const struct timeval *'
- 50 | type value); \
- | ^
-../include/json_print.h:80:1: note: in expansion of macro '_PRINT_FUNC'
- 80 | _PRINT_FUNC(tv, const struct timeval *)
-
-Upstream-Status: Backport
-[https://kernel.googlesource.com/pub/scm/network/iproute2/iproute2/+/043ef90e2fa94397eb5c85330889ca4146a6d58a]
-
-Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- bridge/mst.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/bridge/mst.c b/bridge/mst.c
-index c8f7e660..fccb7fd6 100644
---- a/bridge/mst.c
-+++ b/bridge/mst.c
-@@ -4,6 +4,7 @@
- */
-
- #include <stdio.h>
-+#include <sys/time.h>
- #include <netinet/in.h>
- #include <linux/if_bridge.h>
- #include <net/if.h>
---
-2.39.5 (Apple Git-154)
-
similarity index 92%
rename from meta/recipes-connectivity/iproute2/iproute2_6.11.0.bb
rename to meta/recipes-connectivity/iproute2/iproute2_6.12.0.bb
@@ -13,14 +13,10 @@ DEPENDS = "flex-native bison-native iptables libcap"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
file://0001-include-libnetlink.h-add-missing-include-for-htobe64.patch \
+ file://0001-ip-rearrange-and-prune-header-files.patch \
"
-SRC_URI:append:libc-musl = "\
- file://0002-bridge-mst-fix-a-musl-build-issue.patch \
- file://0003-bridge-mst-fix-a-further-musl-build-issue.patch \
- "
-
-SRC_URI[sha256sum] = "1f795398a04aeaacd06a8f6ace2cfd913c33fa5953ca99daae83bb5c534611c3"
+SRC_URI[sha256sum] = "bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9"
inherit update-alternatives bash-completion pkgconfig