hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/tools/perf/check-headers.sh
....@@ -1,25 +1,42 @@
11 #!/bin/sh
22 # SPDX-License-Identifier: GPL-2.0
33
4
-HEADERS='
4
+FILES='
5
+include/uapi/linux/const.h
56 include/uapi/drm/drm.h
67 include/uapi/drm/i915_drm.h
8
+include/uapi/linux/fadvise.h
79 include/uapi/linux/fcntl.h
10
+include/uapi/linux/fs.h
11
+include/uapi/linux/fscrypt.h
812 include/uapi/linux/kcmp.h
913 include/uapi/linux/kvm.h
1014 include/uapi/linux/in.h
15
+include/uapi/linux/mount.h
16
+include/uapi/linux/openat2.h
1117 include/uapi/linux/perf_event.h
1218 include/uapi/linux/prctl.h
1319 include/uapi/linux/sched.h
1420 include/uapi/linux/stat.h
21
+include/uapi/linux/usbdevice_fs.h
1522 include/uapi/linux/vhost.h
1623 include/uapi/sound/asound.h
1724 include/linux/bits.h
25
+include/vdso/bits.h
26
+include/linux/const.h
27
+include/vdso/const.h
1828 include/linux/hash.h
1929 include/uapi/linux/hw_breakpoint.h
2030 arch/x86/include/asm/disabled-features.h
2131 arch/x86/include/asm/required-features.h
2232 arch/x86/include/asm/cpufeatures.h
33
+arch/x86/include/asm/inat_types.h
34
+arch/x86/include/asm/emulate_prefix.h
35
+arch/x86/include/asm/irq_vectors.h
36
+arch/x86/include/asm/msr-index.h
37
+arch/x86/include/uapi/asm/prctl.h
38
+arch/x86/lib/x86-opcode-map.txt
39
+arch/x86/tools/gen-insn-attr-x86.awk
2340 arch/arm/include/uapi/asm/perf_regs.h
2441 arch/arm64/include/uapi/asm/perf_regs.h
2542 arch/powerpc/include/uapi/asm/perf_regs.h
....@@ -45,7 +62,6 @@
4562 arch/powerpc/include/uapi/asm/errno.h
4663 arch/sparc/include/uapi/asm/errno.h
4764 arch/x86/include/uapi/asm/errno.h
48
-arch/powerpc/include/uapi/asm/unistd.h
4965 include/asm-generic/bitops/arch_hweight.h
5066 include/asm-generic/bitops/const_hweight.h
5167 include/asm-generic/bitops/__fls.h
....@@ -57,6 +73,22 @@
5773 include/uapi/asm-generic/ioctls.h
5874 include/uapi/asm-generic/mman-common.h
5975 include/uapi/asm-generic/unistd.h
76
+'
77
+
78
+SYNC_CHECK_FILES='
79
+arch/x86/include/asm/inat.h
80
+arch/x86/include/asm/insn.h
81
+arch/x86/lib/inat.c
82
+arch/x86/lib/insn.c
83
+'
84
+
85
+# These copies are under tools/perf/trace/beauty/ as they are not used to in
86
+# building object files only by scripts in tools/perf/trace/beauty/ to generate
87
+# tables that then gets included in .c files for things like id->string syscall
88
+# tables (and the reverse lookup as well: string -> id)
89
+
90
+BEAUTY_FILES='
91
+include/linux/socket.h
6092 '
6193
6294 check_2 () {
....@@ -84,6 +116,14 @@
84116 check_2 tools/$file $file $*
85117 }
86118
119
+beauty_check () {
120
+ file=$1
121
+
122
+ shift
123
+
124
+ check_2 tools/perf/trace/beauty/$file $file $*
125
+}
126
+
87127 # Check if we have the kernel headers (tools/perf/../../include), else
88128 # we're probably on a detached tarball, so no point in trying to check
89129 # differences.
....@@ -92,17 +132,32 @@
92132 cd ../..
93133
94134 # simple diff check
95
-for i in $HEADERS; do
135
+for i in $FILES; do
96136 check $i -B
97137 done
98138
139
+for i in $SYNC_CHECK_FILES; do
140
+ check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"'
141
+done
142
+
99143 # diff with extra ignore lines
100
-check arch/x86/lib/memcpy_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>"'
101
-check arch/x86/lib/memset_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>"'
102
-check include/uapi/asm-generic/mman.h '-I "^#include <\(uapi/\)*asm-generic/mman-common.h>"'
144
+check arch/x86/lib/memcpy_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memcpy_\(erms\|orig\))"'
145
+check arch/x86/lib/memset_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memset_\(erms\|orig\))"'
146
+check include/uapi/asm-generic/mman.h '-I "^#include <\(uapi/\)*asm-generic/mman-common\(-tools\)*.h>"'
103147 check include/uapi/linux/mman.h '-I "^#include <\(uapi/\)*asm/mman.h>"'
148
+check include/linux/build_bug.h '-I "^#\(ifndef\|endif\)\( \/\/\)* static_assert$"'
149
+check include/linux/ctype.h '-I "isdigit("'
150
+check lib/ctype.c '-I "^EXPORT_SYMBOL" -I "^#include <linux/export.h>" -B'
104151
105152 # diff non-symmetric files
106153 check_2 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
107154
155
+for i in $BEAUTY_FILES; do
156
+ beauty_check $i -B
157
+done
158
+
159
+# check duplicated library files
160
+check_2 tools/perf/util/hashmap.h tools/lib/bpf/hashmap.h
161
+check_2 tools/perf/util/hashmap.c tools/lib/bpf/hashmap.c
162
+
108163 cd tools/perf