]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
busybox: Fix tc applet build when using kernel 6.8+
authorKhem Raj <raj.khem@gmail.com>
Sun, 14 Jul 2024 16:59:04 +0000 (09:59 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 18 Jul 2024 16:19:03 +0000 (17:19 +0100)
We now have 6.9 kernel headers in master which means
busybox builds with CONFIG_TC will fail to build due
to CBQ being dropped in kernel 6.8+

Apply a fix which is reported upstream

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch [new file with mode: 0644]
meta/recipes-core/busybox/busybox_1.36.1.bb

diff --git a/meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch b/meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch
new file mode 100644 (file)
index 0000000..80cbc73
--- /dev/null
@@ -0,0 +1,61 @@
+Remove CBQ functionality from tc
+
+6.8+ kernel has dropped CBQ support [1], Now that OE uses 6.9 for
+kernel-headers means we are hitting the undefined symbol
+TCA_CBQ_MAX [2]  
+
+[1] https://github.com/torvalds/linux/commit/33241dca486264193ed68167c8eeae1fb197f3df
+[2] https://bugs.busybox.net/show_bug.cgi?id=15934
+
+Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15931]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff -up busybox-1.36.1/networking/tc.c.no-cbq busybox-1.36.1/networking/tc.c
+--- busybox-1.36.1/networking/tc.c.no-cbq      2024-01-29 10:24:09.135082923 -0500
++++ busybox-1.36.1/networking/tc.c     2024-01-29 10:28:12.009502552 -0500
+@@ -31,7 +31,7 @@
+ //usage:      "qdisc [handle QHANDLE] [root|"IF_FEATURE_TC_INGRESS("ingress|")"parent CLASSID]\n"
+ /* //usage: "[estimator INTERVAL TIME_CONSTANT]\n" */
+ //usage:      "       [[QDISC_KIND] [help|OPTIONS]]\n"
+-//usage:      "       QDISC_KIND := [p|b]fifo|tbf|prio|cbq|red|etc.\n"
++//usage:      "       QDISC_KIND := [p|b]fifo|tbf|prio|red|etc.\n"
+ //usage:      "qdisc show [dev STRING]"IF_FEATURE_TC_INGRESS(" [ingress]")"\n"
+ //usage:      "class [classid CLASSID] [root|parent CLASSID]\n"
+ //usage:      "       [[QDISC_KIND] [help|OPTIONS] ]\n"
+@@ -230,7 +230,7 @@ static int cbq_parse_opt(int argc, char
+ {
+       return 0;
+ }
+-#endif
++
+ static int cbq_print_opt(struct rtattr *opt)
+ {
+       struct rtattr *tb[TCA_CBQ_MAX+1];
+@@ -322,6 +322,7 @@ static int cbq_print_opt(struct rtattr *
+  done:
+       return 0;
+ }
++#endif
+ static FAST_FUNC int print_qdisc(
+               const struct sockaddr_nl *who UNUSED_PARAM,
+@@ -373,7 +374,8 @@ static FAST_FUNC int print_qdisc(
+               if (qqq == 0) { /* pfifo_fast aka prio */
+                       prio_print_opt(tb[TCA_OPTIONS]);
+               } else if (qqq == 1) { /* class based queuing */
+-                      cbq_print_opt(tb[TCA_OPTIONS]);
++                      /* cbq_print_opt(tb[TCA_OPTIONS]); */
++                      printf("cbq not supported");
+               } else {
+                       /* don't know how to print options for this qdisc */
+                       printf("(options for %s)", name);
+@@ -444,7 +446,8 @@ static FAST_FUNC int print_class(
+                       /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
+               } else if (qqq == 1) { /* class based queuing */
+                       /* cbq_print_copt() is identical to cbq_print_opt(). */
+-                      cbq_print_opt(tb[TCA_OPTIONS]);
++                      /* cbq_print_opt(tb[TCA_OPTIONS]); */
++                      printf("cbq not supported");
+               } else {
+                       /* don't know how to print options for this class */
+                       printf("(options for %s)", name);
index 7ce57bb0d0073aa97235afbff6cd6bf223bea21f..67bc5c0cadd094aaeb37cf1355bfedbe45ffee2d 100644 (file)
@@ -52,6 +52,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://CVE-2021-42380.patch \
            file://0001-awk-fix-segfault-when-compiled-by-clang.patch \
            file://CVE-2023-42363.patch \
+           file://busybox-1.36.1-no-cbq.patch \
            "
 SRC_URI:append:libc-musl = " file://musl.cfg "
 # TODO http://lists.busybox.net/pipermail/busybox/2023-January/090078.html