strace build error static assertion failed: "XFRM_MSG_MAPPING != 0x26"

Chris Packham
2021-10-06T21:43:32Z

Hi,

When compiling strace-5.14 (although it looks like the same problem
would exist with bleeding edge strace) with headers from the tip of
Linus's tree (5.15.0-rc4) I get the following error

strace: In file included from static_assert.h:11,
strace:                  from print_fields.h:12,
strace:                  from defs.h:1901,
strace:                  from netlink.c:10:
strace: xlat/nl_xfrm_types.h:162:1: error: static assertion failed:
"XFRM_MSG_MAPPING != 0x26"
strace:  static_assert((XFRM_MSG_MAPPING) == (0x26), "XFRM_MSG_MAPPING
!= 0x26");
strace:  ^~~~~~~~~~~~~

It looks like commit 2d151d39073a ("xfrm: Add possibility to set the
default to block if we have no policy") added some XFRM messages and the
numbers shifted. Is this considered an ABI breakage?

I'm not sure if this is a strace problem or a linux problem so I'm
reporting it in both places.

Thanks,
Chris