The reason is that the CBQ queuing discipline was removed from the Linux
kernel some time ago.
I you want to keep the tc command you can try this patch:
https://build.opensuse.org/projects/openSUSE:Factory/packages/busybox/files/tc-no-TCA_CBQ.patch?expand=1

Regards,
Radoslav

On Fri, May 23, 2025 at 7:33 AM Abothula Pavan Kumar <
[email protected]> wrote:

> Thank you Jeff, it worked.
>
> On Thu, 22 May 2025 at 22:56, Jeff Pohlmeyer <[email protected]>
> wrote:
>
>> As a workaround, you can try disabling "tc".  (Under networking->tc in
>> menuconfig, or CONFIG_TC in .config).
>> - Jeff
>>
>>
>> On Thu, May 22, 2025 at 12:08 PM Abothula Pavan Kumar
>> <[email protected]> wrote:
>> >
>> > Hi,
>> > I'm running into multiple errors while trying to build busybox v1.36.1
>> on Ubuntu 24.04.
>> >
>> >   CC      coreutils/realpath.o
>> > networking/tc.c: In function ‘cbq_print_opt’:
>> > networking/tc.c:236:27: error: ‘TCA_CBQ_MAX’ undeclared (first use in
>> this function); did you mean ‘TCA_CBS_MAX’?
>> >   236 |         struct rtattr *tb[TCA_CBQ_MAX+1];
>> >       |                           ^~~~~~~~~~~
>> >       |                           TCA_CBS_MAX
>> > networking/tc.c:236:27: note: each undeclared identifier is reported
>> only once for each function it appears in
>> > miscutils/watchdog.c: In function ‘watchdog_main’:
>> >   CC      util-linux/volume_id/ubifs.o
>> > miscutils/watchdog.c:161:17: warning: ignoring return value of ‘write’
>> declared with attribute ‘warn_unused_result’ [-Wunused-result]
>> >   161 |                 write(3, "", 1); /* write zero byte */
>> >       |                 ^~~~~~~~~~~~~~~
>> > miscutils/watchdog.c: In function ‘shutdown_watchdog’:
>> > miscutils/watchdog.c:71:9: warning: ignoring return value of ‘write’
>> declared with attribute ‘warn_unused_result’ [-Wunused-result]
>> >    71 |         write(3, &V, 1);  /* Magic, see watchdog-api.txt in
>> kernel */
>> >       |         ^~~~~~~~~~~~~~~
>> >   CC      libbb/get_volsize.o
>> > networking/tc.c:249:16: error: ‘TCA_CBQ_RATE’ undeclared (first use in
>> this function); did you mean ‘TCA_TBF_RATE64’?
>> >   249 |         if (tb[TCA_CBQ_RATE]) {
>> >       |                ^~~~~~~~~~~~
>> >       |                TCA_TBF_RATE64
>> >   CC      coreutils/rm.o
>> >   CC      networking/tcpudp_perhost.o
>> >   CC      util-linux/hwclock.o
>> >   CC      util-linux/volume_id/udf.o
>> > networking/tc.c:255:16: error: ‘TCA_CBQ_LSSOPT’ undeclared (first use
>> in this function)
>> >   255 |         if (tb[TCA_CBQ_LSSOPT]) {
>> >       |                ^~~~~~~~~~~~~~
>> > networking/tc.c:256:61: error: invalid application of ‘sizeof’ to
>> incomplete type ‘struct tc_cbq_lssopt’
>> >   256 |                 if (RTA_PAYLOAD(tb[TCA_CBQ_LSSOPT]) <
>> sizeof(*lss))
>> >       |                                                             ^
>> >   CC      util-linux/volume_id/util.o
>> >   CC      libbb/getopt32.o
>> > networking/tc.c:261:16: error: ‘TCA_CBQ_WRROPT’ undeclared (first use
>> in this function)
>> >   261 |         if (tb[TCA_CBQ_WRROPT]) {
>> >       |                ^~~~~~~~~~~~~~
>> > networking/tc.c:262:61: error: invalid application of ‘sizeof’ to
>> incomplete type ‘struct tc_cbq_wrropt’
>> >   262 |                 if (RTA_PAYLOAD(tb[TCA_CBQ_WRROPT]) <
>> sizeof(*wrr))
>> >       |                                                             ^
>> >   AR      miscutils/lib.a
>> > networking/tc.c:267:16: error: ‘TCA_CBQ_FOPT’ undeclared (first use in
>> this function)
>> >   267 |         if (tb[TCA_CBQ_FOPT]) {
>> >       |                ^~~~~~~~~~~~
>> >   CC      networking/telnet.o
>> > networking/tc.c:268:59: error: invalid application of ‘sizeof’ to
>> incomplete type ‘struct tc_cbq_fopt’
>> >   268 |                 if (RTA_PAYLOAD(tb[TCA_CBQ_FOPT]) <
>> sizeof(*fopt))
>> >       |                                                           ^
>> >   CC      util-linux/ionice.o
>> > networking/tc.c:273:16: error: ‘TCA_CBQ_OVL_STRATEGY’ undeclared (first
>> use in this function)
>> >   273 |         if (tb[TCA_CBQ_OVL_STRATEGY]) {
>> >       |                ^~~~~~~~~~~~~~~~~~~~
>> >   CC      networking/telnetd.o
>> > networking/tc.c:274:67: error: invalid application of ‘sizeof’ to
>> incomplete type ‘struct tc_cbq_ovl’
>> >   274 |                 if (RTA_PAYLOAD(tb[TCA_CBQ_OVL_STRATEGY]) <
>> sizeof(*ovl))
>> >       |
>>    ^
>> > networking/tc.c:277:50: error: invalid application of ‘sizeof’ to
>> incomplete type ‘struct tc_cbq_ovl’
>> >   277 |                                 (unsigned) sizeof(*ovl));
>> >       |                                                  ^
>> > networking/tc.c:293:23: error: invalid use of undefined type ‘struct
>> tc_cbq_lssopt’
>> >   293 |         if (lss && lss->flags) {
>> >       |                       ^~
>> > networking/tc.c:296:24: error: invalid use of undefined type ‘struct
>> tc_cbq_lssopt’
>> >   296 |                 if (lss->flags&TCF_CBQ_LSS_BOUNDED) {
>> >       |                        ^~
>> >   CC      util-linux/volume_id/volume_id.o
>> > networking/tc.c:296:32: error: ‘TCF_CBQ_LSS_BOUNDED’ undeclared (first
>> use in this function)
>> >   296 |                 if (lss->flags&TCF_CBQ_LSS_BOUNDED) {
>> >       |                                ^~~~~~~~~~~~~~~~~~~
>> > networking/tc.c:300:24: error: invalid use of undefined type ‘struct
>> tc_cbq_lssopt’
>> >   300 |                 if (lss->flags&TCF_CBQ_LSS_ISOLATED) {
>> >       |                        ^~
>> >   CC      libbb/getopt_allopts.o
>> > networking/tc.c:300:32: error: ‘TCF_CBQ_LSS_ISOLATED’ undeclared (first
>> use in this function)
>> >   300 |                 if (lss->flags&TCF_CBQ_LSS_ISOLATED) {
>> >       |                                ^~~~~~~~~~~~~~~~~~~~
>> > networking/tc.c:308:24: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   308 |                 if (wrr->priority != TC_CBQ_MAXPRIO)
>> >       |                        ^~
>> >   CC      util-linux/ipcrm.o
>> >   CC      util-linux/volume_id/xfs.o
>> >   CC      networking/tftp.o
>> > networking/tc.c:308:38: error: ‘TC_CBQ_MAXPRIO’ undeclared (first use
>> in this function)
>> >   308 |                 if (wrr->priority != TC_CBQ_MAXPRIO)
>> >       |                                      ^~~~~~~~~~~~~~
>> > networking/tc.c:309:46: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   309 |                         printf("prio %u", wrr->priority);
>> >       |                                              ^~
>> > networking/tc.c:313:43: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   313 |                         printf("/%u ", wrr->cpriority);
>> >       |                                           ^~
>> > networking/tc.c:314:32: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   314 |                         if (wrr->weight != 1) {
>> >       |                                ^~
>> > networking/tc.c:315:65: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   315 |                                 print_rate(buf, sizeof(buf),
>> wrr->weight);
>> >       |
>>  ^~
>> > networking/tc.c:318:32: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   318 |                         if (wrr->allot)
>> >       |                                ^~
>> > networking/tc.c:319:57: error: invalid use of undefined type ‘struct
>> tc_cbq_wrropt’
>> >   319 |                                 printf("allot %ub ",
>> wrr->allot);
>> >       |                                                         ^~
>> > networking/tc.c:236:24: warning: unused variable ‘tb’
>> [-Wunused-variable]
>> >   236 |         struct rtattr *tb[TCA_CBQ_MAX+1];
>> >       |                        ^~
>> >   CC      coreutils/rmdir.o
>> > make[1]: *** [scripts/Makefile.build:197: networking/tc.o] Error 1
>> > make[1]: *** Waiting for unfinished jobs....
>> >
>> > not really sure what's missing. any help would be appreciated !
>> >
>> >
>> > Thank you,
>> >
>> > Pavan Kumar
>> >
>> > _______________________________________________
>> > busybox mailing list
>> > [email protected]
>> > https://lists.busybox.net/mailman/listinfo/busybox
>>
> _______________________________________________
> busybox mailing list
> [email protected]
> https://lists.busybox.net/mailman/listinfo/busybox
>
_______________________________________________
busybox mailing list
[email protected]
https://lists.busybox.net/mailman/listinfo/busybox

Reply via email to