Also sent en email to stable upstream to include the fix in 5.15 branch.
** Changed in: linux (Ubuntu Jammy)
Status: Confirmed => In Progress
** Summary changed:
- ubuntu_bpf selftests fail to build
+ fix bpf selftests build failure after v5.15.139 update
** Summary changed:
- fix bpf selftests build failure after v5.15.139 update
+ Fix bpf selftests build failure after v5.15.139 update
** Description changed:
Sru justification
[Impact]
Upstream v5.15.139 (#lp2049432) brought commit "selftests/bpf: Test tail
call counting with bpf2bpf and data on stack" that affects one of the bpf
kselftests.
because LIBBPF_OPTS macro does not exists, it does not compile. Error below.
[Fix]
Cherry-pick commit "libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS"
[Test]
This should be solved soon, but compileselftests debian rule does not compile
bpf selftests.
I tested it by using our regression testing tooling, but same results can be
achieved by running:
$ make -C linux/tools/testing/selftests TARGETS=bpf SKIP_TARGETS= clean all
KDIR=/usr/src/linux-headers-5.15.0-<verson>-generic
from the linux tree directory
Without the fix, it fails to compile:
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:
In function ‘test_tailcall_bpf2bpf_6’:
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9:
warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean
‘LIBBPF_API’? [-Wimplicit-function-declaration]
- 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
- | ^~~~~~~~~~~
- | LIBBPF_API
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
error: ‘bpf_test_run_opts’ undeclared (first use in this function)
- 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
- | ^~~~~~~~~~~~~~~~~
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
note: each undeclared identifier is reported only once for each function it
appears in
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40:
error: ‘topts’ undeclared (first use in this function)
- 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
- | ^~~~~
-
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17:
error: expected expression before ‘.’ token
- 823 | .data_in = &pkt_v4,
- | ^
- make[1]: *** [Makefile:471:
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o]
Error 1
- make: *** [Makefile:172: all] Error 2
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:
In function ‘test_tailcall_bpf2bpf_6’:
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9:
warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean
‘LIBBPF_API’? [-Wimplicit-function-declaration]
+ 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
+ | ^~~~~~~~~~~
+ | LIBBPF_API
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
error: ‘bpf_test_run_opts’ undeclared (first use in this function)
+ 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
+ | ^~~~~~~~~~~~~~~~~
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
note: each undeclared identifier is reported only once for each function it
appears in
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40:
error: ‘topts’ undeclared (first use in this function)
+ 822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
+ | ^~~~~
+
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17:
error: expected expression before ‘.’ token
+ 823 | .data_in = &pkt_v4,
+ | ^
+ make[1]: *** [Makefile:471:
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o]
Error 1
+ make: *** [Makefile:172: all] Error 2
With the fix, it compiles.
+
+ [Regression potential]
+ The only place this is being used is selftests, so the risk is very low.
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2054567
Title:
Fix bpf selftests build failure after v5.15.139 update
Status in linux package in Ubuntu:
Invalid
Status in linux source package in Jammy:
In Progress
Bug description:
Sru justification
[Impact]
Upstream v5.15.139 (#lp2049432) brought commit "selftests/bpf: Test tail
call counting with bpf2bpf and data on stack" that affects one of the bpf
kselftests.
because LIBBPF_OPTS macro does not exists, it does not compile. Error below.
[Fix]
Cherry-pick commit "libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS"
[Test]
This should be solved soon, but compileselftests debian rule does not compile
bpf selftests.
I tested it by using our regression testing tooling, but same results can be
achieved by running:
$ make -C linux/tools/testing/selftests TARGETS=bpf SKIP_TARGETS= clean all
KDIR=/usr/src/linux-headers-5.15.0-<verson>-generic
from the linux tree directory
Without the fix, it fails to compile:
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:
In function ‘test_tailcall_bpf2bpf_6’:
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9:
warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean
‘LIBBPF_API’? [-Wimplicit-function-declaration]
822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
| ^~~~~~~~~~~
| LIBBPF_API
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
error: ‘bpf_test_run_opts’ undeclared (first use in this function)
822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
| ^~~~~~~~~~~~~~~~~
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21:
note: each undeclared identifier is reported only once for each function it
appears in
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40:
error: ‘topts’ undeclared (first use in this function)
822 | LIBBPF_OPTS(bpf_test_run_opts, topts,
| ^~~~~
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17:
error: expected expression before ‘.’ token
823 | .data_in = &pkt_v4,
| ^
make[1]: *** [Makefile:471:
/root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o]
Error 1
make: *** [Makefile:172: all] Error 2
With the fix, it compiles.
[Regression potential]
The only place this is being used is selftests, so the risk is very low.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2054567/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp