Mailing List Archive

[PATCH] uapi: Fix undefined __always_inline on non-glibc systems
This macro is defined by glibc itself, which makes the issue go unnoticed on
those systems. On non-glibc systems it causes build failures on several
utilities and libraries, like bpftool and objtool.

Fixes: 1d509f2a6ebc ("x86/insn: Support big endian cross-compiles")
Fixes: 2d7ce0e8a704 ("tools/virtio: more stubs")
Fixes: 3fb321fde22d ("selftests/net: ipv6 flowlabel")
Fixes: 50b3ed57dee9 ("selftests/bpf: test bpf flow dissection")
Fixes: 9cacf81f8161 ("bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE")
Fixes: a4b2061242ec ("tools include uapi: Grab a copy of linux/in.h")
Fixes: b12d6ec09730 ("bpf: btf: add btf print functionality")
Fixes: c0dd967818a2 ("tools, include: Grab a copy of linux/erspan.h")
Fixes: c4b6014e8bb0 ("tools: Add copy of perf_event.h to tools/include/linux/")

Signed-off-by: Ismael Luceno <ismael@iodev.co.uk>
---
include/uapi/linux/byteorder/big_endian.h | 1 +
include/uapi/linux/byteorder/little_endian.h | 1 +
2 files changed, 2 insertions(+)

diff --git a/include/uapi/linux/byteorder/big_endian.h b/include/uapi/linux/byteorder/big_endian.h
index 2199adc6a6c2..80aa5c41a763 100644
--- a/include/uapi/linux/byteorder/big_endian.h
+++ b/include/uapi/linux/byteorder/big_endian.h
@@ -9,6 +9,7 @@ #define __BIG_ENDIAN 4321
#define __BIG_ENDIAN_BITFIELD
#endif

+#include <linux/stddef.h>
#include <linux/types.h>
#include <linux/swab.h>

diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
index 601c904fd5cd..cd98982e7523 100644
--- a/include/uapi/linux/byteorder/little_endian.h
+++ b/include/uapi/linux/byteorder/little_endian.h
@@ -9,6 +9,7 @@ #define __LITTLE_ENDIAN 1234
#define __LITTLE_ENDIAN_BITFIELD
#endif

+#include <linux/stddef.h>
#include <linux/types.h>
#include <linux/swab.h>

--
2.33.0
Re: [PATCH] uapi: Fix undefined __always_inline on non-glibc systems [ In reply to ]
On Thu, 23 Sep 2021 02:57:06 +0200
Ismael Luceno <ismael@iodev.co.uk> wrote:

> This macro is defined by glibc itself, which makes the issue go unnoticed on
> those systems. On non-glibc systems it causes build failures on several
> utilities and libraries, like bpftool and objtool.

Looks good to me.

Acked-by: Masami Hiramatsu <mhiramat@kernel.org>

Thank you!

>
> Fixes: 1d509f2a6ebc ("x86/insn: Support big endian cross-compiles")
> Fixes: 2d7ce0e8a704 ("tools/virtio: more stubs")
> Fixes: 3fb321fde22d ("selftests/net: ipv6 flowlabel")
> Fixes: 50b3ed57dee9 ("selftests/bpf: test bpf flow dissection")
> Fixes: 9cacf81f8161 ("bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE")
> Fixes: a4b2061242ec ("tools include uapi: Grab a copy of linux/in.h")
> Fixes: b12d6ec09730 ("bpf: btf: add btf print functionality")
> Fixes: c0dd967818a2 ("tools, include: Grab a copy of linux/erspan.h")
> Fixes: c4b6014e8bb0 ("tools: Add copy of perf_event.h to tools/include/linux/")
>
> Signed-off-by: Ismael Luceno <ismael@iodev.co.uk>
> ---
> include/uapi/linux/byteorder/big_endian.h | 1 +
> include/uapi/linux/byteorder/little_endian.h | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/include/uapi/linux/byteorder/big_endian.h b/include/uapi/linux/byteorder/big_endian.h
> index 2199adc6a6c2..80aa5c41a763 100644
> --- a/include/uapi/linux/byteorder/big_endian.h
> +++ b/include/uapi/linux/byteorder/big_endian.h
> @@ -9,6 +9,7 @@ #define __BIG_ENDIAN 4321
> #define __BIG_ENDIAN_BITFIELD
> #endif
>
> +#include <linux/stddef.h>
> #include <linux/types.h>
> #include <linux/swab.h>
>
> diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
> index 601c904fd5cd..cd98982e7523 100644
> --- a/include/uapi/linux/byteorder/little_endian.h
> +++ b/include/uapi/linux/byteorder/little_endian.h
> @@ -9,6 +9,7 @@ #define __LITTLE_ENDIAN 1234
> #define __LITTLE_ENDIAN_BITFIELD
> #endif
>
> +#include <linux/stddef.h>
> #include <linux/types.h>
> #include <linux/swab.h>
>
> --
> 2.33.0
>


--
Masami Hiramatsu <mhiramat@kernel.org>