Subject: Re: [PATCH net v2] selftests/bpf: fix broken build due to types.h

From: Daniel Borkmann <[email-masked]>
Date: Thu, 18 May 2017 00:57:04 +0200

On 05/18/2017 12:18 AM, Yonghong Song wrote:
> Commit 0a5539f66133 ("bpf: Provide a linux/types.h override
> for bpf selftests.") caused a build failure for tools/testing/selftest/bpf
> because of some missing types:
>      $ make -C tools/testing/selftests/bpf/
>      ...
>      In file included from /home/yhs/work/net-next/tools/testing/selftests/bpf/test_pkt_access.c:8:
>      ../../../include/uapi/linux/bpf.h:170:3: error: unknown type name '__aligned_u64'
>                      __aligned_u64   key;
>      ...
>      /usr/include/linux/swab.h:160:8: error: unknown type name '__always_inline'
>      static __always_inline __u16 __swab16p(const __u16 *p)
>      ...
> The type __aligned_u64 is defined in linux:include/uapi/linux/types.h.
>
> The fix is to copy missing type definition into
> tools/testing/selftests/bpf/include/uapi/linux/types.h.
> Adding additional include "string.h" resolves __always_inline issue.
>
> Fixes: 0a5539f66133 ("bpf: Provide a linux/types.h override for bpf selftests.")
> Signed-off-by: Yonghong Song <[email-masked]>

Can you elaborate why string.h specifically? Can't we define the
__always_inline ourselves?

Thanks,
Daniel