commit: 68b495f5e75cc899033bc765a51ad1c8fd8b96e0 Author: Louis Sautier <sautier.louis <AT> gmail <DOT> com> AuthorDate: Sat Apr 6 22:18:59 2024 +0000 Commit: Ben Kohler <bkohler <AT> gentoo <DOT> org> CommitDate: Fri Apr 26 17:13:22 2024 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=68b495f5
initramfs: fix busybox 1.36.1 build witk kernel 6.8 Patch taken from https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8ad860a1ed9aa92ada. Bug: https://bugs.gentoo.org/928573 Signed-off-by: Louis Sautier <sautier.louis <AT> gmail.com> Closes: https://github.com/gentoo/genkernel/pull/59 Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org> .../busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch new file mode 100644 index 0000000..7e7b873 --- /dev/null +++ b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch @@ -0,0 +1,53 @@ +http://lists.busybox.net/pipermail/busybox/2024-March/090678.html +https://bugs.gentoo.org/928573 + +Linux v6.8-rc1 removed the definitions related to CBQ making tc fail to +build. Add some #ifdefs to handle this missing support. +--- a/networking/tc.c ++++ b/networking/tc.c +@@ -231,6 +231,13 @@ static int cbq_parse_opt(int argc, char **argv, struct nlmsghdr *n) + return 0; + } + #endif ++ ++#ifndef TCA_CBQ_MAX ++/* ++ * Linux v6.8-rc1 removed the uapi definitions for CBQ. ++ * See https://git.kernel.org/linus/33241dca48626 ++ */ ++#else + static int cbq_print_opt(struct rtattr *opt) + { + struct rtattr *tb[TCA_CBQ_MAX+1]; +@@ -322,6 +329,7 @@ static int cbq_print_opt(struct rtattr *opt) + done: + return 0; + } ++#endif + + static FAST_FUNC int print_qdisc( + const struct sockaddr_nl *who UNUSED_PARAM, +@@ -372,8 +380,10 @@ static FAST_FUNC int print_qdisc( + int qqq = index_in_strings(_q_, name); + if (qqq == 0) { /* pfifo_fast aka prio */ + prio_print_opt(tb[TCA_OPTIONS]); ++#ifdef TCA_CBQ_MAX + } else if (qqq == 1) { /* class based queuing */ + cbq_print_opt(tb[TCA_OPTIONS]); ++#endif + } else { + /* don't know how to print options for this qdisc */ + printf("(options for %s)", name); +@@ -442,9 +452,11 @@ static FAST_FUNC int print_class( + int qqq = index_in_strings(_q_, name); + if (qqq == 0) { /* pfifo_fast aka prio */ + /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/ ++#ifdef TCA_CBQ_MAX + } else if (qqq == 1) { /* class based queuing */ + /* cbq_print_copt() is identical to cbq_print_opt(). */ + cbq_print_opt(tb[TCA_OPTIONS]); ++#endif + } else { + /* don't know how to print options for this class */ + printf("(options for %s)", name); +
