new file mode 100644
@@ -0,0 +1,73 @@
+From 0359ee6dc57ee8aa21a3f0f7404422c0f9372d3a Mon Sep 17 00:00:00 2001
+From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Date: Sun, 22 Sep 2024 14:00:42 +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.
+
+Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Upstream: https://patchwork.kernel.org/project/netdevbpf/patch/20240922145011.2104040-1-dario.binacchi@amarulasolutions.com/
+---
+ bridge/mst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/bridge/mst.c b/bridge/mst.c
+index 873ca5369fd6..c8f7e6606c3c 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.43.0
+
new file mode 100644
@@ -0,0 +1,56 @@
+From 62c4dfff5ff596984ece7960fba49b05d69f37a7 Mon Sep 17 00:00:00 2001
+From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Date: Sun, 22 Sep 2024 14:11:18 +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 *)
+
+Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Upstream: https://patchwork.kernel.org/project/netdevbpf/patch/20240922145011.2104040-2-dario.binacchi@amarulasolutions.com/
+---
+ bridge/mst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/bridge/mst.c b/bridge/mst.c
+index c8f7e6606c3c..fccb7fd68140 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.43.0
+
@@ -1,3 +1,3 @@
# From https://kernel.org/pub/linux/utils/net/iproute2/sha256sums.asc
-sha256 91a62f82737b44905a00fa803369c447d549e914e9a2a4018fdd75b1d54e8dce iproute2-6.10.0.tar.xz
+sha256 1f795398a04aeaacd06a8f6ace2cfd913c33fa5953ca99daae83bb5c534611c3 iproute2-6.11.0.tar.xz
sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING
@@ -4,7 +4,7 @@
#
################################################################################
-IPROUTE2_VERSION = 6.10.0
+IPROUTE2_VERSION = 6.11.0
IPROUTE2_SOURCE = iproute2-$(IPROUTE2_VERSION).tar.xz
IPROUTE2_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/net/iproute2
IPROUTE2_DEPENDENCIES = host-bison host-flex host-pkgconf \
The building test using musl as the C library for the cross-compilation toolchain raised errors that required the application of two additional patches. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> --- Changes v1 -> v2: - Drop changes in .mk. After applying the patches they are not required anymore. - Update commit message. ...04-bridge-mst-fix-a-musl-build-issue.patch | 73 +++++++++++++++++++ ...e-mst-fix-a-further-musl-build-issue.patch | 56 ++++++++++++++ package/iproute2/iproute2.hash | 2 +- package/iproute2/iproute2.mk | 2 +- 4 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 package/iproute2/0004-bridge-mst-fix-a-musl-build-issue.patch create mode 100644 package/iproute2/0005-bridge-mst-fix-a-further-musl-build-issue.patch