History

tools headers: Update the arch/x86/lib/memset_64.S copy with the kernel sources

To pick up the changes in: 2981557cb0408e14 x86,kcfi: Fix EXPORT_SYMBOL vs kCFI That required adding a copy of include/linux/cfi_types.h and its checking in tools/perf/check-headers.h. Addressing this perf tools build warning: Warning: Kernel ABI header differences: diff -u tools/arch/x86/lib/memset_64.S arch/x86/lib/memset_64.S Please see tools/include/uapi/README for further details.

Namhyung Kim committed 1 year ago

Commit 7f569781 parent 847f1403 files · +48 −1Browse files

Showing the changes to tools/include/linux (1 of 3 files). Show all

Unified · Split

tools/include/linux/cfi_types.h+45−0
@@ -0,0 +1,45 @@
1+/* SPDX-License-Identifier: GPL-2.0 */
2+/*
3+ * Clang Control Flow Integrity (CFI) type definitions.
4+ */
5+#ifndef _LINUX_CFI_TYPES_H
6+#define _LINUX_CFI_TYPES_H
7+
8+#ifdef __ASSEMBLY__
9+#include <linux/linkage.h>
10+
11+#ifdef CONFIG_CFI_CLANG
12+/*
13+ * Use the __kcfi_typeid_<function> type identifier symbol to
14+ * annotate indirectly called assembly functions. The compiler emits
15+ * these symbols for all address-taken function declarations in C
16+ * code.
17+ */
18+#ifndef __CFI_TYPE
19+#define __CFI_TYPE(name) \
20+ .4byte __kcfi_typeid_##name
21+#endif
22+
23+#define SYM_TYPED_ENTRY(name, linkage, align...) \
24+ linkage(name) ASM_NL \
25+ align ASM_NL \
26+ __CFI_TYPE(name) ASM_NL \
27+ name:
28+
29+#define SYM_TYPED_START(name, linkage, align...) \
30+ SYM_TYPED_ENTRY(name, linkage, align)
31+
32+#else /* CONFIG_CFI_CLANG */
33+
34+#define SYM_TYPED_START(name, linkage, align...) \
35+ SYM_START(name, linkage, align)
36+
37+#endif /* CONFIG_CFI_CLANG */
38+
39+#ifndef SYM_TYPED_FUNC_START
40+#define SYM_TYPED_FUNC_START(name) \
41+ SYM_TYPED_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)
42+#endif
43+
44+#endif /* __ASSEMBLY__ */
45+#endif /* _LINUX_CFI_TYPES_H */