strace for m68k bpf_prog_info mismatch
Baruch Siach
baruch at tkos.co.il
Fri May 3 04:05:58 UTC 2019
Hi Dmitry, Geert,
strace 5.0 fails to build for m86k/5208 with the Buildroot generated
toolchain:
In file included from bpf_attr_check.c:6:0:
static_assert.h:20:25: error: static assertion failed: "bpf_prog_info_struct.nr_jited_ksyms offset mismatch"
# define static_assert _Static_assert
^
bpf_attr_check.c:913:2: note: in expansion of macro ‘static_assert’
static_assert(offsetof(struct bpf_prog_info_struct, nr_jited_ksyms) == offsetof(struct bpf_prog_info, nr_jited_ksyms),
^~~~~~~~~~~~~
The direct cause is a difference in the hole after the gpl_compatible
field. Here is pahole output for the kernel struct (from v4.19):
struct bpf_prog_info {
...
__u32 ifindex; /* 80 4 */
__u32 gpl_compatible:1; /* 84: 0 4 */
/* XXX 15 bits hole, try to pack */
/* Bitfield combined with next fields */
__u64 netns_dev; /* 86 8 */
And this is for the strace struct:
struct bpf_prog_info_struct {
...
uint32_t ifindex; /* 80 4 */
uint32_t gpl_compatible:1; /* 84: 0 4 */
/* XXX 31 bits hole, try to pack */
uint64_t netns_dev; /* 88 8 */
How should this be fixed?
Thanks,
baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
More information about the Strace-devel
mailing list